第3章_6 8086指令系統(tǒng)(分支CPU指令)及習題_第1頁
第3章_6 8086指令系統(tǒng)(分支CPU指令)及習題_第2頁
第3章_6 8086指令系統(tǒng)(分支CPU指令)及習題_第3頁
第3章_6 8086指令系統(tǒng)(分支CPU指令)及習題_第4頁
第3章_6 8086指令系統(tǒng)(分支CPU指令)及習題_第5頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、33 指令系統(tǒng)指令系統(tǒng) 按功能分為:按功能分為:數(shù)據傳送指令數(shù)據傳送指令算術運算指令算術運算指令位處理指令(邏輯運算指令)位處理指令(邏輯運算指令)串操作指令串操作指令控制轉移指令控制轉移指令處理機控制指令處理機控制指令 控制轉移類指令通過改變控制轉移類指令通過改變IPIP(和(和CSCS)值,實現(xiàn)程)值,實現(xiàn)程序執(zhí)行順序的改變序執(zhí)行順序的改變控制轉移類指令用于實現(xiàn)分支、循環(huán)、過程等程序結構,是控制轉移類指令用于實現(xiàn)分支、循環(huán)、過程等程序結構,是僅次于傳送指令的常用指令僅次于傳送指令的常用指令33 指令系統(tǒng)指令系統(tǒng) 相對尋址方式相對尋址方式指令代碼中提供目的地址指令代碼中提供目的地址相對相對于

