## 1.2 其他文獻
下面的書籍包含有關80386的其他資料。
+ Introduction to the 80386, order number 231252
+ 80386 Hardware Reference Manual, order number 231732
+ 80386 System Software Writer's Guide, order number 231499
+ 80386 High Performance 32-bit Microprocessor with Integrated Memory Management (Data Sheet), order number 231630
## 1.3 符號轉換
本手冊在描述數據結構,指令助記符,十六進制數以及上標和下標時用了特殊的符號。下標用{}括起來,例如10{2} = 10 以2為基。上標用()加上前面的^來表示,例如,10^(3) = 10的3次冪。復習這些符號有助于以后的閱讀。
### 1.3.1 數據結構格式
在內存數據結構的示例圖中,低位地址出現在圖示的右邊;地址從右至左,從下往上遞增。位從右向左依次編號。圖1-1舉例說明了這種慣例。
### 1.3.2 未定義位和軟件兼容性
在許多寄存器和存儲器的布局圖中,一些位被標記為未定義。當位標記為未定義(如圖1-1所示)時,將來的軟件將這些位按未定義來處理對于軟件兼容性非常重要。在處理未定義位時軟件應該遵循下列規則:
+ 在測試含有未定義位的寄存器時,不要依賴這些位的狀態。在測試前要屏蔽掉這些未定義位。
+ 在將寄存器的值拷貝到另一個寄存器時,不要依賴這些位。
+ 不要依賴于保留在已寫入未定義位的信息。
+ 裝載寄存器時,要始終把未定義位按0載入,或以之前存在寄存器中的值重新載入。
注意: 依賴于寄存器中的未定義位將導致軟件依賴于80386在處理這些位時的未指定的處理方式。如果將來的處理器使用了未定義位,那么依賴于這些位的軟件有不兼容的風險。任何軟件都要避免依賴于未定義的80386寄存器位。

### 1.3.3 指令操作數
當用符號表示指令時,你正在使用的是80386匯編指令集。在這個集合中,指令遵循下面的格式:
```
標號:前綴 助記符 參數1,參數2,參數3
```
這里:
+ 標號是指令的標識符,后面跟冒號。
+ 前綴是一條指令前綴的可選保留名字。
+ 助記符暗示指令執行的操作,操作碼中的一個保留字。
+ 操作數參數1,參數2,參數3為可選項。可以有0-3個參數,取決于指令碼。當含有參數時,它們或者是立即數,或者是數據項的標識符。操作數標識符可以是寄存器的保留字,或者在其他程序中聲明(在例子中可能沒有這種形式),指向數據項。當修改數據的指令中含有兩個操作數時,右邊的是源操作數,左邊的是目的操作數。
例子:
```
LOADREG: MOV EAX, SUBTOTAL
```
本例中,LOADREG是標號,MOV是操作碼指令助記符,EAX是目的操作數,SUBTOTAL是源操作數。
### 1.3.4 十六進制數
十六進制數字后面加上H的字符串表示以16為基的數字。十六進制數字從下面的集合中選取(0,1,2,3,4,5,6,7,8,9, A, B, C, D, E, F)。某些情況下,特別是在程序語法例子中,一個前導零會被加在A-F前面。例如,0FH等于十進制的15。
### 1.3.5 上標和下標
本手冊使用特殊的符號來表示上標和下標。下標用{}括起來,例如10{2} = 10 以2為基。上標用()加上前面的^來表示,例如,10^(3) = 10的3次冪。
編者注:本手冊在適當的地方用實際形式來表示上標和下標。
- 第一章 80386介紹
- 1.1 該手冊的組織結構
- 1.2 其他文獻
- 第二章 編程基本模型
- 2.1 存儲器組織和段
- 2.2 數據類型
- 2.3 寄存器
- 2.4 指令格式
- 2.5 操作數選擇
- 2.6 中斷和異常
- 第4章 系統寄存器
- 4.1 系統寄存器 (System Registers)
- 4.2 系統指令 (System Instructions)
- 第五章 內存管理
- 5.1 分段地址轉換(Segment Translation)
- 5.2 分頁地址轉換(Page Translation)
- 5.3 混合分段和分頁地址轉換(Combining Segment and Page Translation)
- 第六章 內存管理
- 6.1 為什么要保護(Why Protection?)
- 6.2 80386保護機制概述(Overview of 80386 Protection Mechnaisms)
- 6.3 段級保護(Segment-Level Protection)
- 6.4 頁級保護(Page-Level Protection)
- 6.5 混合分頁和分段保護(Combining Page and Segment Protection)
- 第7章 多任務(Multitasking)
- 8.1 I/O 尋址(I/O Addressing)
- 7.1 任務狀態段(Task State Segment)
- 7.3 任務寄存器(Task Register)
- 7.4 任務門描述符(Task Gate Descriptor)
- 7.5 任務切換(Task Switching)
- 7.6 任務鏈(Task Linking)
- 7.7 任務尋址空間(Task Address Space)
- 第8章 輸入 輸出
- 8.2 I/O 指令(I/O Instructions)
- 8.3 保護和I/O(Protection and I/O)
- 第9章 異常和中斷(Exceptions and Interrupts)
- 9.1 識別中斷(Identifying Interrupts)
- 9.2 允許和禁止中斷(Enabling and Disabling Interrupts)
- 9.3 同時發生的中斷和異常的優先級(Priority Among Simultaneous Interrupts and Exceptions)
- 9.4 中斷描述符表(Interrupt Descriptor Table)
- 9.5 IDT 描述符(IDT Descriptors)
- 9.6 中斷任務和中斷子程序(Interrupt Tasks and Interrupt Procedures)
- 9.7 出錯碼(Error Code)
- 9.8 異常條件(Exception Conditions)
- 9.9 異常總結(Exception Summary)
- 9.10 出錯碼總結(Error Code Summary)
- 第10章 初始化(Initialization)
- 10.1 復位后處理器狀態(Processor State After Reset)
- 10.2 實模式初始化(Software Initialization for Real-Address Mode)
- 10.3 切換到保護模式(Switching to Protected Mode)
- 10.4 保護模式初始化(Software Initialization for Protected Mode)
- 10.5 初始化示例
- 10.6 TLB測試
- 第十四章 80386實地址模式
- 14.1 物理地址構成
- 14.2 寄存器和指令
- 14.3 中斷和異常處理
- 14.4 進入和離開實地址模式
- 14.6 實地址模式異常
- 14.7 與8086的不同
- 14.8 與80286實地址模式的不同