为什么这些代码是错误的:指令操作数必须大小相同

时间:2013-10-10 04:18:53

标签: winapi assembly x86

正如我所说:

这些代码:

mov     EBX, 0
mov     EBX, ofn.nFileOffset   
add     EAX, EBX                ;; error

获取错误:指令操作数必须大小相同。

但是当我编辑:

mov     EBX, 0
mov     BX, ofn.nFileOffset   
add     EAX, EBX   

没关系。 我也通过Ollydbg测试跟踪寄存器,但我没有看到任何不同。

任何人都可以解释

2 个答案:

答案 0 :(得分:1)

of.File Offset是2个字节。

和Mov指令需要大小为2的参数。

答案 1 :(得分:0)

你应该尝试:

xor     EBX, EBX
mov     BX, ofn.nFileOffset   
add     EAX, EBX

现在,ofn.nFileOffset

中的值为EBX