x86 汇编
外观
本书涵盖 x86 微处理器系列的汇编语言编程。目标是教授如何在 x86 汇编中编程,以及 x86 处理器系列的历史和基本架构。
当提到 x86 时,我们指的是所有基于 x86 的处理器(从最初的英特尔 8086(1978 年)开始)。这包括
- IA-32 汇编,也常被称为 x86-32 汇编(英特尔架构 32 位,从英特尔 80386 开始),是最初的 16 位英特尔 x86 处理器架构的 32 位扩展(用于英特尔 8086 - 80286 CPU)。IA-32 与 16 位 x86 完全向后兼容。
- x86-64,也称为 AMD64 或 AMD 64 位扩展,与 32 位代码向后兼容,不会造成性能损失。
- 英特尔 64,以前称为 IA-32e 或 EM64T,与 x86-64 几乎完全相同。
在整本书中,这些术语可能在适当的时候可以互换使用。当涉及到 16 位、32 位或 64 位架构以及任何限制时,会给出特别说明,以减少混淆。
请注意,还有一个单独的 64 位指令集,IA-64(安腾)。它原本打算取代 x86 系列,但没有达到预期的那样受欢迎,因此这种替代并没有发生。
目录
x86 基础
x86 指令集
语法和汇编器
指令扩展
高级 x86
x86 芯片组
嵌入和互操作性
- 与 WinAPI 交互 (直接与操作系统通信 来自上面的文章 GNU 汇编语法 (GAS))
- 与 Linux 交互
- 调用约定(来自 嵌入式系统 书籍)
- 调用约定(来自 x86 反汇编 书籍)
- 使用 CDECL 与 C 标准库和自己的静态库交互
- 内联汇编程序(嵌入式系统书籍)
- 链接汇编程序(嵌入式系统书籍)