bx 基址寄存器(BaseRegister简写)bx在哪里使用呢?
在debug模式的时候我们常常会看到 mov ax,[0]这样的命令,意思是将数据段偏移地址为0的数据赋值给ax
但是在我们的asm源程序如果写成mov ax,[0]如果编译生成exe文件后,进入debug模式通过u命令查看汇编指令
会发现debug模式中会变成mov ax,0 而不是 mov ax,[0]
这样命令的含义就变成将 ax的值赋值为0。原意是将短地址ds偏移地址为0的存储的值赋值给ax
基于上面的问题吗,因此应该修改代码为
mov bx,0
mov ax,[bx]
同理如果要想mov ax,[100]都的通过bx来告诉编译器,这里是数据段的偏移地址
代码得变成:
mov bx,100
mov ax,[bx]
当然另外一种方式可以写成 mov ax,ds:[100]