第11章  x86 汇编语言

目录
11.1 概述
11.2 工具
11.3 系统调用
11.4 返回值
11.5 建立可移植的代码
11.6 编写第一个程序
11.7 编写 UNIX® 过滤程序
11.8 缓存 I/O
11.9 命令行参数
11.10 UNIX® 中的环境
11.11 文件处理
11.12 One-Pointed Mind
11.13 Using the FPU
11.14 忠告
11.15 致谢

  本章节由 G. Adam Stanislav 撰写。 翻译: sunlecn@gmail.com。

11.1 概述

  涉及 UNIX 下的汇编语言的相关资料很少。 通常我们都假设几乎没有人希望用到它, 因为不同的 UNIX 可能是在不同的处理器上运行的, 所以为了移植性的考虑所有的东西都应该用 C 来实现。

  实际上, C 语言的移植性是非常神秘的。即使 C 程序在不同的 UNIX® 之间移植的时候需要进行修改, 但这些修改绝对和在什么处理器上运行无关。 特别明显地是, 这样的程序充满了在编译时对于系统依赖的条件描述。

  即使我们希望所有的 UNIX 软件都应该用 C 语言或者是其他的高级语言编写, 但是我们仍然需要掌握汇编语言的程序员: 不然谁将完成 C 语言函数库中直接访问内核的部分?

  在本章节,我将尝试着说明如何用汇编语言编写 UNIX 程序,特别是在 FreeBSD 上的程序。

  这个章节不会讲解汇编语言的基础知识。现在已经有很多相关的资料了 (如果你想寻找完整的关于汇编语言的在线课程, 请看 Randall Hyde 的 《汇编语言艺术》; 如果你想选择一本书, 那么去看看 Jeff Duntemann 的 《循序渐进学汇编》) 不过, 一旦你掌握了这个章节的内容, 任何汇编语言的程序员, 将能够在 FreeBSD 上高效、快速地编写程序。

  Copyright © 2000-2001 G. Adam Stanislav. All rights reserved.

本文档和其它文档可从这里下载:ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

如果对于FreeBSD有问题,请先阅读文档,如不能解决再联系<questions@FreeBSD.org>.
关于本文档的问题请发信联系 <doc@FreeBSD.org>.