CPU 是微機系統的「領導核心」,執行機器指令、管理暫存器、控制總線、響應中斷。組合語言經組譯為機器碼後由處理器執行,深入理解處理器架構是寫出高效程式的前提。
Intel 平台 CPU 擁有資料、位址、控制三總線控制權。多核心/多處理器架構將於後續章節討論。
| 暫存器 | 別名結構 | 慣用用途 | |
|---|---|---|---|
| EAX | AX/AH/AL | 運算累加器、乘除法隱含運算元、函式返回值 | |
| EBX | BX/BH/BL | 基址指標 (DS 預設段) | |
| ECX | CX/CH/CL | 迴圈計數器 (LOOP/REP 隱含)、字串操作計數 | |
| EDX | DX/DH/DL | 乘除法溢位暫存器、I/O 連接埠位址 |
| 暫存器 | 別名 | 用途 | 預設段 |
|---|---|---|---|
| ESI | SI | 字串/記憶體操作來源指標 | DS |
| EDI | DI | 字串/記憶體操作目的指標 | ES |
| EBP | BP | 堆疊框架基址指標 (高階語言區域變數) | SS |
| 暫存器 | 實模式功能 | 保護模式功能 | |
|---|---|---|---|
| CS | 程式碼段基址/16 | 程式碼段選擇子 | |
| DS | 資料段基址/16 | 資料段選擇子 (預設) | |
| ES | 附加段基址/16 | 附加段選擇子 | |
| FS | F段基址/16 | 替代資料段選擇子 | |
| GS | G段基址/16 | 替代資料段選擇子 | |
| SS | 堆疊段基址/16 | 堆疊段選擇子 |
| 暫存器 | 功能 | 可直接修改 | |
|---|---|---|---|
| EIP | 指令指標,指向下一條指令 | 否 (僅 JMP/CALL/RET/INT 隱含修改) | |
| ESP | 堆疊指標,指向堆疊頂 | 不建議 (破壞堆疊平衡) | |
| EFLAGS | 狀態/控制旗標 (CF, PF, AF, ZF, SF, TF, IF, DF, OF, NT, RF, VM, AC, VIF, VIP, ID) | 部份位元可透過指令修改 |
| 旗標 | 位元 | 名稱 | 功能 |
|---|---|---|---|
| CF | 0 | Carry Flag | 無符號運算進位/借位 |
| PF | 2 | Parity Flag | 結果低位元組 1 的個數為偶數 |
| AF | 4 | Auxiliary Carry | BCD 運算位元 3 進位 |
| ZF | 6 | Zero Flag | 結果為零 |
| SF | 7 | Sign Flag | 結果最高位元 (有號負數) |
| TF | 8 | Trap Flag | 單步除錯模式 |
| IF | 9 | Interrupt Flag | 1=響應可屏蔽中斷 |
| DF | 10 | Direction Flag | 字串指令遞增(0)/遞減(1) |
| OF | 11 | Overflow Flag | 有號運算溢位 |
| IOPL | 12-13 | I/O Privilege Level | 允許執行 I/O 指令的特權級 |
| NT | 14 | Nested Task | 巢狀任務標記 |
| RF | 16 | Resume Flag | 忽略指令斷點 |
| VM | 17 | Virtual 8086 Mode | V86 模式標記 |
| AC | 18 | Alignment Check | 啟用記憶體對齊檢查 |
| VIF | 19 | Virtual Interrupt Flag | 虛擬中斷旗標 |
| VIP | 20 | Virtual Interrupt Pending | 虛擬中斷待決 |
| ID | 21 | ID Flag | 支援 CPUID 指令 |