汇编语言关于MOV指令的一些疑问!

假如我在数据段这么定义了一个变量X DB 1,2,3
然后如果我想把数1传送给AL那么下面这些指令哪个才是正确的MOV AL,X还是MOV AL,[X]?这俩指令又有何区别?还有MOV AX,OFFSET X这个指令跟上面两个又有何区别?真混的慌。谁告诉我呀!
不能怎么样啊!?
到底谁说的对呀?有没有点权威的答案啊。一个人一个样。汗

第1个回答  2011-06-03
数1传送给AL, 正确的是MOV AL,X。
MOV AL,[X]是错误的,编译通不过的。
MOV AX,OFFSET X是把x的偏移地址放到ax中,这个地址指向存放数字1的内存单元追问

确定?

追答

确定,以知道达人的信誉担保。

本回答被提问者采纳
第2个回答  2011-06-02
第一个的意思是X的段地址赋予AL,但AL不是十六位以上的寄存器,所以这句错误;
第二个是把X这个内存地址中的内容赋予AL,但X只能是立即数和寄存器组成的,所以也错;
第三个是把X的偏移地址给AX,这个正确;
第3个回答  2011-06-02
MOV AX,OFFSET X
是将标号X的偏移地址给AX
MOV AL,[X]
是说把X作为偏移地址,把这个地址内的内容给AL
MOV AL,X 把段地址给AL,
相似回答