6.1. 介绍

最后,如果你仍然想尝试这个疯狂的想法并用汇编语言编写一些东西(如果你已经读到这里——你真的是汇编语言爱好者),那么这是你需要开始的。

正如你之前读到的,你可以用不同的方式为 Linux 编写程序;我将展示如何使用直接内核调用,因为这是调用内核服务的最快方式;我们的代码没有链接到任何库,不使用 ELF 解释器,它直接与内核通信。

我将展示相同的示例程序,分别使用 nasmgas 两种汇编器,从而展示 Intel 和 AT&T 语法。

你可能还想阅读 UNIX 汇编程序设计入门教程,它包含其他类 UNIX 操作系统的示例代码。

6.1.1. 你需要的工具

首先你需要汇编器(编译器)——nasmgas

其次,你需要链接器——ld,因为汇编器只生成目标代码。几乎所有发行版都带有 gasld,它们在 binutils 包中。

至于 nasm,你可能需要从 nasm 站点下载并安装 Linux 的二进制包和文档;请注意,一些发行版(Stampede、Debian、SuSe、Mandrake)已经带有 nasm,请先检查。

如果你打算深入研究,你应该也安装操作系统的头文件,如果可能的话,安装内核源代码。