子程序調(diào)用指令

發(fā)布時間:2023-07-29
程序中有些部分可能要實現(xiàn)相同的功能,而且這些功能需要用到,用子程序?qū)崿F(xiàn)這個功能是很適合的。子程序通常是與主程序分開的、完成特定功能的一段程序。當(dāng)主程序(調(diào)用程序)需要執(zhí)行這個功能時,就可以調(diào)用該子程序(被調(diào)用程序);于是,程序轉(zhuǎn)移到這個子程序的起始處執(zhí)行。當(dāng)運行完子程序后,再返回調(diào)用它的主程序。子程序由主程序執(zhí)行子程序調(diào)用指令 call 來調(diào)用;而子程序執(zhí)行完后用子程序返回指令 ret ,返回主程序繼續(xù)執(zhí)行。 call 和 ret 指令均不影響標(biāo)志位。
子程序結(jié)構(gòu)相當(dāng)于高級語言中的過程。為便于模塊化程序設(shè)計,往往把程序中某些具有獨立功能的部分編寫成獨立的程序模塊,稱為子程序。
1 .子程序調(diào)用指令 call
(1)段內(nèi)直接調(diào)用
格式: call dst
執(zhí)行操作: push (ip)
(ip)<-(ip)+d16
dst 給出轉(zhuǎn)向地址, d16 為機器指令中的位移量,是轉(zhuǎn)向地址和返回地址之間的差值。
(2) 段內(nèi)間接調(diào)用
格式: call dst
執(zhí)行操作: push (ip)
(ip)<-(ea)
指令中的 dst 可使用寄存器尋址方式或任一種存儲器尋址方式,由指定的寄存器或存儲單元的內(nèi)容給出轉(zhuǎn)向地址。
(3) 段間直接調(diào)用
格式: call dst
執(zhí)行操作: push (cs) push (ip)
(cs)<-dst 指定段地址
(ip)<-dst 指定偏移地址
(4) 段間間接調(diào)用
格式: call dst
執(zhí)行操作: push (cs)
push (ip)
(ip)<- ( ea )
(cs)<- ( ea+2 )
ea 是由 dst 的尋址方式確定的有效地址,可用任一種存儲器尋址方式來取得。 2 .返回指令 ret
(1)語句格式: ret ; (ip)<-pop()
(2)語句格式: ret exp;
在完成出棧操作后,還要修改堆棧指針
上一個:修理打印機最近的店有哪些,武漢哪有修打印機的
下一個:oppor9plus和oppoa8哪個好(oppor9plus和蘋果8p哪個大)

葡萄夏季防病很關(guān)鍵
三月新購苗木栽培要點
混凝土結(jié)構(gòu)檢測哪些情況應(yīng)采用全數(shù)檢測方式?
杏花的歷代文化傳承
電腦二手回收 會恢復(fù),二手臺式機電腦回收平臺
htce8怎么查詢是不是翻新機
5000元電腦配置方案(5000元電腦主機配置清單)
電腦系統(tǒng)恢復(fù)出廠設(shè)置教程(電腦如何恢復(fù)出廠系統(tǒng)版本)
馬蹄金草坪蝸牛防治方法
蔬菜用菊花怎樣采收、包裝、運輸、保鮮、貯存?
十八禁 网站在线观看免费视频_2020av天堂网_一 级 黄 色 片免费网站_绝顶高潮合集Videos