图3.10 寻址方式字节

     

          表3.1 reg域与w位组合表示寄存器

reg
w=1
w=0
000
AX
AL
001
CX
CL
010
DX
DL
011
BX
BL
100
SP
AH
101
BP
CH
110
SI
DH
111
DI
BH

      表3.2 mod与r/m组合代码所对应的寻址方式

   mod
r/m
00
01
10
11
w=0
w=1
000
DS:[BX+SI]
DS:[BX+SI+D8]
DS:[BX+SI+D16]
AL
AX
001
DS:[BX+DI]
DS:[BX+DI+D8]
DS:[BX+DI+D16]
CL
CX
010
SS:[BP+SI]
SS:[BP+SI+D8]
SS:[BP+SI+D16]
DL
DX
011
SS:[BP+DI]
SS:[BP+DI+D8]
SS:[BP+DI+D16]
BL
BX
100
DS:[SI]
DS:[SI+D8]
DS:[SI+D16]
AH
SP
101
DS:[DI]
DS:[DI+D8]
DS:[DI+D16]
CH
BP
110
DS:D16
SS:[BP+D8]
SS:[BP+D16]
DH
SI
111
DS:[BX]
DS:[BX+D8]
DS:[BX+D16]
BH
DI

       注: ⑴ 表中的各种存储器寻址方式均使用缺省的段寄存器
          ⑵ D8、D16分别表示8位位移量和16位位移量


  注意,mod=00与r/m=110的组合,它表示指令只有位移量时的寻址方式,如指令MOV [1000H],DL所对应的机器语言就是这种组合。但是表中缺少了SS:[BP]的寻址方式。实际上,机器语言中没有无位移量的[BP]寻址方式,每当指令中出现[BP]时,汇编程序将它汇编成[BP+0],也就是mod=01和r/m=110的组合,在寻址方式之后的DATA/DISP字节中,是一个8位的位移量00(见机器指令举例⑶)。

  ⑴ MOV reg1,reg2或MOV reg,mem或MOV mem,reg
  

  ⑵ MOV ac,mem或MOV mem,ac (ac为累加器AH、AL或AX)
  

  ⑶ MOV segreg,reg或MOV reg,segreg
    MOV segreg,mem或MOV mem,segreg
  

  ⑷ MOV reg,data
  

  ⑸ MOV mem,data