没有见过这种写法,
看了一下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
1.对于8086,安心不能作为机制寄存器
2.对于8086的后继机型,mov [ax+2],bx没有ax的值,无法计算目的操作数地址
是的