主题:一道汇编题
zqg1177
[专家分:180] 发布于 2007-07-03 14:38:00
start dw 10h,20h,30h,40h
ee1 dw 3
mov bx,offset start
add bx,ee1
mov ax,[bx]
最后AX的内容为什么会是3000H?为什么不是0040H?
回复列表 (共4个回复)
沙发
宿命的裸奔 [专家分:150] 发布于 2007-07-03 20:51:00
为什么是3000h就不知道
但绝不会是40h
因为start 的数据是dw的,所以移的时候每一个单位要移2,所以如果想要40h的话
add bx,6才对。我认为如此
板凳
def [专家分:3380] 发布于 2007-07-03 21:08:00
谢谢,我胡嘟了。。。想取最后一个还要offset...
还有数据居然放到代码里去了,你看来没学好
3 楼
宿命的裸奔 [专家分:150] 发布于 2007-07-03 21:14:00
他就那么一些罢了,难道start后面就必须是代码?不过是个标号么。
楼上要有好方法说出来就行了,大家都可以学学,哪那么多别的话?
4 楼
zqg1177 [专家分:180] 发布于 2007-07-06 15:31:00
我想明白了,的确是3000H。因为START定义的是字,所以占二个单元,BX经过加3后,指针应该指在存放00H的单元,加上取的是字,下一下单元的内容是30H,所以(AX)=3000H。
还有请问二楼的大虾,我哪里把数据放到了代码段里去了?请指出,谢谢。
我来回复