3.2.3 寻址方式字节

  多数机器指令的第二个字节表示寻址方式及有无位移量。图3.10表示了寻址方式字节的三个域。

  reg域表示寄存器寻址方式,它与操作码字节中的w位组合确定寄存器,如表3.1所示。

  mod域与r/m域组合,表示指令的另一个寻址方式,如果mod=11,则是寄存器寻址方式,寄存器由r/m域确定;如果mod=00、01或10,则指定存储器寻址方式,r/m域选择其中一种存储器寻址方式。表3.2表明了mod与r/m组合代码所对应的寻址方式。

  以MOV指令为例,根据不同的寻址方式MOV指令的机器语言可以有以下5种格式。对不同格式的指令,其长度分别为2~6个字节,指令执行时间为2~16个时钟周期。从这里可以看出来,选择不同的寻址方式对程序所占用的存储空间以及所执行的时间影响很大。

  ⑴ 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