跳转到内容

x86 汇编

50% developed
来自维基教科书,开放的书籍,开放的世界

本书涵盖 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 系列,但没有达到预期的那样受欢迎,因此这种替代并没有发生。

目录

75% developed  as of Dec 4, 2011 介绍
75% developed  as of Dec 4, 2011 基本常见问题

x86 基础

100% developed  as of Dec 4, 2011 x86 家族
75% developed  as of Dec 4, 2011 x86 架构和寄存器描述
100% developed  as of Dec 4, 2011 注释
50% developed  as of Dec 4, 2011 16 位、32 位和 64 位
50% developed  as of Dec 4, 2011 内部数据类型

x86 指令集

75% developed  as of Dec 4, 2011 x86 指令
50% developed  as of Dec 4, 2011 数据传输指令
50% developed  as of Dec 4, 2011 控制流指令
50% developed  as of Dec 4, 2011 算术指令
25% developed  as of Dec 4, 2011 逻辑指令
50% developed  as of Dec 4, 2011 移位和旋转指令
50% developed  as of Dec 4, 2011 其他指令
25% developed  as of Dec 4, 2011 x86 中断

语法和汇编器

已开发 75%  截至 2011 年 12 月 5 日 x86 汇编器
已开发 100%  截至 2011 年 12 月 4 日 GNU 汇编语法 (GAS)
已开发 25%  截至 2011 年 12 月 4 日 MASM 语法
已开发 25%  截至 2011 年 12 月 4 日 HLA 语法
已开发 50%  截至 2011 年 12 月 4 日 FASM 语法
已开发 50%  截至 2011 年 12 月 4 日 NASM 语法

指令扩展

已开发 50%  截至 2011 年 12 月 4 日 指令扩展
已开发 75%  截至 2011 年 12 月 4 日 浮点数
已开发 50%  截至 2011 年 12 月 4 日 MMX
已开发 75%  截至 2011 年 12 月 4 日 SSE
已开发 50%  截至 2012 年 7 月 28 日 AVX, AVX2, FMA3, FMA4
已开发 25%  截至 2011 年 12 月 4 日 3DNow!

高级 x86

已开发 50%  截至 2011 年 12 月 6 日 高级 x86
已开发 50%  截至 2011 年 12 月 6 日 高级语言
已开发 75%  截至 2011 年 12 月 6 日 机器语言转换
已开发 50%  截至 2011 年 12 月 6 日 保护模式
已开发 50%  截至 2011 年 12 月 6 日 全局描述符表
已开发 50%  截至 2011 年 12 月 6 日 高级中断
已开发 75%  截至 2011 年 12 月 6 日 引导加载程序

x86 芯片组

已开发 50%  截至 2011 年 12 月 5 日 x86 芯片组
已开发 25%  截至 2011 年 12 月 5 日 直接内存访问
已开发 50%  截至 2012 年 2 月 4 日 可编程中断控制器
已开发 50%  截至 2012 年 2 月 4 日 可编程间隔计时器
已开发 25%  截至 2011 年 12 月 5 日 可编程并行接口

嵌入和互操作性

已开发 50%  截至 2012 年 7 月 25 日 与 WinAPI 交互 (直接与操作系统通信 来自上面的文章 GNU 汇编语法 (GAS))
75% 已完成,截至 2012 年 7 月 25 日 与 Linux 交互
75% 已完成,截至 2012 年 7 月 25 日 调用约定(来自 嵌入式系统 书籍)
75% 已完成,截至 2012 年 7 月 25 日 调用约定(来自 x86 反汇编 书籍)
25% 已完成,截至 2012 年 7 月 25 日 使用 CDECL 与 C 标准库和自己的静态库交互
25% 已完成,截至 2012 年 7 月 25 日 内联汇编程序(嵌入式系统书籍)
50% 已完成,截至 2012 年 7 月 25 日 链接汇编程序(嵌入式系统书籍)

资源

75% 已完成,截至 2011 年 12 月 5 日 资源
华夏公益教科书