跳轉到內容

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 日 資源
華夏公益教科書