汇编问题(王让定汇编语言与接口技术)
1、就是课本第68页,图3.2左边那段代码的最后一行是不是错误的呢?
书上是这么写的: MOV EAX,[500] ;EAX<---DS:500H单元中双字。书上的意思是把偏移地址为500处内存中的数据赋给eax对吧。可是反编译的时候是这样的:EAX,500。直接把数值500赋给了eax,并不像书上所说的那样。如果要想达到书上想要的结果得这样写:mov ebx,500
mov eax,[ebx]
我想求证一下是书上错了,还是我哪里出错了呢?
2、先看个程序:
.MODEL SMALL
.DATA
X DB 27,57,45
.STACK
.CODE
.STARTUP
MOV AL,X ;标记1 执行后的结果为:(AL)=1Bh(也就是十进制的27)
MOV BL,[X] ;标记2 执行后的结果为:(BL)=00
MOV CX,OFFSET X ;标记3 执行后的结果为: (cx)=0000
.EXIT 0
END
我的问题是:标记1和标记2有何区别呢?还有标记3和标记2又有什么联系呢?