如何在汇编中使用外部C函数?

问题描述 投票:0回答:1

我正在创建调用C函数的代码,该函数获取整数的平方根。 C函数是外部函数,位于我的文件夹中。调用它时,我不知道如何给它提供一个参数,因此它知道要计算的内容

我正在使用NASM Intel x86_64,Assembler是gcc,我不知道当前版本。我正在使用Linux

当前我的代码是:

xor rsi, rsi       ;just clears rsi
mov rsi, r15       ;r15 held the value that is supposed to be the parameter
call square

由于它没有采用正确的值,它目前仅打印出0。

如何获取参数?

谢谢。

c assembly x86-64 nasm computer-science
1个回答
1
投票

根据the System V AMD64 ABI calling convention,第一个参数应该在rdi寄存器中。

您需要将值复制到rdi而不是rsi

© www.soinside.com 2019 - 2024. All rights reserved.