在8086中,[ idata],[bx]表示内存单元时。可能是一个字节,也可能是一个字。

可能表示一个字节,也可能表示一个字。主要由指令中另一个计算对象决定。如al表示一个字节。ax就表示一个字。

这个区别主要体现在循环中,偏移地址的循环变量是加1还是加2,al是偏移地址加1,ax是偏移地址加2.

[idata],[bx]表示的是偏移地址。

[idata],[bx]是有区别的。在代码中mov ax [idata];会把[idata]看作idata,而不会看作地址。

                                            mov ax ds:[idata];会把[idata]看作偏移地址,段地址为ds。

                                            mov ax [bx];则把[bx]看作偏移地址,默认的段地址为ds.

原文地址:https://www.cnblogs.com/wanghj-dz/p/3969897.html