【发布时间】:2013-06-30 01:54:14
【问题描述】:
我正在尝试在 MASM 中编写一个小程序。在一行中,当我尝试增加 ECX 时,我得到了这个错误......这似乎没有任何意义,因为只有一个操作数!
以下是相关代码:
mov ecx, eax
lea eax, DWORD PTR [ecx]
lea ecx, BYTE PTR [eax+4]
inc ecx
一开始,EAX只是一个字符串的长度,在这个0x05。
那么,有人知道为什么会这样吗?谢谢!
【问题讨论】:
-
为什么你的第二行是 LEA 而不是简单的 MOV?
-
好吧,我正在做一个crackme,只是从它的算法中复制了指令。我刚开始学习汇编,还不太清楚 MOV 和 LEA 之间的区别。
-
认为
MOV是x = y的C 等价物,而LEA是x = &y(注意它获得y的地址,不是y)的值)