- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
intel指令手册2.1节中文
保护模式、实地址模式及V8086模式下的指令格式(上)
来源:misterliwei 的博客/misterliwei/article/details/5550452
本文译自《intel指令手册2.1节》,该手册地址为:
/products/processor/manuals/index.htm
Intel64和IA32架构的指令编码格式是图2-1格式的子集。指令有这几个部分组成:可选的指
令前缀(顺序不限)、主操作码字节(最多3个字节)以及寻址方式说明(addressing-form
specifier)字节(如果需要的话)。寻址方式说明由ModR/ 字节、SIB字节、位移量(如
果需要的话)和立即数(如果需要的话)组成。
图2-1Intel64和IA-32架构指令格式
2.1.1 指令前缀
指令前缀分成四块,每块都有一组前缀代码。对于每个指令来说,四块中每块只能使用一个
前缀。这四块的前缀的顺序是不限定的。
•第一块
—锁前缀和重复前缀:
•LOCK锁前缀代码为F0H
•REPNE/REPNZ前缀代码为F2H。该前缀仅用于字符串和输入/输出指令(F2H在某些指令
中还被用作强制前缀(mandatoryprefix)).
•REP或者REPE/REPZ前缀代码为F3H。该前缀仅用于字符串和输入/输出指令(F3H在
某些指令中还被用作强制前缀).
•第二块
—段超越前缀
•2EH——CS段超越(在分支指令中使用未定义)
•36H——SS段超越(在分支指令中使用未定义)
•3EH——DS段超越(在分支指令中使用未定义)
•26H——ES段超越(在分支指令中使用未定义)
•64H——FS段超越(在分支指令中使用未定义)
•65H——GS段超越(在分支指令中使用未定义)
—分支预测(branchhints)前缀
•2EH——分支被使用(只用于条件转移JCC指令)
•3EH——分支不被使用(只用于条件转移JCC指令)
• 第三块
•调整操作数大小(operand-sizeoverride)前缀代码为66H(在一些指令中66H被用作强制前
缀)
• 第四块
•67H——调整地址大小(address-sizeoverride)前缀
锁前缀(F0H)在多处理器情况下会迫使一个操作必须互斥地使用共享内存。(详见
《“InstructionSetReference,A-M,”》第三章 “LOCK—Assert LOCK#SignalPrefix”)
重复前缀(F2H,F3H)会使指令对字符串中的每一个元素都重复执行。该前缀只在字符串
和I/O指令(MOVS,CMPS,SCAS,LODS,STOS,INS,OUTS)中使用。在其他未定义的操作码
前使用重复前缀没有定义,这种使用会导致不可预见的后果。
一些指令会将F2H/F3H作为强制前缀来表示不同的功能(expressdistinctfunctionality)。
强制前缀通常应置于其他可选前缀后面(例外情况在2.2.1 “REXPrefixes”中讨论)。
分支预测前缀(2EH,3EH)允许程序预测一个分支最有可能的路径。此前缀只在条件转移
指令 (JCC)中使用。在其他未定义的操作码前使用分支预测前缀没有定义,这种使用会导
致不可预见的后果。
调整操作数大小前缀(66H)允许程序在16位和32位操作数之间切换操作数。这两种大小
都可以作为缺省值,使用本前缀可以切换为非缺省的那个大小值。
一些SSE2/SSE3/SSSE3/SSE4指令和主操作码为3字节的指令可能会将66H作为强制前缀
来表示不同的功能。强制前缀通常应置于其他可选前缀后面(例外情况在2.2.1 “REX
Prefixes”中讨论)。
66H前缀的其他使用保留,如果使用可能会导致不可预见的后果。
调整地址大小前缀(67H)允许程序在16位和32位地址之间切换。这两种大小都可以作为
缺省值,使用本前缀可以切换为非缺省的那个大小值。当指令的操作数是内存中不存在时,
使用该前缀和/或者未定义的操作码是未定义的,这种使用会导致不可预见的后果。
.
2.1.2 操作码
主操作码可以是1个,2个或3个字节长。有时会有另外的3位操作码存在于ModR/ 字节中。
主操作码中还可以为定义更小的段(fields),比如操作方向、位移量 (displacements)大小、
寄存器编码、条件码(conditioncodes)或者符号扩展(signextension)。操作码中的段随操作
的类型不同而有很大的不同。
通用指令和SIMD指令的2个字节的操作码格式组成如下:
•一个逃逸码
您可能关注的文档
最近下载
- 2021年医疗器械三类经营许可现场资料整理.pdf
- 山东省烟台市芝罘区2023-2024学年六年级(五四学制)上学期期末地理试题(含答案).docx VIP
- 2024年佳木斯大学附属第一医院招聘院内聘用行政管理考试真题及答案.pdf VIP
- Unit7Atweekends(FuntimeGrammartime)(课件)译林版英语五年级上册.pptx
- 工学一体化课程《小型网络安装与调试》任务1教学单元2教学单元活动方案.docx VIP
- 深信服AC初级认证考试题库.pdf
- JIS G3472-2007汽车结构用电阻焊碳钢管.pdf
- 山东省烟台市芝罘区2022-2023学年六年级上学期期末生物试题(含答案).docx VIP
- 工厂安全宣传标语.doc VIP
- 第三单元探索1 物联网数据传输的需求分析 教学课件 苏科版信息科技八年级上册.pptx
文档评论(0)