【译】x86程序员手册06 - 2.4指令格式
2.4 Instruction Format 指令格式
The information encoded in an 80386 instruction includes a specification of the operation to be performed, the type of the operands to be manipulated, and the location of these operands. If an operand is located in memory, the instruction must also select, explicitly or implicitly, which of the currently addressable segments contains the operand.
80386指令的编码信息包括操作如何进行的说明,操作数类型,操作数的位置。如果一个操作数在内存中,指令必须明确或隐式地选择当前包含操作数的可编址段。
80386 instructions are composed of various elements and have various formats. The exact format of instructions is shown in Appendix B; the elements of instructions are described below. Of these instruction elements, only one, the opcode, is always present. The other elements may or may not be present, depending on the particular operation involved and on the location and type of the operands. The elements of an instruction, in order of occurrence are as follows:
80386的指令由可变元素组成,并且有多种格式。准确的指令格式被列在附录B中;指令的元素在下面说明。在这些指令元素中,只有一个元素,即opcode,就必须存在项。其他的元素可以有也可以没有,这依赖于特定的操作和操作数类型的位置。这些元素,按出现的顺序列在下面:
- Prefixes -- one or more bytes preceding an instruction that modify the operation of the instruction. The following types of prefixes can be used by applications programs:
前缀 —— 一个或多个字节出现在指令中,修改指令操作。下面列出的前缀类型可以在应用程序中使用:
- Segment override -- explicitly specifies which segment register an instruction should use, thereby overriding the default segment-register selection used by the 80386 for that instruction.
段覆盖 —— 明确指定该指令使用哪个段寄存器,因此会覆盖掉80386为这些指令选择的默认寄存器。
- Address size -- switches between 32-bit and 16-bit address generation.
地址大小 —— 32位和16位地址开关
- Operand size -- switches between 32-bit and 16-bit operands.
操作数大小 —— 32位和16位操作数开关
- Repeat -- used with a string instruction to cause the instruction to act on each element of the string.
重复 —— 在字符串指令中使用,指示指令在字符串的每个元素中使用。
- Opcode -- specifies the operation performed by the instruction. Some operations have several different opcodes, each specifying a different variant of the operation.
操作符 —— 指定指令的操作。一些操作有多个不同的操作符,每一个指定不同的可变的操作。
- Register specifier -- an instruction may specify one or two register operands. Register specifiers may occur either in the same byte as the opcode or in the same byte as the addressing-mode specifier.
寄存器区分符 —— 一条指令可指定一个或两个寄存器操作数。寄存器区分符即可以放在一个字节中作为操作符,或者放在同一个字节中作为地址模式区分符。
- Addressing-mode specifier -- when present, specifies whether an operand is a register or memory location; if in memory, specifies whether a displacement, a base register, an index register, and scaling are to be used.
地址模式区分符 —— 当出现时,用来区分一个操作数是在寄存器还是内存位置;如果在内存中,区分是一个置位符、基址寄存器、索引寄存器还是比例因子。
- SIB (scale, index, base) byte -- when the addressing-mode specifier indicates that an index register will be used to compute the address of an operand, an SIB byte is included in the instruction to encode the base register, the index register, and a scaling factor.
SIB(比例,索引,基址)字节 —— 当地址模式区分符表明有一个索引寄存器被用来计算一个操作数的地址时,SIB字节也被包含在指令中,用来编码基址寄存器、索引寄存器和比例因子。
- Displacement -- when the addressing-mode specifier indicates that a displacement will be used to compute the address of an operand, the displacement is encoded in the instruction. A displacement is a signed integer of 32, 16, or eight bits. The eight-bit form is used in the common case when the displacement is sufficiently small. The processor extends an eight-bit displacement to 16 or 32 bits, taking into account the sign.
置位符 —— 当地址模式区分符表明一个置位符被用来计算一个操作数的地址时,置位符也被编码到指令中。一个置位符是一个32、16或8位的整数。8位通常用来表示置位符相当小。处理器扩展一个8位置位符到16或者32位,包括符号。
- Immediate operand -- when present, directly provides the value of an operand of the instruction. Immediate operands may be 8, 16, or 32 bits wide. In cases where an eight-bit immediate operand is combined in some way with a 16- or 32-bit operand, the processor automatically extends the size of the eight-bit operand, taking into account the sign.
立即数 —— 当存在时,为指令直接提供一个数值。立即数可以是8、16或32位宽度。一旦8位立即数和16位或32位操作数进行组合时,处理器自动扩展8位操作数的大小,包括符号位。
【译】x86程序员手册06 - 2.4指令格式的更多相关文章
- 【译】x86程序员手册01
Intel 80386 Reference Programmer's Manual 80386程序员参考手册 Chapter 1 -- Introduction to the 80386 第1章 - ...
- 【译】x86程序员手册03 - 2.1内存组织和分段
2.1 Memory Organization and Segmentation 内存组织和分段 The physical memory of an 80386 system is organized ...
- 【译】x86程序员手册00 - 翻译起因
从上一次学习MIT的操作系统课程又过去了一年.上次学习并没有坚持下去.想来虽有种种原因,其还在自身无法坚持罢了.故此次再鼓起勇气重新学习,发现课程都已由2014改版为2016了.但大部分内容并没有改变 ...
- 【译】x86程序员手册38-10.2实在址模式下的软件初始化
10.2 Software Initialization for Real-Address Mode 实地址模式的软件初始化 In real-address mode a few structur ...
- 【译】x86程序员手册09-第3章程序指令集
注:觉得本章内容与理解操作系统不直接相关,所以本章并未看完,也就没有翻译完,放在这里中是为了保证手册的完整.有兴趣的人可以去原址查看. https://pdos.csail.mit.edu/6.828 ...
- 【译】x86程序员手册02 - 基本的程序模式
Chapter 2 -- Basic Programming Model: 基本的程序模式 Introduces the models of memory organization. Defines ...
- 【译】x86程序员手册40-10.5初始化的例子
10.5 Initialization Example初始化的例子 译注:本来想把这个例子全部注释完,但由于对intel汇编实不熟悉,有太多的伪指令,本人也是免强看懂,所以就不再做翻译了. $TITL ...
- 【译】x86程序员手册39-10.3切换到保护模式
10.3 Switching to Protected Mode 切换到保护模式 Setting the PE bit of the MSW in CR0 causes the 80386 to b ...
- 【译】x86程序员手册37-第10章 初始化
Chapter 10 Initialization 第10章 初始化 After a signal on the RESET pin, certain registers of the 80386 a ...
随机推荐
- [bzoj5301][Cqoi2018]异或序列_莫队
异或序列 bzoj-5301 Cqoi-2018 题目大意:题目链接. 注释:略. 想法: 由于a^a=0这个性质,我们将所有的数变成异或前缀和. 所求就变成了求所有的$l_i\le x<y\l ...
- 源码分析-react3-创建dom
React.createElement class Welcome extends React.Component { constructor(){ super() this.state={ test ...
- 关于jQuery的append()和prepend()方法的小技巧
最近工作上有个需求是要求一个自动向上滚动的列表,表有很多行,但只显示一行,每次滚动一行.很简单的一个功能,代码如下 <div class="scroll-area"> ...
- 项目中应用到的框架和技术之二——ol3-ext
ol3-ext有很多很丰富的效果,可以不用重复造轮子,ol3-ext示例大全:http://viglino.github.io/ol3-ext/ 在本次项目中使用到了ol3-ext的两个功能:图层管理 ...
- postgresql备份和恢复
备份: pg_dump -d m3vg -h localhost -p 5432 -U delta -W -f 1024.dump -F tar 恢复: pg_restore -h localhost ...
- 1.4-动态路由协议OSPF①
r2#sh ip ospf border-routers 查看ABR 修改OSPF接口优先级 r1(config)#int e 0 r1(config-if)#ip ospf priority 100 ...
- 【c++】简单的string类的几个基本函数
// string的几个基本函数的实现 #include <iostream> #include <assert.h> #include <string.h> us ...
- 联想S820 MIUI刷机包 MIUI 4.4.30 流畅执行 在线主题破解
ROM介绍 破解免费使用MIUI全部主题(方法:开机开启Root权限,进入WSM工具箱→安装二进制文件→重新启动→再次进入WSM工具箱→两个工具打上勾→重新启动),然后尽情奔放吧 .加入V4A音效 . ...
- unity3d-23种设计模式全解析
http://www.jianshu.com/nb/4161593 2016.08.03 09:26 字数 1203 阅读 584评论 0喜欢 14 希望大家能共同学习,交流 谢谢支持zero(QQ: ...
- 跨平台C、C++代码注意的事项
在我们的开发中,跨平台的需求越来越强烈,怎样保持C/C++代码能在多个平台上编译,是一个比較值得研究的问题.关于跨平台的文章网上非常多,跨平台的库网上也非常多.那么我从自己的跨平台开发经验谈一谈自己的 ...