gpt4 book ai didi

c - 从 C 语言传递 64 位汇编函数中的参数。哪个寄存器接收这些参数?

转载 作者:行者123 更新时间:2023-12-02 00:09:11 25 4
gpt4 key购买 nike

我想将参数从 C 传递给汇编函数。

在类 UNIX 系统上,前六个参数进入 rdi、rsi、rdx、rcx、r8 和 r9。

在 Windows 上,前四个参数进入 rcx、rdx、r8 和 r9。

现在,我的问题是:在 BIOS 或 DOS 编程级别,哪些寄存器接收这些参数?如果参数数量超过 6 个,我该如何编写程序集来处理这些参数?

最佳答案

如果我理解你问题的第一部分,在 16 位模式下使用 C 并不真正受支持(因为 16 位模式使用分段来获得超过 16 位的寻址)。

引用第二部分,这取决于编译器,但是 Windows 和 Unix 的 IIRC 都会在堆栈上传递额外的参数(有关参数传递的更多信息,请参阅 http://en.wikipedia.org/wiki/X86_calling_conventions)。

关于c - 从 C 语言传递 64 位汇编函数中的参数。哪个寄存器接收这些参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16457109/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com