第 1 章 PC 的基本構造
本章提要 PC 系統簡介 80x86 系列 CPU 及其暫存器群 記憶體: Memory 80x86 的分節式記憶體管理 80x86 的 I/O 結構 學習組合語言的基本工具
電腦的基本結構圖
80x86 系統 CPU 的特性 具有相容的指令群 具有相容的暫存器結構 具有相容的記憶體處理方式
80x86 的暫存器群
80x86 CPU 的內部暫存器分類 一般用途暫存器: AX 、 BX 、 CX 、 DX 堆疊、基底、索引及指令指位器: SP 、 BP 、 SI 、 DI 、 IP 節區暫存器: CS 、 DS 、 ES 、 SS 旗標: FLAG
一般用途暫存器
堆疊、基底、索引、及程式指 位器
節區指位器與 FLAGS 暫存器
觀察及設定暫存器的值
一般暫存器群 AX :用來存放運算結果。 BX :做為基底定址法的基底暫存器。 CX :多用來做迴圈的計數器。 DX :做為資料暫存器。
指位暫存器群 IP
指位暫存器群 SP
指位暫存器群 SP
指位暫存器群 DI 與 SI
分節暫存器群
旗標暫存器: FLAG
80386 的暫存器群
80386 的 32 位元指位器
記憶體: Memory 記憶體 (Memory) 是電腦用來存放程式及 資料的地方。記憶體分為可存取記憶體 (RAM) 及唯讀記憶體 (ROM) 2 種。
記憶位址
記憶位址的圖示法
PC 的記憶映射
d 命令:觀察記憶體的內容
線性排列的記憶結構
自行規劃記憶體區間
80x86 的分節式記憶體管理
80x86 的 4 個記憶節區
節位址與節內位址
記憶窗
邏輯與物理空間之映射法 以 這個絕對位址而言, 其 16 進 位表示法為 F0F0F, 我們可將節區指位器 設為 F0F0 而節內位址設為 000F, 二者 錯開 4 個位元相加後就是 F0F0F 了:
指出節區指位器與節內位址
F0F0F 的 3 種表示法
80x86 I/O 結構 80x86 CPU 的 I/O 是一個獨立的系統, 有 專用的指令與專用的 I/O 位址。 這些 I/O 位址與記憶單元一樣, 也經由排 列編號來管理, 80x86 的 I/O 位址由 0000~FFFF 共有 64K 。
I/O 映射
學習組合語言的基本工具 DEBUG 或 CV 都是 Microsoft 所發展出 來的偵錯工具程式, 可以追蹤觀察每一個 指令之執行細節。 由於 DEBUG 是在於 DOS 磁片中的小 程式, 利於我們方便使用;而 CV 則是原 始程式的偵錯工具, 較適合做大型程式的 偵錯工作。
以 DEBUG 寫組合語言程式
觀察組譯後情形的 u 命令