汇编语言题:试分析下列程序段执行完后,A单元的内容是多少?

试分析下列程序段执行完后,A单元的内容是多少?
Data segment
A dw 0
B dw 0
C dw 240, 20, 54
Data ends
Code segment

MOV BX, OFFSET C
MOV AX, [ BX ]
MOV B, AX
MOV AX,2[ BX ]
ADD AX, B

Code ends

请写出详细的解题思路,特别是
MOV BX, OFFSET C
MOV AX, [ BX ]
MOV B, AX
MOV AX,2[ BX ]
ADD AX, B
这些说的是什么,谢谢。

Data segment
A dw 0 ; 字存储单元A
B dw 0 ; 字存储单元B
C dw 240, 20, 54 ; 定义3个字存储单元,相对C的偏移分别为0,2,4
Data ends
Code segment

MOV BX, OFFSET C ; 把C的地址给bx
MOV AX, [ BX ] ; 寄存器间接寻址,把bx处的值送给ax,故ax = 240
MOV B, AX ; 把ax存在B里,B = ax
MOV AX,2[ BX ] ; 寄存器相对寻址,偏移以字节为单位,把bx+2处的值送给ax,故ax = 20
ADD AX, B ; ax = ax + B = 20 + 240 = 260 = 104h

Code ends
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-04-25
A单元不变还是为零

MOV BX, OFFSET C ;C的偏移地址放入BX
MOV AX, [ BX ] ;BX的值为C,AX的值为240
MOV B, AX ;把AX的值放入B 变量B的值为240
MOV AX,2[ BX ] ;2[BX]的值为54 放入AX
ADD AX, B ;AX的值为54 变量B的值为刚才放入的240 相加为294
相似回答