匯編尋址方式


立即數尋址方式:MOV AX,0102H  
  源操作數是數
寄存器尋址方式 : MOV BX,AX  
  源操作數是寄存器。這些寄存器有:16位的AX BX CX DX SI DI SP BP
  8位的AH AL BH BL CH CL DH DL  
直接尋址方式 :MOV AX,[2000H]  
  源操作數是地址,與立即數尋址的區別就是,地址一般就是有【】   
寄存器間接尋址方式 :MOV AX,[SI]  
  源操作數中的寄存器是BX BP SI DI 中的任意一個  
寄存器相對尋址方式 :MOV AX,[DI+06H] ;AX←DS:[DI+06H]  
  源操作數是BX BP SI DI 中的任意一個與數字的和
基址變址尋址方式 :MOV AX,[BX+SI] ;AX←DS:[BX+SI]  
  源操作數是(BX BP)和( SI DI )這兩組中的任意兩個的和  
相對基址變址尋址方式 :MOV AX,[BX+SI+06H] ;AX←DS:[BX+SI+06H]  
  這種尋址方式就是上兩種的組合

 

 

8086/8088有7種基本的尋址方式:立即尋址,寄存器尋址,直接尋址,寄存器間接
尋址,寄存器相對尋址,基址加變址尋址方式,相對基址加變址尋址。

1   立即數尋址
     操作數就在指令中,作為指令的一部分,跟在操作碼后存放在代碼段。
     eg.   mov ah,01h
             mov ax,1204h 
     ;如果立即數是16位的,則高地址放在高位,低地址放在低位
                  
2   寄存器尋址
     操作數在寄存器中,指令中指定寄存器號。對於8位操作數,寄存器可以是AL,AH,BL,BH,CL,CH,DL,DH。 對於16位操作數,寄存器可以是AX,BX,CX,DX,BP,SP,SI,DI等
     eg.   mov ah,ch
             mov bx,ax
                  
3   直接尋址方式
     操作數在存儲器中,指令直接包含操作數的有效地址EA。
     eg.   mov ax,[1122h]   ;將ds:1122的數據放在ax,默認段為DS
             mov es:[1234],al ;采用了段前綴
                  
4   寄存器間接尋址
     操作數在存儲器中,操作數的有效地址在SI,DI,BX,BP這4個寄存器之一中。在不采用段前綴的情況下, 對於DI,SI,BX默認段為DS,而BP為SS。
     eg.   mov ah,[bx]
             mov ah,cs:[bx] ;使用了段前綴
                  
5   寄存器相對尋址
     操作數在存儲器中,操作數的有效地址是一個基址寄存器(BX,BP)或變址寄存器(SI,DI)的內容加上8位或16位的位移之和。在指令中的8位和16位的常量采用補碼表示,8位要被帶符號擴展為16位。
      eg.   mov ah,[bx+6];段址默認情況與寄存器間接尋址相同
                  
6   基址加變址尋址
              操作數在存儲器中,操作數的有效地址是一個基址寄存器(BX,BP)加上變址寄存器(SI,DI)的
              內容。如果有BP,則默認段址為SS,否則為DS.
              eg.   mov ah,[bx+si]
              
7   相對基址加變址尋址
    操作數在存儲器中,操作數的有效地址是一個基址寄存器(BX,BP)和變址寄存器(SI,DI)的內容加上8位或16位的位移之和。如果有BP,則默認段址為SS,否則為DS.
    eg.   mov ax,[bx+di-2]
            mov ax,1234h[bx][di]
                  
[注]:上面3~7為存儲器尋址方式

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM