![硬件第三章微原-第3章_第1頁](http://file4.renrendoc.com/view/752d857199a27ef8edead0ab89665c8f/752d857199a27ef8edead0ab89665c8f1.gif)
![硬件第三章微原-第3章_第2頁](http://file4.renrendoc.com/view/752d857199a27ef8edead0ab89665c8f/752d857199a27ef8edead0ab89665c8f2.gif)
![硬件第三章微原-第3章_第3頁](http://file4.renrendoc.com/view/752d857199a27ef8edead0ab89665c8f/752d857199a27ef8edead0ab89665c8f3.gif)
![硬件第三章微原-第3章_第4頁](http://file4.renrendoc.com/view/752d857199a27ef8edead0ab89665c8f/752d857199a27ef8edead0ab89665c8f4.gif)
![硬件第三章微原-第3章_第5頁](http://file4.renrendoc.com/view/752d857199a27ef8edead0ab89665c8f/752d857199a27ef8edead0ab89665c8f5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、本教案內(nèi)容第3章 8086CPU指令系統(tǒng)匯編語言指令8086指令分類數(shù)據(jù)與轉(zhuǎn)移地址的尋址方式數(shù)據(jù)傳送類指令算術(shù)運(yùn)算類指令邏輯運(yùn)算類指令移位類指令標(biāo)志位操作指令轉(zhuǎn)移指令循環(huán)控制指令子程序調(diào)用返回指令中斷調(diào)用返回指令字符串操作指令I(lǐng)/O輸入輸出指令其它指令宏指令3.11 子程序調(diào)用返回指令概念:子程序?yàn)楣δ艽_定、且獨(dú)立的程序段。優(yōu)點(diǎn):可以將任何一段獨(dú)立的程序歸整為一個(gè)子程序,當(dāng)需要該段程序時(shí),只需調(diào)用子程序即可,調(diào)用后會(huì)自動(dòng)返回到調(diào)用指令的下一條指令。因此采用子程序設(shè)計(jì)時(shí),可以簡化程序設(shè)計(jì)。從調(diào)試程序的角度,由于原本在多處出現(xiàn)的程序段,縮減為子程序調(diào)用指令,使調(diào)試程序更加方便。3.11 子程序調(diào)用
2、返回指令缺點(diǎn):采用子程序設(shè)計(jì)后。由于調(diào)用子程序和從子程序中返回需要執(zhí)行指令,并且為保護(hù)某些寄存器的內(nèi)容,需要進(jìn)行壓入堆棧和彈出堆棧的操作,因此會(huì)使程序執(zhí)行速度受到一定的影響。 3.11 子程序調(diào)用返回指令實(shí)現(xiàn):子程序調(diào)用是通過自動(dòng)修改(IP)和/或(CS)的內(nèi)容實(shí)現(xiàn)的。為了確保子程序調(diào)用后能夠返回到調(diào)用指令之后,CALL指令會(huì)自動(dòng)保存返回地址(IP和/或CS),而RET指令會(huì)自動(dòng)返回到CALL指令的下一條指令。 3.11 子程序調(diào)用返回指令一、子程序調(diào)用指令CALL子程序調(diào)用指令CALL(Call procedure)有兩種格式:CALL LABEL;調(diào)用入口地址為 ;標(biāo)號(hào)LABEL的子程序C
3、ALL OPR;調(diào)用子程序,其入口地址 ;為操作數(shù)OPR的內(nèi)容 3.11 子程序調(diào)用返回指令CALL LABEL;調(diào)用入口地址為 ;標(biāo)號(hào)LABEL的子程序分三種情況:(1)當(dāng)標(biāo)號(hào)LABEL與CALL指令不在同一個(gè)段內(nèi)時(shí),子程序調(diào)用在段間進(jìn)行,其完成的操作有:CS入棧,IP入棧;(IP)LABEL的偏移地址;(CS)LABEL的段地址。指令的尋址方式為段間直接尋址。3.11 子程序調(diào)用返回指令(2)當(dāng)標(biāo)號(hào)LABEL與CALL指令在同一個(gè)段內(nèi),且可以采用8位有符號(hào)數(shù)表示其相對(duì)位移量時(shí),則子程序調(diào)用在段內(nèi)進(jìn)行,其完成的操作有:IP入棧;(IP)(IP)+DISP8。指令的尋址方式為段內(nèi)直接尋址,也稱
4、為相對(duì)尋址。(3)當(dāng)標(biāo)號(hào)LABEL與CALL指令在同一個(gè)段內(nèi),且需要采用16位有符號(hào)數(shù)表示其相對(duì)位移量時(shí),則子程序調(diào)用在段內(nèi)進(jìn)行,其完成的操作有:IP入棧;(IP)(IP)+DISP16。指令的尋址方式為段內(nèi)直接尋址,也稱相對(duì)尋址。3.11 子程序調(diào)用返回指令CALL OPR;調(diào)用子程序,其入口地址 ;為操作數(shù)OPR的內(nèi)容分為三種情況 :(1)當(dāng)OPR為16位的通用寄存器REG16時(shí),則子程序調(diào)用在段內(nèi)進(jìn)行,其完成的操作有:IP入棧;(IP)(REG16)。指令的尋址方式為段內(nèi)間接尋址。3.11 子程序調(diào)用返回指令(2)當(dāng)OPR為16位的存儲(chǔ)單元RAM時(shí),則子程序調(diào)用在段內(nèi)進(jìn)行,其完成的操作有
5、:IP入棧;(IP)(RAM)。指令的尋址方式為段內(nèi)間接尋址。(3)當(dāng)OPR為32位的存儲(chǔ)單元RAM時(shí),則子程序調(diào)用在段間進(jìn)行,其完成的操作有:CS入棧,IP入棧;(IP)(RAM),(CS)(RAM2)。指令的尋址方式為段間間接尋址。 3.11 子程序調(diào)用返回指令二、子程序返回指令RET子程序返回指令RET(Return from procedure)有三種格式:RET ;用于段內(nèi)子程序的返回, 完成IP 出棧,即(IP)(SP)RETF ;用于段間子程序的返回, 完成IP 出棧,CS 出棧RET n ;完成RET(或RETF)指令功能后, (SP)(SP)+n3.11 子程序調(diào)用返回指令三
6、、過程定義在IBM PC匯編過程中,子程序通常以過程方式編寫。過程定義格式:過程名 PROC 類型 RET 過程名 ENDP其中,過程名是用戶給子程序起的名字,它可以看作為標(biāo)號(hào),具有段地址、偏移地址和類型的屬性。子程序的類型可以取NEAR(近程過程,可供段內(nèi)調(diào)用)和FAR(遠(yuǎn)程過程,可供段間調(diào)用),當(dāng)類型缺省時(shí),表示NEAR(近程過程)。 一個(gè)子程序名一但定義,就具有以下三個(gè)屬性 段地址段內(nèi)偏移地址類型FARNEAR(可缺?。┚褪亲映绦虻谝粭l指令的地址3.11 子程序調(diào)用返回指令3.11 子程序調(diào)用返回指令子程序還可以是另一種形式:標(biāo)號(hào): RET子程序調(diào)用與返回指令應(yīng)用結(jié)構(gòu)段內(nèi)子程序調(diào)用與返回
7、 ;主程序CODE SEGMENT ASSUME CS:CODESTART: 3.11 子程序調(diào)用返回指令;子程序SUB1SUB1 PROC NEAR RET ;SUB1 ENDPCODE ENDS END STARTCALL NEAR PTR SUB1可以省略IP(SP)SP(SP)+2SP(SP)-2(SP)返回 地址(IP)IP(IP)+16 位DISP3.11 子程序調(diào)用返回指令 ;主程序CODEM SEGMENT ASSUME CS:CODEMSTART: CALL FAR PTR SUB2 MOV AH,4CH INT 21HCODEM ENDS ;子程序CODES SEGMENT
8、 ASSUME CS:CODESSUB2 PROC FAR RETF ;也可以寫成RETSUB2 ENDPCODES ENDS END STARTIP(SP) SP(SP)+2CS(SP) SP(SP)+2SP(SP)-2 (SP)返回地址(CS)SP(SP)-2 (SP)返回地址(IP)IPOFFSET SUB2 CSSEG SUB2 3.11 子程序調(diào)用返回指令例3.32 子程序設(shè)計(jì),編寫子程序?qū)崿F(xiàn)統(tǒng)計(jì)一個(gè)字(AX)中“1”的個(gè)數(shù)。解:利用移位指令或循環(huán)移位指令,每次對(duì)CF位進(jìn)行檢測位:當(dāng)CF=1時(shí),則總個(gè)數(shù)加1;當(dāng)CF=0時(shí),則總個(gè)數(shù)不變。這種操作可以采用有條件轉(zhuǎn)移指令來實(shí)現(xiàn),但更方便的
9、方式是采用ADC指令實(shí)現(xiàn)。子程序如下: 3.11 子程序調(diào)用返回指令COUNTER1 PROC NEAR PUSH AX MOV CX,16 XOR BL,BLCOU1: SHR AX,1 ADC BL,0 LOOP COU1 POP AX RETCOUNTER1 ENDP 3.11 子程序調(diào)用返回指令例3.33 子程序應(yīng)用。利用上例設(shè)計(jì)的子程序,統(tǒng)計(jì)字型變量VAR1中1的個(gè)數(shù)。解:在數(shù)據(jù)段中定義變量VAR1和CounterVar1:VAR1DW1234HCounterVar1 DB ?則可在代碼段中編寫程序:MOV AX, VAR1CALL COUNTER1MOV CounterVar1,B
10、L執(zhí)行后,結(jié)果單元CounterVar1的值為5,說明1234H中包含有5個(gè)“1”。 3.11 子程序調(diào)用返回指令例3.34 編寫以十六進(jìn)制數(shù)顯示AL和AX內(nèi)容的子程序(DISPAL、DISPAX)。解:先編寫顯示AL寄存器內(nèi)容的子程序DISPAL。由于AL中有兩位十六進(jìn)制數(shù),每一位的值為09、0AH0FH,在顯示時(shí)需要將它們轉(zhuǎn)換成相應(yīng)的ASCII碼,然后調(diào)用INT 21H的02H號(hào)功能進(jìn)行顯示。子程序DISPAL如下:3.11 子程序調(diào)用返回指令DISPAL PROC NEAR PUSH AX PUSH CX PUSH DX PUSH AX MOV CL,4;處理高位十六進(jìn)制數(shù) SHR AL
11、,CL CALL CHANG;十六進(jìn)制數(shù)變換成ASCII碼 MOV AH,02 MOV DL,AL INT 21H;顯示一位字符 3.11 子程序調(diào)用返回指令 POP AX AND AL,0FH;處理低位十六進(jìn)制數(shù) CALL CHANG;十六進(jìn)制數(shù)變換成ASCII碼 MOV AH,02 MOV DL,AL INT 21H;顯示一位字符 POP DX POP CX POP AX RETDISPAL ENDP3.11 子程序調(diào)用返回指令CHANG PROC NEAR ;十六進(jìn)制數(shù)變換成ASCII碼 CMP AL,10 JNGE CHANG1 ADD AL,7CHANG1: ADD AL,30H R
12、ETCHANG ENDP3.11 子程序調(diào)用返回指令可以直接調(diào)用DISPAL實(shí)現(xiàn)顯示AX的內(nèi)容,子程序DISPAX內(nèi)容如下:DISPAX PROC NEARXCHG AL,AHCALL DISPALXCHG AH,ALCALL DISPAL RETDISPAX ENDP3.11 子程序調(diào)用返回指令作業(yè):3.12 中斷調(diào)用與返回指令計(jì)算機(jī)在程序運(yùn)行過程中,由于發(fā)生了某些“緊急事件”,需要進(jìn)行特殊處理(轉(zhuǎn)向中斷服務(wù)子程序執(zhí)行),處理后返回到程序中斷處繼續(xù)執(zhí)行,這種過程稱為中斷處理過程。這里的“緊急事件”可以是由硬件產(chǎn)生的,例如系統(tǒng)掉電、硬件故障、定時(shí)計(jì)數(shù)器溢出等;可以是執(zhí)行指令產(chǎn)生的,例如除法溢出
13、等;還可以是專門的中斷調(diào)用指令所產(chǎn)生的。本節(jié)主要介紹專門的中斷調(diào)用指令、中斷服務(wù)子程序的結(jié)構(gòu)和中斷返回指令。3.12 中斷調(diào)用與返回指令一、中斷調(diào)用指令I(lǐng)NT中斷調(diào)用指令I(lǐng)NT(Interrupt)的格式為:INT n這表示調(diào)用第n號(hào)中斷,n為中斷類型號(hào),其值可以是0255。當(dāng)執(zhí)行該指令時(shí),會(huì)進(jìn)行下列操作:PSW、CS、IP入棧;清除IF、TF標(biāo)志;從中斷向量表中取出中斷向量(中斷向量為中斷服務(wù)子程序的入口地址);轉(zhuǎn)到中斷服務(wù)子程序進(jìn)行執(zhí)行;中斷服務(wù)子程序的最后一條指令應(yīng)該是中斷返回指令,執(zhí)行該指令可以返回到程序中斷處繼續(xù)執(zhí)行。 3.12 中斷調(diào)用與返回指令二、中斷返回指令I(lǐng)RET中斷返回指令
14、IRET(Interrupt return)的格式為:IRET表示從中斷服務(wù)子程序返回主程序。執(zhí)行該指令時(shí),會(huì)完成IP、CS、PSW的出棧操作,其次序與INT n 指令的入棧次序相反。由于修改了IP和CS的內(nèi)容,從而實(shí)現(xiàn)的程序的返回功能。 3.12 中斷調(diào)用與返回指令三、中斷向量表每個(gè)中斷服務(wù)子程序的入口地址(稱為中斷向量)為32位(16位的偏移地址和16位的段地址),占用4個(gè)地址單元。計(jì)算機(jī)中采用最低的1024個(gè)地址單元(稱為0頁)來存儲(chǔ)中斷向量,因此,n號(hào)中斷的中斷向量存放地址為:4n ,調(diào)用該中斷時(shí),可以從該地址獲得中斷服務(wù)子程序的入口地址。3.12 中斷調(diào)用與返回指令四、中斷服務(wù)子程序結(jié)構(gòu)由于中斷是隨時(shí)可能調(diào)用的程序,我們無法預(yù)知其調(diào)用的位置,這樣在設(shè)計(jì)中斷服務(wù)子程序時(shí),應(yīng)該確保所有寄存器的內(nèi)容保持不變。因此在中斷服務(wù)子程序的入口處,應(yīng)該將用到的寄存器通過堆棧進(jìn)行保護(hù),在中斷程序的返回之前,從堆棧中恢復(fù)寄存器的內(nèi)容。中斷服務(wù)子程序的結(jié)構(gòu)為:3.12 中斷調(diào)用與返回指令:PUSH AX;保護(hù)現(xiàn)場PUSH SI;中斷子程序主體POP SI;恢復(fù)現(xiàn)場POP AXIRET;中斷返回3.12 中斷調(diào)用與返回指令五、
溫馨提示
- 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. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度旅游服務(wù)合同解除協(xié)議模板
- 二零二五年度北京市工商局股權(quán)質(zhì)押登記與解除服務(wù)合同
- 二零二五年度江蘇公司員工加班審批流程勞動(dòng)合同
- 《液壓與氣動(dòng)控制》課件
- 《預(yù)算編制學(xué)習(xí)》課件
- 二零二五年度機(jī)場停車場租賃服務(wù)合同
- 《之鋼材規(guī)格》課件
- 《歐尚世博推廣方案》課件
- 二零二五年度門窗安裝行業(yè)品牌推廣與營銷合同
- 別餓壞了那匹馬課件
- 北京市房山區(qū)2024-2025學(xué)年七年級(jí)上學(xué)期期末英語試題(含答案)
- 安全生產(chǎn)事故調(diào)查與案例分析(第3版)課件 呂淑然 第5、6章 事故案例評(píng)析、相關(guān)法律法規(guī)
- 2025年南陽科技職業(yè)學(xué)院高職單招數(shù)學(xué)歷年(2016-2024)頻考點(diǎn)試題含答案解析
- 加油站復(fù)工復(fù)產(chǎn)方案
- 2025-2030年中國增韌劑(MBS高膠粉)行業(yè)發(fā)展現(xiàn)狀及前景趨勢分析報(bào)告
- 2025年高考物理復(fù)習(xí)新題速遞之萬有引力與宇宙航行(2024年9月)
- 2025年首都機(jī)場集團(tuán)公司招聘筆試參考題庫含答案解析
- 2025云南省貴金屬新材料控股集團(tuán)限公司面向高校畢業(yè)生專項(xiàng)招聘144人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 蘇州市區(qū)2024-2025學(xué)年五年級(jí)上學(xué)期數(shù)學(xué)期末試題一(有答案)
- 暑期預(yù)習(xí)高一生物必修二知識(shí)點(diǎn)
- (高清版)DB43∕T 1147-2015 太陽能果蔬烘干機(jī)
評(píng)論
0/150
提交評(píng)論