## 2.4 指令格式
80386指令編碼信息包括操作的聲明,操作數的類型以及操作數的位置。如果操作數位于存儲器中,指令必須選擇,顯示的或隱式的,哪個當前可尋址段包含這些操作數。
80386指令由各種要素構成并有著不同的格式。指令的詳盡描述在附錄B(譯者注:附錄A ?);指令要素在下面描述。在這些指令要素中,只有一個,操作碼,是必須的。其他的要素依據涉及到的特定操作和操作數的類型和位置可有可無。指令要素,以出現的順序描述如下:
+ 前綴-一個或多個在指令前面的字節,修改指令的動作。應用程序可以使用下面幾種前綴:
1.段重載-顯示的聲明指令使用哪個段寄存器,從而覆蓋80386為指令使用的默認段寄存器。
2.地址大小-在32位和16位地址之間切換。
3.操作數大小-在32位和16位操作數之間切換。
4.重復-用在字符串指令,使指令作用于字符串的每一項。
+ 操作碼-聲明指令的執行動作。有些操作有不同的操作碼,每個聲明一個不同的操作。
+ 寄存器聲明符-一條指令可以聲明1到2個寄存器操作數。寄存器聲明符可以出現在相同的位置作為指令碼,或作為地址模式聲明符。
+ 地址模式聲明符-當有這項時,它用來聲明操作數是寄存器還是存儲器位置;如果位于存儲器,聲明是否要使用移位,基址寄存器,索引寄存器,以及縮放。
+ SIB(scale, index, base)字節-當地址模式聲明符表明要使用索引寄存器來計算操作數地址是,SIB字節被包含在指令中,來編碼基地址寄存器,索引寄存器以及縮放因子。
+ 移位-當地址模式聲明符表明要使用移位來計算操作數地址時,移位被編碼在指令中。移位是一個32位,16位或8位整數。在通常情況下,當移位足夠小時使用8位形式的移位。處理器擴展8位移位到16或32位,考慮符號位。
+ 立即數-當有這項時,它直接給出了操作數的值。立即數可以時8,16,32位寬。當8位操作數以某種方式和16位和32位數聯合使用時,處理器自動擴展8位操作數,考慮符號位。
- 第一章 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實地址模式的不同