資源描述:
《北航微機(jī)原理課件第八講.ppt》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、第八講8088指令系統(tǒng)(續(xù))2009.4.7(星期二)課程內(nèi)容:五、控制傳送指令六、處理器控制指令如何利用地址線產(chǎn)生脈沖三態(tài)總線兩態(tài)總線KKK:MOVAL,(BX)CALLDELAYINCBXMOVAL,(BX)CALLDELAYJMPKKK五.控制傳送指令(Controltransferinstructions)控制傳送指令概述控制傳送指令包括四種:轉(zhuǎn)移指令,循環(huán)控制指令,過程調(diào)用指令,中斷指令。指令類型助記符無條件轉(zhuǎn)移JMP條件轉(zhuǎn)移JE/JZ,JNE/JNZ,JS,JNS,JP/JPE,JNP/JPO,JO,JNO,JC,JNC,JB
2、/JNAE,JAE/JNB,JA/JNBE,JBE/JNA,JG/JNLE,JGE/JNL,JL/JNGE,JLE/JNG,JCXZ循環(huán)控制LOOP,LOOPE/LOOPZ,LOOPNE/LOOPNZ過程調(diào)用CALL,RET中斷指令I(lǐng)NT,INTO,IRET(一)、無條件轉(zhuǎn)移指令1.JMP(jmp)目標(biāo)標(biāo)號JMP指令必須指定轉(zhuǎn)移的目標(biāo)地址(或轉(zhuǎn)向地址)。轉(zhuǎn)移分成兩類:段內(nèi)或段間轉(zhuǎn)移。(1)段內(nèi)直接轉(zhuǎn)移:只要改變IP寄存器的內(nèi)容指在同一段的范圍之內(nèi)進(jìn)行轉(zhuǎn)移(IP)←(IP)當(dāng)前+目標(biāo)標(biāo)號所代表的地址偏移量地址偏移量又稱為符號地址目標(biāo)標(biāo)號為8位
3、,稱為短轉(zhuǎn)移。目標(biāo)標(biāo)號為16位,稱為近轉(zhuǎn)移。例如:代碼段內(nèi)有一條無條件轉(zhuǎn)移指令在匯編語言中使用符號地址。JMPSHORTNEXT指令執(zhí)行過程:NEXT—在匯編語言中使用符號地址(IP)←(IP)當(dāng)前+D8(8位帶符號數(shù))源程序:條件轉(zhuǎn)移指令:JMPSHORTnext.........next:MOVAL,03HOP......OP03H......3000:1000H3000:1050H(IP)當(dāng)前(NEXT的值定義為50H)(IP)=(IP)當(dāng)前+D8內(nèi)存向前跳,D8為正數(shù),往回跳,D8用補(bǔ)碼JMPSHORTABC若ABC=0F0H,則回
4、跳16字節(jié)(2)段內(nèi)間接轉(zhuǎn)移:(CS)不變,只改變(IP)格式:JMPOPROPR—為16位寄存器、或存儲器(除立即數(shù)以外的任何一種尋址方式)執(zhí)行操作:(IP)?(EA)或(IP)?(reg16)IP指針的內(nèi)容根據(jù)寄存器或存儲器(數(shù)據(jù)段、附加段、堆棧段)的內(nèi)容而改變。指令格式舉例:JMPBXJMPSIJMPTABLE[BX];操作數(shù)已定義為16位存儲器JMPALPHA_WORD;操作數(shù)已定義為16位存儲器JMPWORDPTR[BP][DI];操作數(shù)已定義為16位存儲器例:(IP)=5000H,(CS)=3000H,(DS)=1000H,(B
5、X)=1000H(11000H)=1234H,JMPBX;(IP)=1000H,在當(dāng)前段內(nèi),屬于;寄存器尋址JMPWORDPTR[BX];(CS)=3000H,(IP)=1234H在當(dāng)前段內(nèi),(PA)=(16d?(DS)+(BX))=(11000H)為1234H將PA地址存儲器的內(nèi)容(1234H)給IP;屬于寄存器間接尋址。(3)段間直接轉(zhuǎn)移:要修改IP、CS寄存器的內(nèi)容。轉(zhuǎn)到另一段去執(zhí)行程序。轉(zhuǎn)移目標(biāo)地址=新的段地址和偏移地址兩部分組成。格式:JMPFARPTROPR;OPR—在匯編語言中使用符號地址(如標(biāo)號AKK,假設(shè)定義在另一程序段C
6、C00:0044)。轉(zhuǎn)移地址與指令不在同一個段里。在機(jī)器語言中則要指定轉(zhuǎn)向地址的偏移地址和段地址JMPFARPTRAKK執(zhí)行操作:(IP)←OPR所在的段內(nèi)偏移地址0044H。(CS)←OPR所在的段的段址CC00H。直接轉(zhuǎn)移通過符號地址加載IP和CS,間接轉(zhuǎn)移通過存儲器內(nèi)容加載IP和CS.(4)段間間接轉(zhuǎn)移:(CS)、(IP)都改變格式:JMPDWORDPTROPROPR—存儲器操作數(shù)(除立即數(shù)和寄存器以外的任何一種尋址方式)執(zhí)行操作:將4字節(jié)連續(xù)地址分別送給IP和CS(IP)←(EA)(CS)←(EA+2)例:已知(BX)=1000H,
7、(SI)=2000H,(DS)=2000H(23000H)=2212H,(23002H)=4434HJMPDWORDPTR[BX][SI]則:(BX)+(SI)=3000H(IP)=(PA)=(16d?(DS)+(BX)+(SI))=(23000H)=2212H(CS)=(PA+2)=4434H2.條件轉(zhuǎn)移指令指令格式:JccOPR操作:根據(jù)上一條指令所設(shè)置的條件碼來判別測試條件轉(zhuǎn)移。每一種條件轉(zhuǎn)移指令都有它的測試條件。滿足條件時:(IP)←(IP)當(dāng)前+OPR(D8)使用相對尋址方式,范圍-128~+127個字節(jié)不滿足條件時:(IP)不變
8、,順序執(zhí)行下一條指令(該指令為兩字節(jié)長度,一字節(jié)為指令功能碼,一指令為一個字節(jié)的相對跳轉(zhuǎn)地址偏移量)按轉(zhuǎn)移條件不同,條件轉(zhuǎn)移指令可以分為四大類:①以單個狀態(tài)標(biāo)志作為轉(zhuǎn)移條件助記符