ch06-指令格式與尋址方式2_第1頁
ch06-指令格式與尋址方式2_第2頁
ch06-指令格式與尋址方式2_第3頁
ch06-指令格式與尋址方式2_第4頁
ch06-指令格式與尋址方式2_第5頁
已閱讀5頁,還剩29頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、 微處理器的尋址方式1HYPer目錄8086/8088指令格式8086/8088尋址方式其它尋址方式 2HYPer一、8086/8088指令格式 計算機是通過執行指令來管理計算機并完成一系列給定功能的。因而,每種計算機都有一組指令集提供給用戶使用,這組指令集叫做計算機的指令系統。不同的計算機指令不同,指令集中指令的數量也不同,大體上在幾十種到百余種。指令系統的功能決定了CPU的綜合處理能力。8086/8088是可變長指令。 指令的一般格式為: 操作碼(OPCode,OP) 告訴計算機要執行的操作是什么,如:加、減、邏輯與等。 操作數(OPData) 執行操作過程所要操作的數,如加運算的兩個加數

2、。 操作碼 操作數 操作數3HYPer一、8086/8088指令格式CPUMOPOPData1OPData2What to do?To or From Which?R, M4HYPer一、8086/8088指令格式無操作數指令,只有操作碼單操作數指令(操作數在R中、M中)雙操作數指令(操作數在R中、M中、指令中)RcMDataRc,RsM5HYPer一、8086/8088指令格式1.無操作數指令,只有操作碼OP(8)7 0例: HLT指令為F8H(11111000B)6HYPer一、8086/8088指令格式2.單操作數指令(操作數在R中)OP(7) W(1) MOD(2) OP(3) R/M

3、(3)15 0 OP(16) 15 0雙字節 OP(5) REG(3)7 0 OP(3) REG(2) OP(3)7 0單字節REG(3)選AX,CX,DX,BX,SP,BP,SI,DI例DEC BX 為4BH(01001 011B)REG(2)選ES,CS,SS,DS例PUSH CS 為0EH(000 01 110B)W=字/字節;MOD=尋址方式:11表示是R操作;其它00,01,10表示M操作。R/M=寄存器/存貯器選擇(1): AL/AX,CL/CX,DL/DX,BL/BX,AH/SP,CH/BP,DH/SI,BH/DI.隱含AX或ALMOD=117HYPer一、8086/8088指令

4、格式2.單操作數指令(操作數在M中)OP(7) W(1) MOD(2) OP(3) R/M(3)15 0OP(7) W(1) MOD(2) OP(3) R/M(3) DISP8 (8) 23 0OP(7) W(1) MOD(2) OP(3) R/M(3) DISP16 (16) 31 0MOD=00MOD=01MOD=10MOD與R/M的3x8種組合,對應不同的M尋址方式。8HYPer一、8086/8088指令格式3.雙操作數指令一個操作數在R、M中,另一個在R中、M中、立即數。不可以都在M中。R-RR-MR-Data(指令)M-Data(指令)M-MRcMData9HYPer一、8086/8

5、088指令格式3.雙操作數指令(R-R)OP(6) D(1) W(1) MOD(2) REG(3) R/M(3)15 0MOD=11D = REG為目標(R/M為源)/REG為源(R/M為目標)。指出目標、源寄存器的位置。 D=1時,REG中為目標操作數R,R/M為源操作數據R;D=0 相反。REG,R/M都有8種組合, AL/AX,CL/CX,DL/DX,BL/BX,AH/SP,CH/BP,DH/SI,BH/DI.W=字/字節選擇(16位/8位)10HYPer一、8086/8088指令格式3.雙操作數指令(R-M)OP(6) D(1) W(1) MOD(2) REG(3) R/M(3)15

6、0MOD = 11D= REG為目標(R/M為源)/REG為源(R/M為目標)。指出目標、源寄存器的位置。 D=1時,REG中為目標操作數R,R/M為源操作數據R;D=0 相反。REG,W有8種組合,選AL/AX,CL/CX,DL/DX,BL/BX,AH/SP,CH/BP,DH/SI,BH/DI。R/M,MOD=00、01、10:對M不同尋址。11HYPer一、8086/8088指令格式3.雙操作數指令(RData)OP(4) W(1) REG(3) Data-L Data-H 23 0REG,W組合,選AL/AX,CL/CX,DL/DX,BL/BX,AH/SP,CH/BP,DH/SI,BH/

7、DI。OP(7) W(1) MOD(2) OP(3) R/M(3) Data-L Data-H 31 0MOD=11R/M,W組合,選AL/AX,CL/CX,DL/DX,BL/BX,AH/SP,CH/BP,DH/SI,BH/DI。12HYPer一、8086/8088指令格式3.雙操作數指令(MData)OP(7) W(1) MOD(2) OP(3) R/M(3) Data-L Data-H 31 0MOD=11R/M,W組合,選對M的尋址OP(7) W(1) MOD(2) OP(3) R/M(3) Disp-L Disp-H Data-L Data-H 47 0MOD=11 地址位移量 立即數

8、13HYPer一、8086/8088指令格式雙操作數指令OP(6) D(1) W(1) MOD(2) REG(3) R/M(3)ADisp-L Disp-H Data-L Data-H 或 或Data-L Data-H操作碼尋址方式REGW=0W=1R/M000ALAX000001CLCX001010DLDX010011BLBX011100AHSP100101CHBP101110DHSI110111BHDI111D=1目標操作數源操作數D=0源操作數目標操作數14HYPer一、8086/8088指令格式Rc:AX,BX,CX,DX,SP, BP, SI, DIAH,BH,CH,DH,AL, B

