在VC6.0中使用汇编语句,出现improper operand type和operand size conflict的错误提示
编号:QA004598
建立日期: 2002年3月24日 最后修改日期:2002年3月24日
所属类别:
mochen:
操作系统: windows98
编程工具: VC6.0 ,汇编语言
问题: 在VC6.0中使用汇编语句时,经常出现improper operand type和operand size conflict的错误提示。出错的语句有MOV AX,VALUE及AND AL, 0X80等地方,将AL,AX换成EAX也不行。请问要怎么样解决这样的问题?
回答:
出现这些错误的主要原因是操作数和寄存器类型不匹配。一般,C语言可以做一些简单的数据类型转换,如将int转换为short,将float转换为int。但对于汇编语言,不会做这样的转换。如果你的value的类型是int或long,则会产生operand size conflict的错误提示,只能是short类型,因为AX寄存器为16位。至于AND AL, 0x80则应该没有错误,可能是前面的错误影响到这个语句了。
此问题由李海回答。
| |
|
|
| |
|
|