【发布时间】:2012-10-03 21:25:57
【问题描述】:
可能重复:
What’s the purpose of the LEA instruction?
LEA instruction?
所以我正在为班级分配二进制炸弹(它有很多阶段,您必须逐步检查程序的汇编代码并找到密码来解码“炸弹”)。
我无法完成当前阶段,因为我不懂 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 个字节?
感谢您在此提供的任何帮助。
【问题讨论】: