




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
微機(jī)原理及應(yīng)用第五章8086指令系統(tǒng)第三十二講程序控制指令之過程
調(diào)用和返回指令下面我們來學(xué)習(xí)過程調(diào)用指令程序控制指令之過程調(diào)用和返回指令過程調(diào)用指令的操作碼是CALL,它的功能是暫定執(zhí)行當(dāng)前程序,轉(zhuǎn)去另外一個(gè)過程或者叫做子程序的地方繼續(xù)執(zhí)行,當(dāng)這個(gè)過程或子程序執(zhí)行完畢時(shí),再返回到當(dāng)前程序處繼續(xù)執(zhí)行.因此,CALL指令和返回指令成對(duì)出現(xiàn),那么這里的另一個(gè)過程或者子程序通常是指什么呢?過程調(diào)用指令操作碼:CALL暫定執(zhí)行當(dāng)前程序,轉(zhuǎn)去另外一個(gè)過程或者叫做子程序的地方繼續(xù)執(zhí)行當(dāng)這個(gè)過程或子程序執(zhí)行完畢時(shí),再返回當(dāng)前程序繼續(xù)執(zhí)行CALL指令和返回指令成對(duì)出現(xiàn)另一個(gè)過程或者子程序通常指什么?其實(shí),我們?cè)诰帉懸粋€(gè)主程序的過程中,編寫一個(gè)主程序時(shí)過程調(diào)用指令其實(shí),我們?cè)诰帉懸粋€(gè)主程序的過程中,如果有一些模塊被反復(fù)的使用,那么這些模塊就可以被獨(dú)立出來編寫成一個(gè)子程序主程序在需要的時(shí)候就調(diào)用子程序,執(zhí)行完子程序以后再返回到主程序中繼續(xù)執(zhí)行有一些模塊被反復(fù)的使用可被獨(dú)立編寫一個(gè)子程序主程序需要時(shí)調(diào)用子程序執(zhí)行后再返回主程序執(zhí)行編寫一個(gè)主程序時(shí)過程調(diào)用指令過程調(diào)用指令分段內(nèi)調(diào)用和段間調(diào)用大家可以聯(lián)想我們前面學(xué)習(xí)過的跳轉(zhuǎn)指令來理解段內(nèi)調(diào)用和段間調(diào)用的含義過程調(diào)用指令段內(nèi)調(diào)用段間調(diào)用聯(lián)想跳轉(zhuǎn)指令理解含義段內(nèi)調(diào)用的含義是子程序跟主程序在一個(gè)代碼段內(nèi),因此調(diào)用的時(shí)候不需要修改CS的值,只修改IP的值即可。段間調(diào)用的含義是子程序跟主程序不在一個(gè)代碼段內(nèi),此時(shí)調(diào)用指令就既要修改CS的值,又要修改IP的值。通常在子程序名中前加NEAR表示段內(nèi)調(diào)用,加FAR表示段間調(diào)用,過程調(diào)用指令段內(nèi)調(diào)用子程序跟主程序在一個(gè)代碼段內(nèi)調(diào)用時(shí)不修改CS的值,只修改IP的值段間調(diào)用子程序跟主程序不在一個(gè)代碼段內(nèi)調(diào)用時(shí)都要修改CS的值和IP的值NEARFAR調(diào)用的子程序執(zhí)行完畢,用返回指令返回到主程序中。返回指令的操作碼是ret。是子程序的最后一條指令。它表示從當(dāng)前的子程序返回到調(diào)用這個(gè)子程序的主程序中。它實(shí)質(zhì)上執(zhí)行的功能,是將主程序的斷點(diǎn)從堆棧中彈出到ip或CS和IP中,以到達(dá)主程序的正確位置開始執(zhí)行返回指令操作碼:RET子程序最后一條語句從當(dāng)前子程序返回到調(diào)用程序?qū)⒅鞒绦虻臄帱c(diǎn)從堆棧中彈出到IP或CS和IP中,以到達(dá)主程序的正確位置開始執(zhí)行前面提到,近過程調(diào)用是段內(nèi)調(diào)用,只修改IP的值,所以,返回的時(shí)候從堆棧中彈出IP的值即可遠(yuǎn)過程調(diào)用是段間調(diào)用,既修改cs又修改ip,所以返回的時(shí)候從堆棧中彈出IP和cs的值返回指令近過程返回段內(nèi)調(diào)用子程序跟主程序在一個(gè)代碼段內(nèi)調(diào)用時(shí)不修改CS的值,只修改IP的值段間調(diào)用子程序跟主程序不在一個(gè)代碼段內(nèi)調(diào)用時(shí)都要修改CS的值和IP的值NEARFARIP遠(yuǎn)過程返回IPCS首先來看一下段內(nèi)調(diào)用。段內(nèi)調(diào)用分段內(nèi)直接調(diào)用和段內(nèi)間接調(diào)用。它們的區(qū)別是子程序符號(hào)地址是否顯示在指令中。這里的PROC就是一個(gè)符號(hào)地址,它表示要調(diào)用的子程序所在的位置,段內(nèi)調(diào)用段內(nèi)直接調(diào)用段內(nèi)間接調(diào)用CALLBXCALLNEARPROC區(qū)別:子程序符號(hào)地址是否顯示在指令中符號(hào)地址CALLNEARPROC要調(diào)用的子程序所在位置因?yàn)槭嵌蝺?nèi)調(diào)用,所以只需要修改IP的值。段內(nèi)調(diào)用段內(nèi)直接調(diào)用段內(nèi)間接調(diào)用CALLBXCALLNEARPROC區(qū)別:子程序符號(hào)地址是否顯示在指令中修改IP的值那么程序在調(diào)用前先將斷點(diǎn)的IP值壓入到堆棧中。斷點(diǎn)就是主程序中待執(zhí)行的下一條指令,然后根據(jù)PROC指示的位置,計(jì)算出IP的位移量,在IP的基礎(chǔ)上加上這個(gè)位移量,讓IP指向PROC的位置斷點(diǎn)主程序中待執(zhí)行的下一條指令[SP]-2→[SP],[IP]→[SP+1],[SP]PROC指示IP的位移量[IP]+DISP→[IP]段內(nèi)間接調(diào)用的意思是子程序的符號(hào)地址沒有顯示在指令中,而是保存在寄存器或者存儲(chǔ)器的單元中。因?yàn)镮P是16位的數(shù),所以用一個(gè)寄存器或者兩個(gè)連續(xù)的內(nèi)存單元就可以保存。段內(nèi)調(diào)用段內(nèi)直接調(diào)用段內(nèi)間接調(diào)用CALLBXCALLNEARPROC子程序的符號(hào)地址沒有顯示在指令中,是保存在寄存器或者存儲(chǔ)器的單元中因?yàn)镮P是16位的數(shù),所以用一個(gè)寄存器或者兩個(gè)連續(xù)的內(nèi)存單元就可以保存。16位的數(shù)IP一個(gè)寄存器或兩個(gè)連續(xù)的內(nèi)存單元保存例如,段內(nèi)間接調(diào)用指令是CALLBX,段內(nèi)調(diào)用段內(nèi)直接調(diào)用段內(nèi)間接調(diào)用CALLBXCALLNEARPROCCALLBX那么子程序的入口地址存放在bx中,程序會(huì)先斷點(diǎn)的ip值壓入到堆棧中,然后用bx的值修改IP的值子程序的入口地址[BX]→IP下一條指令的偏移地址入棧:[SP]-2→SP,[IP]→[SP+1],[SP]BX修改IP值:[BX]→IP段內(nèi)間接調(diào)用CALLBXCALLBX再看下一條指令Callwordptr[bx],這條指令將子程序的入口地址存放在bx指示的兩個(gè)連續(xù)的內(nèi)存單元中,程序依然是先將斷點(diǎn)的IP地址壓入堆棧中。然后從bx指示的兩
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 高熱患兒護(hù)理查房
- 半骨盆切除后的護(hù)理
- 二零二五年企業(yè)品牌推廣傳單派發(fā)合同
- 二零二五年度房地產(chǎn)評(píng)估居間服務(wù)合同范本
- 2025版?zhèn)€人消費(fèi)借款合同范本
- 2025版股東個(gè)人對(duì)公司借款利率調(diào)整合同范本
- 2025版離婚協(xié)議書制作手冊(cè)
- 2025版水上娛樂設(shè)施租賃合同范本(含安全保障措施)
- 二零二五年度汽車租賃與汽車租賃APP開發(fā)合同
- 二零二五年度個(gè)人動(dòng)產(chǎn)抵押借款合同
- 2025年長(zhǎng)春市事業(yè)單位招聘考試綜合類專業(yè)能力測(cè)試試卷(管理類)
- 風(fēng)力發(fā)電項(xiàng)目投資計(jì)劃書
- 2025年康復(fù)理療師專項(xiàng)能力證書考試真題卷(后附答案和解析)
- 2025年度食堂餐具設(shè)備升級(jí)改造采購(gòu)合同
- 河北公物拍賣管理辦法
- 供排水調(diào)度工公司招聘筆試題庫(kù)及答案
- 政府隱性債務(wù)管理課件
- 2025年企業(yè)首席質(zhì)量官培訓(xùn)考核試題(含答案)
- (高清版)DB46∕T 707-2025 榴蓮栽培技術(shù)規(guī)程
- 戀愛行為學(xué)課件
- 遷地種群遺傳多樣性-洞察及研究
評(píng)論
0/150
提交評(píng)論