求教~~求MOV 1[BX+SI],AX的地址和执行结果 已知DS=1000H SS=2000H BX=300H BP=50H SI=50H DI=60H AX=12H

如题所述

1[BX+SI], 段地址默认在DS中。有效地址AE = DS * 10h + BX + SI + 1 = 10351h
执行该指令后,该地址存放的数据为0012h。

不过这条指令本身就是不严谨的,具体还是要看各种编译器如何解释。
有的编译器默认传送的数据类型为16位,这取决于源操作数的位宽。这条指令中的AX为16位,因此默认为16位数据传送。
但在MASM中,该条指令无法通过编译,因为需要显式指定该地址存放的数据类型。因此常用的只有以下几种:
mov byte ptr 1[BX + SI], AX,则执行结果为12h
mov word ptr 1[BX + SI], AX,则执行结果为0012h,同默认情况
mov dword ptr 1[BX + SI], AX,则执行结果为00000012h。
温馨提示:答案为网友推荐,仅供参考
相似回答