汇编语言mov 【ax+2】,bx的目的操作数地址

2024-12-30 12:54:03
推荐回答(3个)
回答1:

  • 没有见过这种写法,

  • 看了一下5种寻址方式也没有见过这种写法,

  • 用编译器变了一下,也是病句

 

  所以楼主你的mov 【ax+2】,bx是错的哦

  下面是寻址方式的简介,楼主可以参考一下哦

 

  • PS:若有不明白的地方,可以追问

 

 

  寻址方式的简介

  段地址(SA)和偏移地址(EA)

  1.直接寻址

  直接寻址方式是指操作数的偏移地址在指令中直接给出,例如

  MOV AX,[1234H]

  EA = 1234H,SA=DS

 

  2.寄存器间接寻址

  寄存器间接寻址是指操作数的偏移地址在BX,BP,SI,DI四个寄存       器之一中

  (1) 当以BX,SI或DI寄存器进行间接寻址时,操作数的物理地址 有DS中的段地址与BX,SI或DI中的偏移地址构成

 

  (2) 当以BP寄存器进行间接寻址时,操作数的物理i地址有SS中的段地址与BP中的偏移地址构成

  MOV AX,[BX,SI或DI]

  EA = BX,SI或DI,SA = DS

 

  MOV AX,[BP] EA = BP,SA = SS

  3.寄存器相对寻址

  寄存器相对寻址是指操作数的偏移地址是BX,BP,SI,DI之一的值和一个8位或16位偏移地址之和

 

  (1) 当以BX,SI或DI寄存器进行间接寻址时,操作数的物理地址 有DS中的段地址与BX,SI或DI中的偏移地址构成

  (2) 当以BP寄存器进行间接寻址时,操作数的物理i地址有SS中的段地址与BP中的偏移地址构成

  MOV AX,[BP+100H] EA = BP+100H,SA = SS

  MOV AX,[BX,SI或DI + 100H] EA = BX,SI或DI + 100H,SA = DS

  [BX+100H] 等价于 200H[SI]

  4.基址变址寻址

  基址变址寻址是指操作数的偏移地址是一个基址寄存器BX,BP的值和一个变址寄存器SI,DI的值之和

  (1) 当以BX作为基址寄存器时,操作数物理地址由DS中的段地址与SI或DI中的偏移地址构成

  (2) 当以BP作为基址寄存器是,操作数物理地址由SS中的段地址与SI或DI中的偏移地址构成

 

  MOV AX,[BX+DI或SI] EA = BX+SI或DI,SA = DS

  MOV AX,[BP+DI或SI] EA = BP+SI或DI,SA = SS

  [BX+SI] 等价于 [BX]+[SI]

  5.相对基址变址寻址

  相对基址变址寻址是指操作数的偏移地址是一个基址寄存器BX,BP的值加上一个变址基础器SI,DI的值,再加上指令中的一个8位,16位偏移量之和

  (1) 当以BX作为基址寄存器时,操作数物理地址由DS中的段地址与SI或DI中的偏移地址构成

  (2) 当以BP作为基址寄存器是,操作数物理地址由SS中的段地址与SI或DI中的偏移地址构成

 

  MOV AX,[BX+100H+DI或SI]  EA = BX+DI或SI+100H,SA = DS

  MOV AX,[BP+100H+DI或SI]  EA = BP+DI或SI+100H,SA = SS

  [BX+SI+100H] 等价于 100H[BX+SI] 等价于 [BX]+[SI]+100H

回答2:

1.对于8086,安心不能作为机制寄存器
2.对于8086的后继机型,mov [ax+2],bx没有ax的值,无法计算目的操作数地址

回答3:

是的