如何将 NASM 应用程序分解为 modules/packages 并包含它们?

How to break down a NASM application into modules/packages and include them?

我开始学习汇编语言。我在基础水平上熟悉它。我想知道,Assembly 中的应用程序是如何组织的,也就是说,我如何将它们拆分成 modules/packages 并将它们包含到其他模块中?我指的是 NASM。

您可以:

  • 使用%include
    将外部文件包含到当前文件中。
    这可以通过 -i 命令行开关进一步控制。

    您还可以使用 -p 开关强制 NASM 预先包含文件。

  • Assemble多个文件
    由于 NASM 不是 link 人,您可以利用 link 人的能力...好吧,link 一起归档。

    使用 GLOBAL 指令使一组符号对其他模块可见。
    使用 EXTERN 指令从其他模块导入一组符号。

    您可以将所有目标文件传递给 linker。
    NASM(如今天)一次只能assemble一个文件,因此需要构建脚本。


以上两者并不相互排斥,但你必须基本了解NASM output file formats才能知道后者何时适用。