假设我void f(int a, int b, int c) { g(a, b, c); h(a, b, c); }
在 x86 程序集中有这样的:
section .text
f:
pop dword [res_1]
call g ; g(a, b, c)
call h ; h(a, b, c)
push dword [res_1]
ret
section .bss
res_1:
resd 1
如果g
遵循 cdecl 调用约定,我是否保证g
不会更改堆栈中传递给它的参数?