在汇编程序AMD64中编写va_list

时间:2012-09-12 05:02:02

标签: c assembly x86-64 variadic-functions

我必须为同事做一份工作,我必须在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? (我的意思是,我的功能不使用任何堆栈)

0 个答案:

没有答案