跳转到内容

x86 汇编

50% developed
来自维基教科书,开放的书籍,开放的世界
(从 X86 重定向)

本书涵盖 x86 微处理器家族的汇编语言编程。其目标是教授如何使用 x86 汇编语言进行编程,以及 x86 处理器家族的历史和基本架构。

当提到 x86 时,我们指的是所有基于 x86 的处理器(自 1978 年原始的 Intel 8086 以来)。这包括

  • IA-32 汇编,也常被称为 x86-32 汇编(Intel 架构 32 位,自 Intel 80386 以来),是原始 16 位 Intel x86 处理器架构的 32 位扩展(用于 Intel 8086 - 80286 CPU)。IA-32 与 16 位 x86 完全向后兼容。
  • x86-64,也称为 AMD64 或 AMD 64 位扩展,与 32 位代码向后兼容,不会造成性能损失。
  • Intel 64,以前称为 IA-32e 或 EM64T,与 x86-64 几乎相同。

在整本书中,这些术语在适当的时候可以互换使用。在涵盖 16 位、32 位或 64 位架构以及任何限制时,会给出特殊说明,以减少混淆。

请注意,还有一个单独的 64 位指令集,即 IA-64 (Itanium)。它原本打算取代 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% developed  as of Dec 5, 2011 x86 汇编器
100% developed  as of Dec 4, 2011 GNU 汇编语法 (GAS)
25% developed  as of Dec 4, 2011 MASM 语法
25% developed  as of Dec 4, 2011 HLA 语法
截至 2011 年 12 月 4 日,已开发 50% FASM 语法
截至 2011 年 12 月 4 日,已开发 50% NASM 语法

指令扩展

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

高级 x86

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

x86 芯片组

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

嵌入和互操作性

截至 2012 年 7 月 25 日,已开发 50% 与 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 日 资源
华夏公益教科书