【发布时间】:2013-06-11 19:07:03
【问题描述】:
我试图了解这 2 行中发生了什么:
mov %esp,%edi
lea 0x10(%edi),%esi
首先,我将当前堆栈指针保存到 %edi 寄存器。这很清楚。但是现在......我从之前的过程中跳回了 16 字节的堆栈区域并将地址保存在 %esi 寄存器中?我为什么要那么做?此时,我不知道这个地址包含什么。有人可以帮我解释一下这条线的含义吗?
【问题讨论】:
-
如果你不知道为什么要这样做,你为什么要写它?
-
不是我写的。我只是想理解代码。
-
好吧,我很困惑,因为你一直说“我做这个”和“我做那个”,暗示你写的。所以我猜另一个问题是,“为什么没有注释代码,所以它解释了他们在堆栈上寻找什么?”我们不知道堆栈上有什么。希望原作者能做到。