IP寻址方式二

3、直接寻址方式:

 

  操作数在寄存器中,指令直接包含有操作数的有效地址(偏移地址)

 

  注:操作数一般存放在数据段

 

  所以操作数的地址由DS加上指令中直接给出的16位偏移得到。如果采用

 

  段超越前缀,则操作数也可含在数据段外的其他段中。

 

  例如:

 

  MOV AX,[8054]

 

  如(DS) = 2000H,

 

  则执行结果为(AX) = 3050H

 

  (物理地址=20000+8054=28054H)

 

  28054H里的内容为3050H

 

  在汇编语言指令中,可以用符号地址代替数值地址

 

  如:MOV AX,VALUE

 

  此时VALUE为存放操作数单元的符号地址。

 

  如写成:MOV AX,[VALUE]也是可以的,两者是等效的。

 

  如VALUE在附加段中,则应指定段超越前缀如下:

 

  MOV AX,ES:VALUE 或 MOV AX,ES:[VALUE]

 

  4、寄存器间接寻址方式:

 

  操作数在寄存器中,操作数有效地址在SI、DI、BX、BP

 

  这四个寄存器之一中。在一般情况下,如果有效地址在

 

  SI、DI和BX中,则以DS段寄存器中的内容为段值。如果

 

  有效地址在BP中,则以SS段寄存器中的内容为段值

 

  例如:

 

  MOV AX,[SI]

 

  如果(DS) = 5000H (SI) = 1234H

 

  则物理地址 = 50000 + 1234 = 51234H

 

  51234H地址中的内容为:6789H

 

  执行该指令后,(AX) = 6789H

posted @ 2019-11-28 23:49  lalalallala  阅读(334)  评论(0编辑  收藏  举报