9、L,CL,DLM:RcMData基址變址偏移量*Note: BP, Disp8不可一個出現,組合狀態26-2=24無論怎樣操作數位于:指令中R中M中 BP SI Disp8Mea= + + BX DI Disp1615HYPer80386指令格式:Rc:AX,BX,CX,DX,SP,BP,SI,DIAH,BH,CH,DHAL, BL,CL,DLEAX,EBX,ECX,EDX,ESP,EBP,ESI,EDIOP 。 指令前綴M: EA= EAX EBX ECX EDXESPEBPESIEDIEAX EBX ECX EDX -EBPESIEDI+Disp8,Disp32124880386指令格式*

10、Note: 45種組合。P77 無論怎樣操作數位于:指令中R中M中16如: 43 INC BX 89 08 MOV AX, BX B8 00 10 MOV AX, 1000 02 85 00 20 ADD AL, DI+2000 C6 06 00 30 12 MOV BYTE PTR3000, 12 C7 06 00 30 34 12 MOV WORD PTR3000, 1234 匯編語言是一種符號語言,它用: 助記符表示操作碼; 符號或符號地址表示操作數或操作數地址. 匯編語言指令與機器指令一一對應操作碼場操作數場HYPer一、8086/8088指令格式170.隱含尋址 -操作數據隱含在某個

11、R中1.立即尋址方式 操作數據在指令中,data2.寄存器尋址 操作數據在R中3.直接尋址方式4.寄存器間接尋址5.寄存器相對尋址6.基址加變址尋址7.相對基址加變址尋址HYPer二、8086/8088尋址方式- 操作數在M中都是M尋址180.隱含尋址 -操作數據隱含在某個R中HYPer二、8086/8088尋址方式例:XLAT 隱含使用AL,BX。操作ALBX+AL191.立即尋址方式 這種尋址方式所 提供的操作數直接放 在指令中,緊跟在操 作碼的后面,與操作 碼一起放在碼段區域 中。立即數可以是8 位的,也可以是16位. 立即尋址主要是 用來給寄存器賦初 值. 20例如:MOV AX,12

12、34H ;十六進制數1234H送入AX。 212.寄存器尋址 操作數包含在CPU的內部寄存器中。例如寄存器AX、BX、SI、DI等, 雖然操作數可在CPU的內部通用寄存器的任一個中,且它們都能參與算術運算和邏輯運算并存放運算結果。但是AX是累加器,若結果是存放在AX中,則通常指令要更短些,更緊湊些。22例如:MOV AX,BX ;將寄存器BX的內容送入AX中。233.直接尋址方式 操作數的地址的16位 偏移量直接包含在指令 中,它與操作碼一起在 碼段區域中,但操作數 一般在數據段區域中, 它的地址為數據段寄存 器DS加上它的16位地址 偏移量。 指令中的16位地址偏 移量是低位字節在前, 高位

13、字節在后。 這種尋址方法,是以 數據段寄存器的地址為 基礎,可在多達64K字 節的范圍內尋找操作數 。EA=指令中直接給出地址 如 MOV AX,3000H24例如:MOV AL,DS:2000H ;將邏輯地址為DS:2000單元內的字節送入AL。若段基址DS=4000H,則段起始物理地址為4000H左移4位,即40000H,此指令將數據段中物理地址為42000H 單元的內容56H傳至AL寄存器。MOV AL,DS:2000H4000H 56HAX DS2000H操作碼操作碼00H20H56H42000H42000H254.寄存器間接尋址(間接尋址) 在這種尋址方式中,操作數是在存儲器中,但是

14、,操作數的地址的16位偏移量包含在以下四個寄存器SI、DI、BP、BX之一中。這又可分成兩種情況: 1、 BX、SI、DI間址時以 DS為默認段地址; 例:MOV AX,SI 2、BP間址時以SS為默認 段地址。 例:MOV AX,BP EA = 基址尋址變址尋址BPBXSIDI直接尋址與間接尋址的例子想一想!26例如:MOV AX,BX ;BX內容為有效地址EA(偏移量)。若DS=4000H,BX=100H,此指令將物理地址40100H 單元的內容傳至AL寄存器(段基地址同樣為40000H)。DSBXAX40100H275.寄存器相對尋址 所謂變址尋址即以基準寄存器BX、BP、SI、DI加上

15、給定的8位或16位偏移量作為操作數的有效地址。段地址規則同上。 例: MOV AX,MASKSI MOV AX,SI+MASKEA= + Disp8(Disp16)BPBXSIDI28例如:MOV AL,BX+5;DS=6000H,BX=2000H,BX的內容加上8位位移量05H作為操作數的有效地址。傳送數據段中的一個字節到AL中。如果使用BP,則隱含地表示操作數存放在堆棧段中。MOV AL,BX+5DSBXAL62005296.基址加變址尋址 基址加變址尋址即以某一基地址寄存器(通常為BX、BP)的內容,加上某一變址寄存器(通常為SI,DI)的內容,形成操作數的有效地址。段地址規則同上。 例

16、: MOV AX, BX + SI BP SIBX DIEA=+30例如:MOV AX,BX+SI;BX的內容與SI的內容之和作為操作數的有效地址。傳送數據段中的一個字。 MOV AX,BX+SIDSBXSI52006HAX317.相對基址加變址尋址 相對基址加變址尋址即以某一基地址寄存器(通常為BX、BP)的內容,加上某 一變址寄存器(通常為SI,DI)的內容,再加上給定的8位或16位偏移量,形成了操作數的有效地址。 段地址規則同上。 例: MOV AX,MASKBXSI MOV AX,BX+SI+MASK BP SI EA= + + Disp8(Disp16) BX DI32例如:MOV AH,BX+DI+1234H ;BX的內容加上DI的內容

溫馨提示

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

評論

0/150

提交評論