我必须为同事做一份工作,其中我必须用汇编语言为 AMD64 编写所有内容。
我被允许从 C 标准库中导入一些 C 函数(事实上,有些是强制性的),但我不知道如何使 VA_LIST 工作。(我被告知是使其中一些功能正常工作所必需的)
这里有一些 StackOverflow 的其他用户温和地建议我看看: x86_64 va_list 结构的格式是什么?
这就是我到目前为止所做的:
section .data
va_list:
dd 0; gp
dd 0; fp
dq 0; overflow
dq 0; reg
<code>
mov [va_list+16], _direction_of_the_int_I_want_to_pass;
mov rdx, va_list
call _function_I_want_to_call
由于某种原因,这不起作用。我应该以不同的方式创建 va_list 结构吗?其他数据应该不是0吗?(我的意思是,我的函数上没有使用任何堆栈)