指令系統(tǒng)(控制轉(zhuǎn)移類指令)_第1頁(yè)
指令系統(tǒng)(控制轉(zhuǎn)移類指令)_第2頁(yè)
指令系統(tǒng)(控制轉(zhuǎn)移類指令)_第3頁(yè)
指令系統(tǒng)(控制轉(zhuǎn)移類指令)_第4頁(yè)
指令系統(tǒng)(控制轉(zhuǎn)移類指令)_第5頁(yè)
已閱讀5頁(yè),還剩9頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

控制轉(zhuǎn)移指令●無(wú)條件轉(zhuǎn)移指令根據(jù)其轉(zhuǎn)移范圍的大小可以分為五種方式:指令名稱指令格式執(zhí)行操作1.段內(nèi)直接短轉(zhuǎn)移JMPSHORTOPRIP←(IP)+8位位移量2.段內(nèi)直接近轉(zhuǎn)移JMPNEARPTROPRIP←(IP)+16位位移量3.段內(nèi)間接轉(zhuǎn)移JMPWORDPTROPRIP←(EA)4.段間直接轉(zhuǎn)移JMPFARPTROPRIP←OPR的段內(nèi)偏移地址CS←OPR所在段的段地址5.段間間接轉(zhuǎn)移JMPDWORDPTROPRIP←(EA)CS←(EA+2)●1.無(wú)條件轉(zhuǎn)移指令JMP●指令功能:無(wú)條件地轉(zhuǎn)移到由地址表達(dá)式所確定的目標(biāo)單元?!裰噶罡袷剑篔MP地址表達(dá)式無(wú)條件轉(zhuǎn)移指令的一般使用格式為:JMP符號(hào)地址●2.條件轉(zhuǎn)移指令(1)條件轉(zhuǎn)移指令●指令功能:根據(jù)前面指令形成的條件來(lái)確定轉(zhuǎn)移目的的地址?!裰噶畈僮鳎寒?dāng)條件滿足時(shí)程序轉(zhuǎn)移至標(biāo)號(hào)處,轉(zhuǎn)移范圍只能在離當(dāng)前IP的-128?+127個(gè)字節(jié)之內(nèi)。按照轉(zhuǎn)移條件分為四類1.單個(gè)標(biāo)志位的條件轉(zhuǎn)移指令。如JZ(JE)、JP2.兩個(gè)無(wú)符號(hào)數(shù)比較的條件轉(zhuǎn)移指令。如JB(JNAE,JC)、JBE(JNA)3.兩個(gè)有符號(hào)數(shù)比較的條件轉(zhuǎn)移指令。如JLE(JNG)、JNL(JGE)4.測(cè)試(CX)=0的條件轉(zhuǎn)移指令。如JCXZ指令分類指令格式執(zhí)行條件1.單個(gè)標(biāo)志位的條件轉(zhuǎn)移指令JZ(JE)標(biāo)號(hào)ZF=1JNZ(JNE)標(biāo)號(hào)ZF=0JS標(biāo)號(hào)SF=1JNS標(biāo)號(hào)SF=0JO標(biāo)號(hào)OF=1JNO標(biāo)號(hào)OF=0JP標(biāo)號(hào)PF=1JNP標(biāo)號(hào)PF=0JC標(biāo)號(hào)CF=1JNC標(biāo)號(hào)CF=02.兩個(gè)無(wú)符號(hào)數(shù)比較的條件轉(zhuǎn)移指令JB(JNAE)標(biāo)號(hào)CF=1(<)JNB(JAE)標(biāo)號(hào)CF=0(≥)JBE(JNA)標(biāo)號(hào)CF∨ZF=1(≤)JNBE(JA)標(biāo)號(hào)CF∨ZF=0(>)3.兩個(gè)有符號(hào)數(shù)比較的條件轉(zhuǎn)移指令JL(JNGE)標(biāo)號(hào)SF⊕OF=1(<)JNL(JGE)標(biāo)號(hào)SF⊕OF=0(≥)JLE(JNG)標(biāo)號(hào)(SF⊕OF)∨ZF=1(≤)JNLE(JG)標(biāo)號(hào)(SF⊕OF)∨ZF=0(>)●3.(1)計(jì)數(shù)循環(huán)指令LOOP循環(huán)控制指令

●指令格式:LOOPOPR●指令功能:每執(zhí)行一次LOOP指令,CX的內(nèi)容減“1”,若(CX)≠0,則循環(huán)轉(zhuǎn)移到目的地址TARGET重復(fù)執(zhí)行其間的程序段,直到(CX)=0,退出循環(huán),順序執(zhí)行下條指令。例[4-18]把數(shù)據(jù)區(qū)buffer內(nèi)的50個(gè)有符號(hào)字節(jié)數(shù)將正(零歸正數(shù))、負(fù)數(shù)分開,并分別送到NUM1和NUM2兩個(gè)緩沖區(qū)的程序如下:

