如何链接两个nasm源文件

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

我有一个定义非常基本的 IO 函数的文件,我想创建另一个使用该文件的文件。

有没有办法将这两个文件链接起来?

打印.asm:

os_return:
    ;some code to return to os
print_AnInt:
    ;some code to output an int, including negatives - gets param from stack
print_AChar:
    ;some code to output a char - gets param from stack

使用PrintTest.asm:

main:
   push qword 'a'
   call print_AChar ;gets this from prints.asm somehow (that's my question)
   call os_return   ;and this too..

注意这些不是实际的文件...它们只是用来解释我的问题:)

谢谢!

assembly linker nasm extern
1个回答
8
投票

当然 - 你只需要使用链接器。 组装您的每个文件:

nasm -o prints.o prints.asm
nasm -o usingPrintTest.o usingPrintTest.asm

然后您可以将输出对象传递给链接器。 比如:

gcc -o myProgramName prints.o usingPrintTest.o

使用

gcc
作为链接器驱动程序可以通过链接程序运行所需的操作系统库来解决一些有趣的问题。 您可能需要在
usingprintTest.asm
中进行一些声明,让它知道
print_Achar
os_return
将在其他地方定义 - 在
nasm
中,您将使用
extern
汇编器指令:

extern print_Achar
extern os_return
© www.soinside.com 2019 - 2024. All rights reserved.