4

我的调试器中有一行如下:CMP DWORD PTR SS:[LOCAL.8], 0D

我或多或少了解两个值之间发生了比较,并且我知道LOCAL.8在这种情况下代表 EBP-20(我知道这一点,因为双击该行显示我CMP DWORD PTR SS:[EBP-20],0D

是什么LOCAL意思?

4

1 回答 1

6

局部变量通常相对于 ebp 被引用(在标准调用约定中保留了帧指针)。由于堆栈向下增长,局部变量存储在帧的开头下方,从常规内存的角度来看,它是“向下”的,从堆栈的角度来看是“向上”。您的调试器试图通过假设来自 ebp 的任何小 2 偏移量的幂是对局部变量的引用来提供帮助。点后面的数字代表它是哪个局部变量,假设在 32 位环境中是 4 字节的局部变量。

于 2013-11-11T14:51:17.420 回答