## 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实地址模式的不同