【发布时间】:2014-02-07 01:58:44
【问题描述】:
我只是想知道,如果我有这个 ASM 功能:
PUSH EBP
MOV EBP, ESP
SUB ESP, 8
LEAVE
RETN 8
什么都不做,只接受两个 4 字节的参数。似乎第一个参数位于EBP+8,第二个参数位于EBP+12。但是,怎么知道呢?因为如果函数采用三个 4 字节参数,那么第三个将位于 EBP+16。第一个参数是否总是在EBP+8,然后我只需添加参数大小即可获得下一个?如果是,为什么是 8 个?
提前致谢。
【问题讨论】:
标签: function assembly x86 arguments cpu-registers