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

汇编新手看书有个疑问 为什么 mov ax 'a'是错的

白衣柳相 发布于 2018-05-04 21:20, 5153 次点击
这个指令不就是把字符'a'存到寄存器ax里么,,,为什么不可以,实在是看书不明白求教,书上说因为寄存器AX是一个字长,而'a'是一个字节,一个字长应该是大于或者等于一个字节的吧,,,,,
8 回复
#2
白衣柳相2018-05-05 09:12
我知道为什么错的啦,,,溜,因为mov要求操作数类型一致 溜了溜了
#3
Valenciax2018-05-05 10:08
mov ax,'ab' ;可以
mov al,'a'  ;可以
mov ax,'a'  ;不可以
#4
星系隐2019-11-14 22:11
回复 3楼 Valenciax
能不能再讲讲,ax不就是al ah吗,为什么一个可以一个不行呢?
#5
Valenciax2019-11-15 18:56
回复 4楼 星系隐
mov A,B
其中A和B必须长度一致,长度可以是8bit,16bit,32bit和64bit
mov ax,'a' 不可以,因为ax长度16bit, 'a'是一个8bit的字节
#6
星系隐2019-11-15 19:09
回复 5楼 Valenciax
我的天,我这书看的,跟瞎子一样..
#7
鱼儿海2020-02-02 03:10
受教
#8
和风说话的人2020-02-18 21:48
回复 楼主 白衣柳相
mov ax 后面要一个字长度的数据,'a'是一个字节,用al或者ah
#9
阿凡的夏天2020-05-04 22:16
操作数类型不一致导致的
1