Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly 内存中推送参数的处理_Assembly_X86 - Fatal编程技术网

Assembly 内存中推送参数的处理

Assembly 内存中推送参数的处理,assembly,x86,Assembly,X86,如果我有一个dword变量 [ebp+4],是指变量吗 包含在范围[ebp+4]到 [ebp+8]或[ebp+4]至[ebp]?下面描述的是正确的吗 [-12,-08] [-08,-04]变量8 [-04,00]var_4 [00,+04]ebp [+04,+08] [08,+12]h立场 [+12,+16]h持续时间 [+16,+20]lpCmdLine [+20,+24]nShowCmd [+24,+28] 谢谢你的理解是正确的。虽然堆栈向下增长,但内存中的多字节值存储在从基增加的内存地址上

如果我有一个dword变量 [ebp+4],是指变量吗 包含在范围[ebp+4]到 [ebp+8]或[ebp+4]至[ebp]?下面描述的是正确的吗

[-12,-08]

[-08,-04]变量8

[-04,00]var_4

[00,+04]ebp

[+04,+08]

[08,+12]h立场

[+12,+16]h持续时间

[+16,+20]lpCmdLine

[+20,+24]nShowCmd

[+24,+28]


谢谢你的理解是正确的。虽然堆栈向下增长,但内存中的多字节值存储在从基增加的内存地址上。dword变量将存储在ebp+4、ebp+5、ebp+6、ebp+7中。ebp+4将是最低阶字节(因为x86是小端字节)

; 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