热情软件屋

 

在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则应该没有错误,可能是前面的错误影响到这个语句了。

此问题由李海回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio