我必须为同事做一份工作,我必须在AMD64的汇编语言中写下所有内容。
我被允许从C Standar Library导入一些C函数(事实上,有些是强制性的),但我不知道如何使VA_LIST工作。 (我已被告知必须使其中一些功能起作用)
这里有一些StackOverflow的其他用户温和地建议我看看: What is the format of the x86_64 va_list structure?
这就是我到目前为止所做的:
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? (我的意思是,我的功能不使用任何堆栈)