2、當前于當前IP的位移量,轉的位移量,轉移到的目的地址(轉移后的移到的目的地址(轉移后的IP值)就是當前值)就是當前IP值加上位值加上位移量移量 直接尋址方式直接尋址方式指令代碼中提供目的邏輯地址,轉移后的指令代碼中提供目的邏輯地址,轉移后的CS和和IP值值直直接接來自指令操作碼后的目的地址操作數(shù)來自指令操作碼后的目的地址操作數(shù) 間接尋址方式間接尋址方式指令代碼中指示寄存器或存儲單元,目的地址從寄存指令代碼中指示寄存器或存儲單元,目的地址從寄存器或存儲單元中器或存儲單元中間接間接獲得獲得代碼段代碼段 段內轉移段內轉移近轉移(近轉移(near)在當前代碼段在當前代碼段64KB范圍內轉移(范圍內轉移

3、( 32KB范范圍)不需要更改圍)不需要更改CS段地址,只要改變段地址,只要改變IP偏移地址偏移地址 段內轉移段內轉移短轉移(短轉移(short)轉移范圍可以用一個字節(jié)表達,在段內轉移范圍可以用一個字節(jié)表達,在段內128127范圍的轉移范圍的轉移代碼段代碼段代碼段代碼段 實際編程時,匯編程序會根據目標地址的屬實際編程時,匯編程序會根據目標地址的屬性,性,自動處理自動處理成短轉移、近轉移或遠轉移成短轉移、近轉移或遠轉移 程序員可用操作符程序員可用操作符short、near ptr 或或far ptr 強制成為需要的轉移類型強制成為需要的轉移類型 段間轉移段間轉移遠轉移(遠轉移(far)從當前代碼

4、段跳轉到另一個代碼段,可從當前代碼段跳轉到另一個代碼段,可以在以在1MB范圍范圍需要更改需要更改CS段地址和段地址和IP偏移地址,目標偏移地址,目標地址必須用一個地址必須用一個32位數(shù)表達,叫做位數(shù)表達,叫做32位遠位遠指針,它就是邏輯地址指針,它就是邏輯地址五、程序轉移五、程序轉移指令指令無條件轉移和條件轉移無條件轉移和條件轉移無條件轉移無條件轉移:轉移發(fā)生不需要狀態(tài)信息,執(zhí)行JMP指令發(fā)生的轉移。Part1JMP AAPart2AA XXXXPart3無條件轉移指令轉移跳過的地址下一條執(zhí)行指令條件轉移條件轉移:當條件滿足是發(fā)生轉移,否則順序執(zhí)行下一條指令。Part1JCC AAXXXXPa

5、rt2AA XXXPart3條件轉移指令轉移跳過的地址下一條執(zhí)行指令條件成立?NoYes轉移轉移指令及尋址方式指令及尋址方式五、程序轉移五、程序轉移指令指令無條件轉移無條件轉移1、JMP 指令指令格式:格式:JMP dest功能:無條件功能:無條件轉移到操作數(shù)轉移到操作數(shù)( (destdest) )所指示的地址,不影響標志。所指示的地址,不影響標志。 段內轉移段內轉移:直接轉移直接轉移 : JMP START(IP)START16位立即數(shù)NERA 標號例如例如:JMP 1234H指令跳轉到指令跳轉到 CS:1234H執(zhí)行。執(zhí)行。Part1JMP1234HPart21234H XXXPart3C

6、S:0100H跳過1134HCS:1234H轉移轉移指令及尋址方式指令及尋址方式五、程序轉移五、程序轉移指令指令無條件轉移無條件轉移段內轉移段內轉移:直接短轉移直接短轉移 :JMP SHORT STARTSHORT START為為 8位位移量位位移量(128127)執(zhí)行操作:執(zhí)行操作:(IP)(IP)+2位移量位移量例如例如:JMP SHORT START (=12H)指令跳轉到指令跳轉到 CS:(IP+2+12H)執(zhí)行。執(zhí)行。Part1JMP 12HPart2XXXXXPart3CS:1220H12H+2H=14HCS:1234HJMP 12HPart1Part2Part3XXXXXCS:1

7、234H2H12H=10HCS:1224H例如例如: JMP SHORT START (= -12H)指令跳轉到指令跳轉到 CS:(IP+2 12H)執(zhí)行執(zhí)行五、程序轉移五、程序轉移指令指令無條件轉移無條件轉移執(zhí)行操作:執(zhí)行操作:(IP)DEST段內轉移段內轉移:間接轉移間接轉移 :JMP DESTDEST為為 16寄存器或內存操作數(shù)寄存器或內存操作數(shù)例如例如: (SI)=0100HJMP SI指令跳轉到指令跳轉到 CS:0100H執(zhí)行。執(zhí)行。例如例如,(BX)=100H,DS:0100H=1234HJMP BX指令跳轉到指令跳轉到 CS:1234H執(zhí)行。執(zhí)行。Part1JMP BXPart2

8、1234H XXXPart3CS:0100H跳過1134HCS:1234H12H34HDS:0100HIP=1234H例如例如:JMP 1234:5678H指令跳轉到指令跳轉到 1234:5678H執(zhí)行執(zhí)行五、程序轉移五、程序轉移指令指令無條件轉移無條件轉移段間轉移段間轉移:32位立即數(shù)直接轉移直接轉移 : JMP DEST(IP)低低1616位位(CS)高高16位位FAR 標號32內存操作數(shù)例如:例如:DI=200H雙字(雙字(DS:0200H)=12345678HJMPDWORD PTR DI指令執(zhí)行指令執(zhí)行:低位字:低位字:(IP)=5678H高位字高位字:(CS)=1234HPart1

9、JMP DWORD PTR DIPart2 XXXPart3CS:0100H1234H:5678H34H56HDS:0200HIP=5678H78H12HCS=1234H五、程序轉移五、程序轉移指令指令條件轉移條件轉移簡單轉移:簡單轉移:條件是由標志寄存器中的標志的狀態(tài)決定的轉移。條件是由標志寄存器中的標志的狀態(tài)決定的轉移。復雜轉移:復雜轉移:條件是由有有符號數(shù)和無符號數(shù)的大小決定的轉移。條件是由有有符號數(shù)和無符號數(shù)的大小決定的轉移。簡單轉移:簡單轉移:FRJC 標號標號 CF=1有進位則轉移到標號所在地址有進位則轉移到標號所在地址JNC 標號標號 CF=0無進位則轉移到標號所在地址無進位則轉

10、移到標號所在地址CFJZ 標號標號 ZF=1結果為零則轉移到標號所在地址結果為零則轉移到標號所在地址 JNZ 標號標號 Z ZF=0結果為非零則轉移到標號所在地址結果為非零則轉移到標號所在地址 ZFJS 標號標號 SF=1結果為負則轉移到標號所在地址結果為負則轉移到標號所在地址 JNS 標號標號 S SF=0 結果非負則轉移到標號所在地址結果非負則轉移到標號所在地址 SFJP 標號標號 PF=1結果結果1 1的個數(shù)為偶數(shù)個則轉移的個數(shù)為偶數(shù)個則轉移 JNP 標號標號 P PF=0 結果結果1 1的個數(shù)為奇數(shù)個則轉移的個數(shù)為奇數(shù)個則轉移 PFJO 標號標號 OF=1結果溢出則轉移到標號所在地址結

11、果溢出則轉移到標號所在地址 JNO 標號標號 O OF=0結果未溢出則轉移到標號所在地址結果未溢出則轉移到標號所在地址 OF五、程序轉移五、程序轉移指令指令條件轉移條件轉移復雜轉移:復雜轉移:由多個標志的狀態(tài)決定的轉移由多個標志的狀態(tài)決定的轉移, ,分為分為有符號數(shù)和無符號數(shù)有符號數(shù)和無符號數(shù)轉移轉移無符號數(shù)轉移指令無符號數(shù)轉移指令 比較兩個無符號數(shù),并根據比較結果轉移比較兩個無符號數(shù),并根據比較結果轉移JA標號標號;兩數(shù)比較,高于則轉移;兩數(shù)比較,高于則轉移(JNBE)JNA標號標號;兩數(shù)比較,不高于則轉移(;兩數(shù)比較,不高于則轉移(JBE)JB標號標號;兩數(shù)比;兩數(shù)比較,較,低于則轉移低于

12、則轉移(JNAE)JNB標號標號;兩數(shù)比較,不低于則轉移(;兩數(shù)比較,不低于則轉移(JAE)有符號數(shù)轉移指令有符號數(shù)轉移指令 比較兩個帶符號數(shù),并根據比較結果轉移比較兩個帶符號數(shù),并根據比較結果轉移JG標號標號;兩數(shù)比較,大于則轉移;兩數(shù)比較,大于則轉移(JNLE)JNG標號標號;兩數(shù)比較,不大于則轉移(;兩數(shù)比較,不大于則轉移(JLE)JL標號標號;兩數(shù)比;兩數(shù)比較,較,小于則轉移小于則轉移(JNGE)JNL標號標號;兩數(shù)比較,不小于則轉移(;兩數(shù)比較,不小于則轉移(JGE)五、程序轉移五、程序轉移指令指令循環(huán)控制循環(huán)控制測試測試CX的值為的值為0則轉移則轉移JCXZ 標號標號; (CX)=

13、0則轉移則轉移循環(huán)控制指令循環(huán)控制指令CX計數(shù)循環(huán)次數(shù),每循環(huán)一次計數(shù)循環(huán)次數(shù),每循環(huán)一次CX CX-1LOOP標號標號CX0 轉移到標號繼續(xù)循環(huán),轉移到標號繼續(xù)循環(huán),CX=0順序執(zhí)行。順序執(zhí)行。無條件循環(huán)無條件循環(huán)條件循環(huán)條件循環(huán)LOOPZ標號標號CX0且且 ZF=1轉移到標號繼續(xù)循環(huán),轉移到標號繼續(xù)循環(huán),CX0或或 ZF=0順序執(zhí)行。順序執(zhí)行。LOOPNZ標號標號CX0 且且 ZF=0轉移到標號繼續(xù)循環(huán),轉移到標號繼續(xù)循環(huán),CX=0或或 ZF=1順序執(zhí)行。順序執(zhí)行。五、程序轉移五、程序轉移指令指令處理器控制處理器控制對處理機的工作狀態(tài)的控制指令,對處理機的工作狀態(tài)的控制指令,分為標志控制、

14、外設同步工作狀分為標志控制、外設同步工作狀態(tài)控制態(tài)控制 兩類指令。兩類指令。標志控制標志控制DF標志標志CLDDF=0STDDF=1CF標志標志CLCCF=0STCCF=1CMCCF=CFIF標志標志CLIIF=0STIIF=1同步控制同步控制WAIT 指令指令CPU處于空操作狀態(tài),每處于空操作狀態(tài),每5個個T T周期測試信號線周期測試信號線當為低電平時脫離當為低電平時脫離WAIT TESTLOCK 指令前綴,指令前綴, 在執(zhí)行有在執(zhí)行有LOCK指令時發(fā)出總線封鎖信號,指令時發(fā)出總線封鎖信號,LOCK禁止其它主控設備申請總線。禁止其它主控設備申請總線。例如例如LOCK MOV AX,BX五、程

15、序轉移五、程序轉移指令指令處理器控制處理器控制同步控制同步控制HLT 暫定指令暫定指令CPU處于空操作狀態(tài),以下三種情況可以使處于空操作狀態(tài),以下三種情況可以使CPU脫脫離暫定狀態(tài)。離暫定狀態(tài)。RESET NMI 當當IF=1時時INTR 該指令是為中斷等待而設。該指令是為中斷等待而設。 NOP 空操作指令,進行一個總線周期的空操作,相當于延時空操作指令,進行一個總線周期的空操作,相當于延時4T時時鐘周期。鐘周期。ESC OPCODE,SRC 交權指令交權指令, 把控制權交給協(xié)處理器。把控制權交給協(xié)處理器。OPCODEOPCODE6 6位立即數(shù),外部處理器操作指令。位立即數(shù),外部處理器操作指令

16、。SRCSRC外部處理器的內存源操作數(shù),由外部處理器的內存源操作數(shù),由80868086取出放在數(shù)據總線上取出放在數(shù)據總線上供外部理器操作。供外部理器操作。 習習 題題 課課 P143 6.根據以下要求寫出相應根據以下要求寫出相應80X86匯編語言指令匯編語言指令 把把BX寄存器和寄存器和DX寄存器的內容相加,結果存入寄存器的內容相加,結果存入DX寄存器中寄存器中. 用寄存器用寄存器BX和偏移量為和偏移量為0B42H的寄存器相對尋址方式把存諸的寄存器相對尋址方式把存諸器中的一個字和(器中的一個字和(CX)相加,并把結果送回存儲器中。)相加,并把結果送回存儲器中。 用寄存器用寄存器BP和和SI的基

17、址加變址尋址方式求得的存儲器字操作的基址加變址尋址方式求得的存儲器字操作數(shù)和數(shù)和AX累加器內容相加,并結結果送入累加器內容相加,并結結果送入AX寄存器中。寄存器中。 ADD DX,BX ADD BX+0B42H,CX ADD AX,BP+SI習習 題題 課課 P143 7.若若CPU中各寄存器及中各寄存器及RAM參數(shù)如題圖所示,試求獨立執(zhí)行如下接參數(shù)如題圖所示,試求獨立執(zhí)行如下接令后,令后,CPU相應寄存器及相應寄存器及RAM相應內存單元的內容是多少?相應內存單元的內容是多少?CS3000HFFFFHCXDS2050H0004HBXSS50A0H0000HSPES0FFFH17C6HDXIP0

18、000H8094HAXDI000AH1403HBPSI0008H1CFRAM執(zhí)行前執(zhí)行后20506H06H507H00H508H87H509H15H50AH37H50BHC5H50CH2FH(1) MOV DX,BX+2;DX=06H BX=04H (2) PUSH DX;SP=0FFFEH SP=17C6H 習習 題題 課課 P143 7.若若CPU中各寄存器及中各寄存器及RAM參數(shù)如題圖所示,試求獨立執(zhí)行如下接參數(shù)如題圖所示,試求獨立執(zhí)行如下接令后,令后,CPU相應寄存器及相應寄存器及RAM相應內存單元的內容是多少?相應內存單元的內容是多少?CS3000HFFFFHCXDS2050H000

19、4HBXSS50A0H0000HSPES0FFFH17C6HDXIP0000H8094HAXDI000AH1403HBPSI0008H1CFRAM執(zhí)行前執(zhí)行后20506H06H507H00H508H87H509H15H50AH37H50BHC5H50CH2FH(3) MOV CX,BX;CX=04H BX=04H (4) TEST AX,01;AX=8094H CF=0H 習習 題題 課課 P143 7.若若CPU中各寄存器及中各寄存器及RAM參數(shù)如題圖所示,試求獨立執(zhí)行如下接參數(shù)如題圖所示,試求獨立執(zhí)行如下接令后,令后,CPU相應寄存器及相應寄存器及RAM相應內存單元的內容是多少?相應內存單元的內容是多少?CS3000HFFFFHCXDS2050H0004HBXSS50A0H0000HSPES0FFFH17C6HDXIP0000H8094HAXDI000AH1403HBPSI0008H1CFRAM執(zhí)行前執(zhí)行后20506H06H507H00H508H87H509H15H50AH37H50BHC5H50CH2FH(5) MOV AL,SI;AL=87H (6) ADC AL,DI;AL=0CCH CF=0H DAA;AL=32H 習習 題題 課課 P143

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論