[bx]和内存单元
我们在debug中,可以输入以下命令来执行对于段地址偏移地址的操作:
mov ax, [0] ;字传输 |
但是当我们将这个命令在编译环境下执行,则会出现问题,例如我们写一个汇编脚本:
cs:codesg |
然后我们在debug中进行调试, 如图所示:

我们发现随着mov bx, [n]的执行,通用寄存器BX的值发生改变。
这是因为在编译环境下,无法识别debug中我们用到的内存单元表示” [] “。
5.1 [BX]
在编译环境下我们有替代的方法:
mov ax, [bx] |
功能为在bx中存放的数据作为一个偏移地址EA, 段地址SA默认在DS中,将SA:EA处的数据送入AX中。即:
$(AX)=((DS)*16+(BX))$
另一个用法为:
mov [bx], ax |
功能为在bx中存放的数据作为一个偏移地址EA, 段地址SA默认在DS中,将AX中的数据送入内存SA:EA处。即:
$((DS)*16+(BX))=(AX)$
注:inc命令, 含义为在BX中的内容加1,如:
mov bx, 1 |
执行后,BX = 2。