首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

为什么执行到mov [eax].a,[ebp+$14]时会报出operand size mismatch的异常

2012-02-07 
为什么执行到mov [eax].a,[ebp+$14]时会报出operand size mismatch的错误?而用movedx,[ebp+$14]mov[eax].a

为什么执行到mov [eax].a,[ebp+$14]时会报出operand size mismatch的错误?
而用  
mov   edx,[ebp+$14]
mov   [eax].a,edx
就不会报错?
其中类成员a是integer型的。

[解决办法]
mov [eax].a,[ebp+$14]

2个操作数中,必须有一个是寄存器,而这个语句2个都是内存单元,所以错误

[解决办法]
mov edx,[ebp+$14]
mov [eax].a,edx

这2个语句中,都有寄存器edx,所以正确

热点排行