- 1、本文档共114页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
IA32开发手册第二卷的附录B
附录 B 指令格式及编码
该附录介绍IA-32机器指令格式与编码.第一节描述基于IA-32架构机器指令格式.其余的小节介绍通用,MMX,P6系列,SSE/SSE2/SSE3,x87 FPU以及VMX指令.这些指令格式同样适用于Intel 64架构,64位环境下使用的指令格式是以上指令格式的一个超集.
B.1 机器指令格式
所有基于Intel架构的指令使用如图B-1所示通用机器指令格式的一个子集.每条指令由以下部分组成:
? 操作码
? 由ModR/M有时候也有SIB(Scale-index-base)字节指定的寄存器和/或地址,
如果需要的话
? 偏移量和立即数域,如果需要的话
7 6 5 4 3 2 1 0
7 6 5 4 3 2 1 0
7 6 5 4 3 2 1 0 传统前缀 REX 前缀 T T T T T T T T T T T T T T T T T T T T T T T T 组 1, 2, 3, 4
(可选)
1, 2, 或 3 字节操作码
7-6 5-3 2-0
7-6 5-3 2-0
Mod Reg* R/M Scale Index Base
d32 | 16 | 8 | 没有
d32 | 16 | 8 |没有
ModR/M 字节
SIB 字节 地址偏移
(4,2,1 或没有)
立即数
(4,2,1 或没有)
指定寄存器和/或地址
注:
* Reg域可能被用作操作码扩展
图 B-1. 通用机器指令格式
以下的小节详细讨论该格式.
B.1.1 传统前缀
图B-1所指的前缀包括66H,67H,F2H,F3H.它们都是可选的,除非F2H,F3H,66H等被用作新增的指令扩展.传统前缀必须位于REX前缀之前.
请查看《Intel? 64 和IA-32架构软件开发者手册 第2卷 A》第2章”指令格式”获取更多有关传统前缀的信息.
B.1.2 REX 前缀
REX前缀由40H到4FH共16个操作码组成,正好占用操作码表的一行.这些操作码在32位及兼容模式下是合法的指令(INC或DEC);在64位模式中同样的操作码表现为REX前缀而不是单个的指令.
请查看《Intel? 64 和IA-32架构软件开发者手册 第2卷 A》第2章“指令格式”获取更多有关REX前缀的信息.
B.1.3 操作码域
一条指令的主操作码被编码为一到三字节,这些字节一般会被分为更小的域,这些域依据指令执行的操作区分.
大多数使用一个寄存器和/或一个内存操作数的指令都有ModR/M字节.ModR/M字节由mod域(高2位),reg域(中间3位,该域有时表现为操作码扩展),和R/M域(低3位).特定的ModR/M字节指示接下来有一个SIB字节.
如果寻址方式需要一个偏移量,该偏移量紧接ModR/M或SIB字节出现,偏移量的大小可能为8位,16位,32位.若指令需要一个立即数, 该立即数紧挨着偏移量出现,立即数如果出现,它总是指令的的最后一个域.
请查看《Intel? 64 和IA-32架构软件开发者手册 第2卷 A》第2章“指令格式”获取更多关于操作码的信息.
B.1.4 特殊的域
表B-1列出了在特定指令中可能出现的位域,有些位域可能位于操作码字节内部.这些域除了d位在表B-13列出的通用指令中都出现过.(在表B-13中,d被编码为实际的0或1值)
表 B-1. 指令编码中特殊的域
域名 描述 比特数 reg 指定通用寄存器 (请查看表 B-4 或表 B-5) 3 w 指定数据是字节尺寸或全尺寸(full-sized),全尺寸为16 或 32 位(请查看表 B-6) 1 s 指定立即数的符号扩展 (请查看表 B-7) 1 sreg2 指定段寄存器为 CS, SS, DS, ES (请查看表 B-8) 2 sreg3 指定段寄存器为 CS, SS, DS, ES, FS, GS (请查看表 B-8) 3 eee 指定控制和调试等专用寄存器 (请查看表 B-9) 3 tttn 用于条件指令 , 指定条件断言和否定 (请查看表 B-12) 4 d 指定数据操作的方向 (请查看表 Table B-11) 1
B.1.4.1 非64位模式的reg域 (reg)
ModR/M字节的reg域用于指定一个通用寄存器操作数.寄存器的类型受w位的出现和状态影响(请查看第B.1.4.3节).表B-2列出了w位未出现时的编码情况;表B-3列出了w位出现时的情况.
表 B-2. w位未出现时reg域的编码
reg 域 16位数据操作时选择的寄存器 32位数据操作时选择的寄存器 000
001
010
011
100
101
110
111 AX CX DX
您可能关注的文档
最近下载
- 第九版眼科学-PPT课件-第13章-玻璃体疾病.pptx
- 胸、上腹部和盆腔CT图谱.ppt
- 达风21TD 31TD车铣复合数控系统用户手册4.pdf
- 《兰亭集序》(原文带拼音+全文翻译、注释、写作背景).pdf VIP
- 2025年“T8八省联考”语文试题评析及高考备考策略 课件.pptx
- 中考道德与法治7-9年级知识点复习提纲.pdf
- 备考资料中考生物复习提纲:认识生物.docx
- 哈弗-哈弗H8-产品使用说明书-哈弗H8-2017款 2.0T 8AT 四驱 悦享型-CC6480TM62-哈弗H8-使用说明书-红标-中文-18-17.05-01Z1.pdf
- 铜仁市第十二中学2021年中考备考复习方案.docx VIP
- 场平工程专项施工方案.docx
文档评论(0)