LEA SI,BUFFER LEA DI,NUM1 LEA BX,NUM2 MOV CX,50BEG: MOVAL,[SI]INCSI TEST AL,80H JNZ MINUS MOV [DI],ALINCDI JMP AGAINMINUS:MOV [BX],ALINCBXAGAIN:LOOP BEG HLT(2)結(jié)果為零或相等時(shí)循環(huán)指令LOOPE/LOOPZ●指令格式:LOOPZ(LOOPE)

OPR●指令功能:使(CX)-1→CX,當(dāng)(CX)≠0,且ZF=1時(shí),則循環(huán)轉(zhuǎn)移至目的地址TATGET去重復(fù)執(zhí)行其間的程序段。當(dāng)(CX)=0,或ZF=0,退出循環(huán),順序執(zhí)行本指令的下條指令。例[4–19]找出以NUM為首地址的100個(gè)字節(jié)數(shù)組中第一個(gè)非零項(xiàng),并將其置于AL中,數(shù)組中若無(wú)非零項(xiàng),則(AL)=0。程序如下:

MOV CX,100 LEA BX,NUM MOV SI,0FFFFHZERO:INC SI CMP BYTEPTR[BX+SI],0 LOOPZZERO JZ OVER MOV AL,[BX+SI] JMP DONEOVER:MOV AL,0DONE:HLT(3)結(jié)果不為零或不相等時(shí)循環(huán)指令LOOPNE/LOOPNZ●指令格式:LOOPNZ(LOOPNE)

OPR●循環(huán)條件:ZF=0且

(CX)≠0●執(zhí)行操作:①

(CX)←(CX)-1;②檢查是否滿足循環(huán)條件:

如滿足則實(shí)行循環(huán); 不滿足則退出循環(huán)。過程調(diào)用指令CALL與返回指令RET●4.為便于模塊化程序設(shè)計(jì),可把某些經(jīng)常重復(fù)出現(xiàn)的一段程序獨(dú)立編制成一個(gè)模塊,稱為一個(gè)子過程或子程序。程序中可由調(diào)用指令CALL調(diào)用子程序,在子程序執(zhí)行完成后又用返回指令RET返回調(diào)用程序繼續(xù)執(zhí)行?!襁^程調(diào)用指令CALL必須同返回指令RET成對(duì)使用?!襁^程定義的形式如下(詳見第五章“偽指令”):過程名

PROC[near/far]

過程體

RET

過程名 ENDP(1)CALL指令①段內(nèi)直接調(diào)用●指令格式:CALL DST●執(zhí)行操作:SP←(SP)-2

(SP)+1,(SP)←(IP)

IP←(IP)+16位位移量②段內(nèi)間接調(diào)用●指令格式:CALL DST●執(zhí)行操作:SP←(SP)-2

(SP)+1,(SP)←(IP)

IP←(EA)過程調(diào)用指令CALL與返回指令RET●4.(1)CALL指令③段間直接調(diào)用●指令格式:CALL DST●執(zhí)行操作:SP←(SP)-2

(SP)+1,(SP)←(CS)

SP←(SP)-2(SP)+1,(SP)←(IP)

IP←

偏移地址

CS←

段地址④段間間接調(diào)用●指令格式:CALL DST●執(zhí)行操作:SP←(SP)-2

(SP)+1,(SP)←(CS)

SP←(SP)-2(SP)+1,(SP)←(IP)

IP←

(EA)

CS←(EA+2)CALL指令不影響標(biāo)志位常用格式:CALL子程序名過程調(diào)用指令CALL與返回指令RET(2)①段內(nèi)返回●指令格式:RET●執(zhí)行操作:IP←((SP)+1,(SP))

SP←(SP)+2②段內(nèi)帶立即數(shù)返回●指令格式:RETn●執(zhí)行操作:IP←((SP)+1,(SP))

SP←(SP)+2SP←(SP)+n

④段間帶立即數(shù)返回●指令格式:RETn●執(zhí)行操作:IP←((SP)+1,(SP))SP←(SP)+2CS←((SP)+1,(SP))SP←(SP)+2

SP←(SP)+n返回指令RET

③段間返回

●指令格式:RET

●執(zhí)行操作:IP←((SP)+1,(SP))SP←(SP)+2CS←((SP)+1,(SP))SP←(SP)+2●4.RET指令不影響標(biāo)志位中斷調(diào)用與返回指令●5.將在第七章中介紹CLC ;CF←0STC ;CF←1CMC ;CF求反,即CF←┓CFCLD

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論