- C/C++ code
int w = 769; __asm { mov eax, 1 lea ebx, w mul [ebx] ; 这里是1*769,但结果eax等于1,而不是769,怎么回事? }
怎么回事呢?
------解决方案--------------------------------------------------------
这个问题,其实很简单了,调试软件里在 mul 指令上断点,一看这指令成了 mul byte ptr [ebx] ?所以,c 编译器处理和预想的不一致;这样,只能自己将该指令完善了写成 mul dword ptr [ebx]