可能重复:
LEA 指令的目的是什么?
LEA 指令?
所以我正在研究类的二进制炸弹分配(它有很多阶段,你必须逐步完成程序的汇编代码并找到一个密码来解码“炸弹”)。
我无法完成当前阶段,因为我不懂 lea 命令。我读过它通常用于算术,但我只是不明白它是如何做到的。
我特别看的命令是
lea -0x18(%ebp), %ebx
lea -0x8(%ebp), %esi
其次是
mov -0x4 (%ebx), %eax
add -0x8(%ebx), %eax
在下一行中,比较 eax 和 ebx,如果它们相等,则程序继续,否则炸弹爆炸。
我已经对这个阶段有了足够的了解,知道它需要 6 个数字,前两个是 0 和 1。之后它会进行一些操作以确定序列的其余部分是否正确(我假设 lea 命令是什么我需要解码才能找到下一个数字)。
现在我找不到的是 -0x18 特别指的是什么。负号是做什么的?它表示减法吗?它在 ebp 之前看起来是 18 个字节吗?
感谢您在这里的任何帮助。