0

我必须为同事做一份工作,其中我必须用汇编语言为 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吗?(我的意思是,我的函数上没有使用任何堆栈)

4

0 回答 0