注册 登录
编程论坛 汇编论坛

关于mov的一个小问题

TE20 发布于 2007-05-21 22:51, 2384 次点击

MOV AX,0ABCDH

MOV AX,ABCDH
这两者有区别吗?
若无区别,为啥前者要填个0啊?????????

29 回复
#2
xfilesliuli2007-05-21 23:22

有区别,计算机不认MOV AX,ABCDH
只认MOV AX,0ABCDH
比方MOV BH,AH
MOV BH,0AH
应该知道为什么加0了吧

#3
TE202007-05-22 11:53

兄弟, 为什么要+个0啊 呵呵 真的不知道啊

#4
fishlover2007-05-22 12:14
记的不太清除了!应该是字母前是要加0的,否则不能识别
#5
菜鸟上路2007-05-22 12:16
恩。LS说的对。LZ只要这样记就可以了,这只是个规定
#6
llluyan2007-05-22 12:21
不是的
0ABCDH表示一个立即数
ABCDH表示一个符号地址
ok?

#7
菜鸟上路2007-05-22 13:15
LS的没弄清楚前不要乱讲
#8
爱以走远2007-05-22 13:44
前面加一个0是做前导字符
只要二进制的第一位是1 就要加一个0
#9
guancracker2007-05-23 01:08
以下是引用fishlover在2007-5-22 12:14:15的发言:
记的不太清除了!应该是字母前是要加0的,否则不能识别

对啊!
在汇编程序中,数据不能以字母开头,所以要在前面加0.

#10
Pants2007-05-23 10:00
以下是引用guancracker在2007-5-23 1:08:34的发言:

对啊!
在汇编程序中,数据不能以字母开头,所以要在前面加0.

对头~~

#11
yefei10192007-05-23 20:33

如果16进制数以字母开头必须要在前面+0 以便让机器识别`

#12
TE202007-05-27 18:56
感觉楼上众多朋友的帮助,,,,,
#13
jinchaoren2007-05-27 23:57
加0表示是数据.
#14
jinchaoren2007-05-27 23:57
很简单的.
#15
g198710012007-06-04 00:24
...我希望大家能在自己的话加个问好,表示尊敬.  我同意6楼的说法.2位斑竹请你们先看够书吧!!!不要误解我们新手
#16
g198710012007-06-04 00:27
比如aah,运行时,会被认为是个变量aah,而0aah完全是个立即数,对不?
#17
菜鸟上路2007-06-04 12:27
对LS只能无语
#18
g198710012007-06-04 21:49
我对这个所谓的规定才无语,不会解释就别来个规定2个字。所谓的规定也是有条件的 如果我说错了麻烦你把你上面那里指出来,哪里错了,很期待。
#19
g198710012007-06-04 21:52

随便来个aah db XX 所指的确实是地址

#20
qqtxun2007-06-16 12:29

加0的是为了区分数据和字符串

大多时候字符是表示地址的

不过也要看看再说了

要是G前加个0我想那就是写错了吧
哈哈



#21
菜鸟上路2007-06-16 13:05
以下是引用g19871001在2007-6-4 21:49:26的发言:
我对这个所谓的规定才无语,不会解释就别来个规定2个字。所谓的规定也是有条件的 如果我说错了麻烦你把你上面那里指出来,哪里错了,很期待。

,如果这种问题要这么追究,干脆别学编程了

#22
chaogang2007-06-19 18:25
以下是引用g19871001在2007-6-4 0:24:41的发言:
...我希望大家能在自己的话加个问好,表示尊敬. 我同意6楼的说法.2位斑竹请你们先看够书吧!!!不要误解我们新手

悲哀,我劝你还是别学汇编了 你基础性的就没懂

6楼的明明是 错误的 原则性的重大错误 汗....

#23
TE202007-08-03 12:56

原来我的一个小问题牵扯出这么多,呵呵,大家一起努力就ok了

#24
奔跑的鸟2007-08-03 13:03
16进制立即数首位为字母时候前面必须加0,这是规定
#25
DecoderEx_2007-08-10 17:48
如果不加零,那ah是立即数呢,还是变量名呢?加零区别
#26
lasonberg2007-08-10 20:26

立即数?在下理解的是寻址的时候不用向寄存器和内存吃、拿、卡、要,直接在代码里就能找到操作数!立即数寻址中的数字是指令的一部份,存储在代码段,执行是不用去取数据段中的数据。
至于楼主说的问题 在MASM中要求对于16进制数,MASM要求后跟H或h结尾,前面以数字开头,如是以字母开头的16进制数,MASM要求必须加一个前导0。
而在DEBUG中,默认十六进制数。所以十六进制数“FB”在DEBUG中只能输入为FB,后面不能加H,前面也不用加0。
补充一句 才想起来 常数和符号常量都是立即寻址!

[此贴子已经被作者于2007-8-10 21:02:56编辑过]

#27
lasonberg2007-08-10 21:09
回复:(DecoderEx_)如果不加零,那ah是立即数呢,还...
在MASM中 如 MOV AX,0AB  就是立即数  表明AB是进制数。MOV AX,AB 是非法的 ,如果以AB为字符常量 做立即数 前面必须得用DB什么的声明吧 ?  很抱歉我还没学到那里 所以只能是猜测   斑竹来个一锤定音吧!

[此贴子已经被作者于2007-8-10 21:15:53编辑过]


#28
yege2007-08-13 07:55
字母前要加0﹐否則機器不識別        
#29
nmgzjz042007-08-13 12:39

那是个十六进制数,如果字母开头要求在前面加0

#30
W6498972007-08-13 15:15
回复:(TE20)关于mov的一个小问题

传说是为了区分变量和数据的关系,所以要加一个0

1