版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
微機(jī)原理及應(yīng)用第五章8086指令系統(tǒng)第三十二講程序控制指令之過程
調(diào)用和返回指令下面我們來學(xué)習(xí)過程調(diào)用指令程序控制指令之過程調(diào)用和返回指令過程調(diào)用指令的操作碼是CALL,它的功能是暫定執(zhí)行當(dāng)前程序,轉(zhuǎn)去另外一個過程或者叫做子程序的地方繼續(xù)執(zhí)行,當(dāng)這個過程或子程序執(zhí)行完畢時,再返回到當(dāng)前程序處繼續(xù)執(zhí)行.因此,CALL指令和返回指令成對出現(xiàn),那么這里的另一個過程或者子程序通常是指什么呢?過程調(diào)用指令操作碼:CALL暫定執(zhí)行當(dāng)前程序,轉(zhuǎn)去另外一個過程或者叫做子程序的地方繼續(xù)執(zhí)行當(dāng)這個過程或子程序執(zhí)行完畢時,再返回當(dāng)前程序繼續(xù)執(zhí)行CALL指令和返回指令成對出現(xiàn)另一個過程或者子程序通常指什么?其實(shí),我們在編寫一個主程序的過程中,編寫一個主程序時過程調(diào)用指令其實(shí),我們在編寫一個主程序的過程中,如果有一些模塊被反復(fù)的使用,那么這些模塊就可以被獨(dú)立出來編寫成一個子程序主程序在需要的時候就調(diào)用子程序,執(zhí)行完子程序以后再返回到主程序中繼續(xù)執(zhí)行有一些模塊被反復(fù)的使用可被獨(dú)立編寫一個子程序主程序需要時調(diào)用子程序執(zhí)行后再返回主程序執(zhí)行編寫一個主程序時過程調(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)用的含義是子程序跟主程序在一個代碼段內(nèi),因此調(diào)用的時候不需要修改CS的值,只修改IP的值即可。段間調(diào)用的含義是子程序跟主程序不在一個代碼段內(nèi),此時調(diào)用指令就既要修改CS的值,又要修改IP的值。通常在子程序名中前加NEAR表示段內(nèi)調(diào)用,加FAR表示段間調(diào)用,過程調(diào)用指令段內(nèi)調(diào)用子程序跟主程序在一個代碼段內(nèi)調(diào)用時不修改CS的值,只修改IP的值段間調(diào)用子程序跟主程序不在一個代碼段內(nèi)調(diào)用時都要修改CS的值和IP的值NEARFAR調(diào)用的子程序執(zhí)行完畢,用返回指令返回到主程序中。返回指令的操作碼是ret。是子程序的最后一條指令。它表示從當(dāng)前的子程序返回到調(diào)用這個子程序的主程序中。它實(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的值,所以,返回的時候從堆棧中彈出IP的值即可遠(yuǎn)過程調(diào)用是段間調(diào)用,既修改cs又修改ip,所以返回的時候從堆棧中彈出IP和cs的值返回指令近過程返回段內(nèi)調(diào)用子程序跟主程序在一個代碼段內(nèi)調(diào)用時不修改CS的值,只修改IP的值段間調(diào)用子程序跟主程序不在一個代碼段內(nèi)調(diào)用時都要修改CS的值和IP的值NEARFARIP遠(yuǎn)過程返回IPCS首先來看一下段內(nèi)調(diào)用。段內(nèi)調(diào)用分段內(nèi)直接調(diào)用和段內(nèi)間接調(diào)用。它們的區(qū)別是子程序符號地址是否顯示在指令中。這里的PROC就是一個符號地址,它表示要調(diào)用的子程序所在的位置,段內(nèi)調(diào)用段內(nèi)直接調(diào)用段內(nèi)間接調(diào)用CALLBXCALLNEARPROC區(qū)別:子程序符號地址是否顯示在指令中符號地址CALLNEARPROC要調(diào)用的子程序所在位置因?yàn)槭嵌蝺?nèi)調(diào)用,所以只需要修改IP的值。段內(nèi)調(diào)用段內(nèi)直接調(diào)用段內(nèi)間接調(diào)用CALLBXCALLNEARPROC區(qū)別:子程序符號地址是否顯示在指令中修改IP的值那么程序在調(diào)用前先將斷點(diǎn)的IP值壓入到堆棧中。斷點(diǎn)就是主程序中待執(zhí)行的下一條指令,然后根據(jù)PROC指示的位置,計算出IP的位移量,在IP的基礎(chǔ)上加上這個位移量,讓IP指向PROC的位置斷點(diǎn)主程序中待執(zhí)行的下一條指令[SP]-2→[SP],[IP]→[SP+1],[SP]PROC指示IP的位移量[IP]+DISP→[IP]段內(nèi)間接調(diào)用的意思是子程序的符號地址沒有顯示在指令中,而是保存在寄存器或者存儲器的單元中。因?yàn)镮P是16位的數(shù),所以用一個寄存器或者兩個連續(xù)的內(nèi)存單元就可以保存。段內(nèi)調(diào)用段內(nèi)直接調(diào)用段內(nèi)間接調(diào)用CALLBXCALLNEARPROC子程序的符號地址沒有顯示在指令中,是保存在寄存器或者存儲器的單元中因?yàn)镮P是16位的數(shù),所以用一個寄存器或者兩個連續(xù)的內(nèi)存單元就可以保存。16位的數(shù)IP一個寄存器或兩個連續(xù)的內(nèi)存單元保存例如,段內(nèi)間接調(diào)用指令是CALLBX,段內(nèi)調(diào)用段內(nèi)直接調(diào)用段內(nèi)間接調(diào)用CALLBXCALLNEARPROCCALLBX那么子程序的入口地址存放在bx中,程序會先斷點(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指示的兩個連續(xù)的內(nèi)存單元中,程序依然是先將斷點(diǎn)的IP地址壓入堆棧中。然后從bx指示的兩
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 101.《建筑幕墻防墜落設(shè)施檢測技術(shù)考試》
- 2026年初三中考語文復(fù)習(xí)備考計劃方案
- 子母架施工方案(3篇)
- 飯店裝潢施工方案(3篇)
- 土方裝卸施工方案(3篇)
- 橫橋施工方案(3篇)
- 除塵螺栓施工方案(3篇)
- 2025年臨床醫(yī)學(xué)研究所占美曉團(tuán)隊科研助理招聘備考題庫及參考答案詳解1套
- 2025年北京腫瘤醫(yī)院社會人員公開招聘備考題庫及1套完整答案詳解
- 陜西理工大學(xué)2025年第三批校內(nèi)崗位調(diào)劑招聘備考題庫及一套答案詳解
- 2025年廣東省第一次普通高中學(xué)業(yè)水平合格性考試(春季高考)英語試題(含答案詳解)
- 2026年合同全生命周期管理培訓(xùn)課件與風(fēng)險防控手冊
- 特殊兒童溝通技巧培訓(xùn)
- 理賠管理經(jīng)驗(yàn)分享
- 中國馬克思主義與當(dāng)代2024版教材課后思考題答案
- 2026年日歷表(每月一頁、可編輯、可備注)
- DB44∕T 1297-2025 聚乙烯單位產(chǎn)品能源消耗限額
- 2025年歷城語文面試題目及答案
- 裝修合同三方協(xié)議范本
- 講給老年人聽的助聽器
- 大清包勞務(wù)合同樣本及條款解讀
評論
0/150
提交評論