; int __stdcall wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nShowCmd)
_wWinMain@16 proc near
var_8= dword ptr -8
var_4= dword ptr -4
hInstance= dword ptr 8
hPrevInstance= dword ptr 12
lpCmdLine= dword ptr 16
nShowCmd= dword ptr 20
如果我有一个dword变量 [ebp + 4],是指变量 包含在[ebp + 4]到的范围内 [ebp + 8],或[ebp + 4]到[ebp]?下面描述的是正确的吗?
[ - 12,-08]
[ - 08,-04] var_8
[ - 04,00] var_4
[00,+ 04] ebp
[+ 04,+ 08]
[+ 08,+ 12] hInstance
[+ 12,+ 16] hPrevInstance
[+ 16,+ 20] lpCmdLine
[+ 20,+ 24] nShowCmd
[+ 24,+ 28]
由于
答案 0 :(得分:1)
您的理解是正确的。尽管堆栈向下增长,但内存中的多字节值存储在来自基础的增加的内存地址中。 dword变量将存储在ebp + 4,ebp + 5,ebp + 6,ebp + 7中。 ebp + 4将是最低阶字节(因为x86是little-endian)。