Intel开发者手册 第二卷 指令集手册 第2章.docx

上传人:牧羊曲112 文档编号:4885396 上传时间:2023-05-21 格式:DOCX 页数:16 大小:130.98KB
返回 下载 相关 举报
Intel开发者手册 第二卷 指令集手册 第2章.docx_第1页
第1页 / 共16页
Intel开发者手册 第二卷 指令集手册 第2章.docx_第2页
第2页 / 共16页
Intel开发者手册 第二卷 指令集手册 第2章.docx_第3页
第3页 / 共16页
Intel开发者手册 第二卷 指令集手册 第2章.docx_第4页
第4页 / 共16页
Intel开发者手册 第二卷 指令集手册 第2章.docx_第5页
第5页 / 共16页
亲,该文档总共16页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《Intel开发者手册 第二卷 指令集手册 第2章.docx》由会员分享,可在线阅读,更多相关《Intel开发者手册 第二卷 指令集手册 第2章.docx(16页珍藏版)》请在三一办公上搜索。

1、指令格式这一章详细描述所有Intel 64和IA-32处理器指令格式.保护模式指令,实地址模式以及虚拟 8086模式指令格式将在2.1节描述.IA-32 e模式及其子模式指令格式将在2.2节描述.2.1实模式,保护模式,以及虚拟8086模式指令格式Intel-64和IA-32架构指令编码是图2-1所示格式的子集.一条指令包括可选的指令前缀(顺 序任意),主操作码(最多3字节),由ModR/M和SIB字节(可选)组成的地址格式描述符(如果 需要的话),偏移量(可选)以及立即数(可选).图2-1. Intel 64和IA-32架构指令格式2.1.1指令前缀指令前缀分为四组,每一组包含一些允许的前缀

2、码.对于任何指令,前缀可以从这四组(组 1,2,3,4)里的挑选,并且它们不区分次序.组1一锁定和重复前缀: F0H - LOCK F2H - REPNE/REPN Z,仅用于串操作和I/O指令,也可被用作某些指令的强制 性前缀 F3H - REP或REPE/REPZ,仅用于串操作和I/O指令,也可被用作某些指令的 强制性前缀组2段重载前缀: 2EHCS段重载(用于任意分支指令时保留) 36HSS段重载(用于任意分支指令时保留) 3EHDS段重载(用于任意分支指令时保留) 26HES段重载(用于任意分支指令时保留) 64HFS段重载(用于任意分支指令时保留) 65HGS段重载(用于任意分支指令

3、时保留)分支提示: 2EH分支不被接受(仅用于Jcc指令中) 3EH分支被接受(仅用于Jcc指令中) 组3 66H操作数大小重载前缀,也可被用作某些指令的强制性前缀.组4 67H地址尺寸重载前缀LOCK前缀(F0H)在多处理器环境下强制执行独占共享内存操作.详见Instruction Set Reference, A-M第三章LOCK -断言LOCK#信号前缀”.重复前缀(F2H,F3H)将会重复操作字符串的每一个元素.只有MOVS,CMPS,SCAS,LODS,STOS,INS,OUTS等字符串操作或I/O指令才能使用这些前缀.对Intel 64或IA-32其他指令使用重复前缀和/或未定义的

4、操作码是被保留的,将会引起不 可预知的行为.某些指令可能使用F2H,F3H作为强制性前缀来表示特定的功能.强制性前缀应当位于其他可 选的前缀之后(例外的情形请查看第2.2.1节,REX前缀)分支提示前缀(2EH,3EH)允许程序给处理器一个最有可能的执行分支提示.这些前缀只能用 于条件指令(Jcc).在Intel 64或IA-32其他指令中使用分支预测前缀或者未定义的操作码 是被保留的,将引起不可预知的行为.操作数大小重载前缀允许程序在16位和32位操作数大小间切换.它们中任一个都可以是默 认值,而使用这个前缀则选择非默认值.某些SSE2/SSE3/SSSE3/SSE4和使用3字节操作码的指令

5、可能使用66H作为强制性前 缀来表示特定的功能.强制性前缀应当位于其他可选的前缀之后(例外的情形请查看第 2.2.1节,REX前缀).66H前缀的其他用法是被保留的,将引起不可预知的行为.地址尺寸重载前缀(67H)允许程序在16位和32位地址间切换.它们中的任何一个都可以是 默认值,使用这个前缀选择非默认值.当指令中的操作数不在内存中,使用这个前缀或未定义的 操作码时,操作被保留,可能引起不可预知的行为.2.1.2操作码主操作码长度为1,2或3字节.ModR/M可能编码附加的3位操作码.主操作码中定义了一些 更小的域.这些域定义了操作方向,偏移大小,寄存器编码,条件代码,或符号扩充.指令使用的

6、 域因操作码的类别而不同.双字节通用和SIMD指令操作码由下面部分组成:转义码(0FH),加上第二个操作码字节,或者 一个强制性前缀(66H,F2H,或F3H),转义码(0FH),第二个操作码字节(和上面一样)例如,CVTDQ2P D由下面的二进制序列组成:F3 0F E6 .第一个字节是一个SSE/SSE2/SSE3指令的强制性前缀(不被视为重复前缀).三字节通用和SIMD指令操作码由下面部分组成: 转义码(0FH),加上另外2个操作码字节,或者 一个强制性前缀(66H,F2H,或F3H),转义码(0FH),另外2个操作码字节(和上面一样)比如,XMM寄存器指令PHADDW由下面的二进制序列

7、组成:66 0F 38 01.第一个字节即强制 性前缀.有效的操作码在附录A和附录B中被定义.2.1.3 ModR/M和S旧字节许多涉及内存操作数的指令都有一个紧挨着主操作码的寻址格式说明字节(叫做ModR/M字 节),ModR/M字节包含3个域信息: mod域与r/m域组成32个可能的值:8个寄存器和24个寻址模式. reg/opcode域确定寄存器号或者附加的3位操作码.reg/opcod e域的用途由主操 作码确定. r/m域确定一个寄存器为操作数或者和mod域一起编码寻址模式.有时候有些指令使用 特定的mod域和r/m域组合来表示操作码信息.某些ModR/M字节编码需要第二寻址字节(S

8、IB).基址+索引或者比例+索引形式的32位寻 址需要SIB字节.SIB字节包括下列域: scale域指定比例因子. index域指定索引寄存器号. base域指定基址寄存器号.ModR/M和SIB编码详见第2.1.5节.2.1.4 偏移量和立即数字节某些地址构成包含ModR/M以及紧随ModR/M其后的偏移量(或者是SIB字节).如果需要偏 移量,它可以是1,2,或者4字节.若指令指定一个立即操作数,该操作数总是在偏移量之后,立即操作数可以为1,2,4字节.2.1.5 ModR/M和S旧字节寻址模式编码表2-1至表2-3列出了 ModR/M和SIB字节和寻址模式的对应情况:表2-1列出的是1

9、6位地址 模式的情形,而表2-2则是32位的情况,表2-3则是由SIB字节指定的32位地址的情况.在附 录B中列出了当ModR/M的reg/opcode域表现为操作码扩展时的编码情况.在表2-1和2-2中,指定了由Mod域和R/M域组合的32种有效地址形式,其中前24个是内存操 作数,后8个(mod=11B)是供通用寄存器,MMX以及XMM寄存器使用.表2-1和2-2中的Mod和R/M列给出了第一列对应有效地址时Mod和R/M的值.例如:Mod = 11B,R/M = 000B,该行确定通用寄存器EAX,AX或AL,MMX寄存器MM0,或者 XMM寄存器XMM0.最终使用的寄存器由操作码字节以

10、及操作数尺寸属性决定.现在看看表2-1或2-2的第7行(REG=),当需要指定第二操作数时,该行指定Reg/Opcode 域的用途,该操作数必须为通用寄存器或者MMX,XMM寄存器,第一至五行为对应的寄存器, 同样的,最终使用的寄存器由操作码字节以及操作数尺寸属性决定.若指令不需要第二操作数,Reg/Opcod e可能被用作操作码扩展,即第六行/digit(Opcode)所指,以十进制数的形式表示.表2-1和2-2的主体(即ModR/M值(十六进制)是一个32*8的矩阵,囊括了 ModR/M的 256个可能值.由位3-5索引列,位0-2和6,7索引列.下图演示了表中的一个值的解析.Mod11R

11、M000/digitREG001(Opcode);C8H11001000图2-2. ModR/M (C8H)值的解析表2-1.带ModR/M的16位寻址模式Tr8(/r)r16(/r)62(/r)mm(/r) xmm(/r) In decimal) /digit .Opcode) (In binary)ALAX EAX MM0 XMM0 0 000CL CX ECX MM1 XMM1 1 001DL DX EDX MM2 XMM2 2 010BL BX EBX MM3 XMM3 3 011AH SP ESP MM4 XMM4 4 100CH BP1 EBP MM5 XMM5 5 101DH S

12、I ES I MM6 XMM6 6BH DI EDI MM7 XMM7 7 111ii_u 110有效地址ModR/MModR/M值(十六进制)BX+SI000000008101820283038BX+DI0010109111921293139BP+SI BP+DI DSI disp162 BX010020A121A222A323A011030B131B232B333B100040C141C242C343C101050D151D252D353D110060E161E262E363E111070F171F272F373FBX+SI+disp8010004048505860687078 BBDSB

13、BB 衣衣QQdsd 散wnco w CD PQP 00 00 00001 010 011 10041424344494A4B4C51525354595A5B5C61626364696A6B6C71727374797A7B7C101454D555D656D757D110464E565E666E767E111474F575F676F777FBX+SI+disp11000080889098A0A8B0B8600181899199A1A9B1B9BX+DI+disp1010828A929AA2AAB2BA6011838B939BA3ABB3BBBP+SI+disp16BP+DI+disp16 SI+

14、disp16D+disp16100848C949CA4ACB4BC10111085868D8E95969D9EA5A6ADAEB5B6BDBE111878F979FA7AFB7BFEAXAX/AL/mmo/xmm11000C0C8D0D8E0E8F0F80001C1C9D1D9EQE9F1F9ECX/CX/CL/MM1/XMM010C2CAD2DAE2EAF2FA1011C3CBD3DBE3EBF3FBEDX/DX/DL/MM2/XMM100C4CCD4DCE4ECF4FC2101C5CDD5DDE5EDF5FDEBX/BX/BL/MM3/XMM110C6CED6DEE6EEF6FE3111C

15、7CFD7DFE7EFF7FFESP/SP/AHMM4/XMM注:1. BP作为索引默认以SS为段寄存器,其他的寻址方式默认以DS段寄存器.2. “disp16”记号表示ModR/M后跟随一个16位的偏移量,该偏移量被加至有效地址.3. “disp8”记号表示ModR/M后跟随一个8位的偏移量,该偏移量将被符号扩展,然后被加至有效地 址.表 2-2.带 ModR/M的32位寻址模式,8(/r)16(/r)32(/r)mm(/r)mm(/r)In decimal) /digitOpcode) (In binary)r 己c ALAX EAX MM0 XMM00 000CLCXECXMM1XMM1

16、1001DLDXEDXMM2XMM22 010BLBXEBXMM3XMM33 011AHSP ESP MM4 XMM44 100CH BP EBP MM5 XMM5 5 101DH SI ES I MM6 XMM6 6BHDIEDIMM7XMM77J 有效地址ModR/MModR/M值(十六进制)110111:EAX ECXEDXEBX.-1 disp322 匚 QI00000 001 010 011 100101 110 111oooooooo7654321。08 09 0A 0B 0C 0D 0E of10111213141516171819 1A1B1C1D 1E 1F202122232

17、425262728292A2B2C2D 2E 2F303132333435363738393A3B3C3D3E3F1EAX 3ECX EDX EBX - EBP ESI i=nn+disp8+disp8 +disp8 +disp8 +disp8 +disp8 +disp8 j-HicnP01000 001 010 011 100101 110 111404142434445464748494A4B4C4D 4E 4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C

18、7D7E7FEAX+diSp32ECX+disp32EDX+disp32BX+disp3-+disp3210000 001 010 011 100101 110 111808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8 A9 AA AB AC AD AE AFB0B1B2B3B4B5B6B7B8 B9 BA BB BC BD BE BFEAXAiX/A时Mmo/xmm 0ECX/CX/CL/MM/XMM1EDX/DX/DL/MM2/XMM2EBX/BX/BL/MM3/XMM3ESP

19、/SP/AH/MM4/XMM11000 001 010 011 100101 110 111OOOOOOOO7654321。C8C9CACBCCCDCECFdoD1D2D3D4D5D6D7D8 D9 DA DB DC DD DE DFQlC|CQ 寸 LQ9 山山山山山山山山E8E9EAEBECED EE EFF0F1F2F3F4F5F6F7F8 F9 FA FB FC FD FE FF4注:1. “-”记号表示ModR/M后跟随有一个SIB字节.2. “disp32”记号表示ModR/M(或者SIB,如果出现的话)后跟随一个32位的偏移量,该偏移量被加至 有效地址.3. “disp8”记号表

20、示ModR/M(或者SIB,如果出现的话)后跟随一个8位的偏移量,该偏移量将被符 号扩展,然后被加至有效地址.表2-3囊括了SIB的256个可能值(十六进制形式).可以作为基的通用寄存器通过表的上部列 出,也列出了相应的base域值.表的主体的每行列出了索引(index SIB的3,4,5位)对应的寄存 器及倍率因子(scaling factor SIBbyte 的6,7 位).表2-3.带S旧的32位寻址模式r32(In decimal) Base =(In binary) Base EAX 0 000ECX 1 _001EDX 2 010EBX 3 _011ESP 4 100*510ESI

21、 6 110EDI 7 111Scaled Index SS IndexS旧值(十六进制)EAX000000001020304050607ECX00108090A0B0C0D0E0F,mv0101011121314151617.EDX01118191A1B1C1D1E1FEBX1002021222324252627EBX101nnnp1w128292A2B2C2D2E2Fnone4 MEBP1103031323334353637,=ESI11138393A3B3C3D3E3FEAX*2010004041424344454647ECX*200148494A4B4C4D4E4FEDX*201050

22、51525354555657EBX*201158595A5B5C5D5E5Fnone100rcop*9iI006061626364656667EBP2miESI*210168696A6B6C6D6E6FEDIW110707172737475767711178797A7B7C7D7E7FEAX*4100008081828384858687ECX*400188898A8B8C8D8E8F软0109091929394959697EBX*401198899A9B9C9D9E9Fnone100A0A1A2A3A4A5A6A7EBP4miES|*4101A8A9AAABACADAEAF匚DI44 4 cE

23、DI*4110B0B1B2B3B4B5B6B7111B8B9BABBBCBDBEBFEAX*811000C0C1C2C3C4C5C6C7ECX*8001C8C9CACBCCCDCECFEDX:8.010D0D1D2D3D4D5D6D7EBX 8011D8D9DADBDCDDDEDFnone100rpop*Qi100E0E1E2E3E4E5E6E7EBP8m3ESI*8101E8E9EAEBECEDEEEF匚DI。4 4 CEDI*8110F0F1F2F3F4F5F6F7111F8F9FAFBFCFDFEFF注:1. “*”记号表示:若MOD = 00B表示没有基,且带有一个32位的偏移量;否则

24、表示disp8或disp32 + EBP .即提供如下的寻址方式:MOD有效地址00 scaled index + disp3201 scaled index + disp8 + EBP10 scaled index + disp32 + EBP2.2 IA-32E 模式IA-32 e模式有两个子模式: 兼容模式.使64位操作系统能够不经修改运行遗留的保护模式代码. 64位模式.使64位操作系统能够运行应用程序存取64位地址空间.2.2.1 REX 前缀REX前缀用于64位模式,它能够: 指定GPR (通用寄存器)和SSE寄存器. 指定64位操作数尺寸. 指定扩展的控制寄存器.在64位环境中并

25、非所有的指令都需要REX前缀,它仅在指令使用扩展寄存器或64位操作数时 发挥作用.当它的使用没有意义时,将被忽略.每条指令最多能有一个REX前缀.如果REX前缀被使用,那么它必须位于操作码或转义码之前. 如果REX前缀和包含强制性前缀的指令配合使用,该强制性前缀必须位于REX前缀之前,这样 REX前缀就紧靠操作码或转义码之前.例如CVTDQ2PD带有一个REX前缀,该前缀必须位于 F3和0FE6之间.将REX前缀放置在其他的地方将被忽略.指令的最大长度为15字节的规律对 于使用REX前缀的指令也是同样适用的.如图2-3所示.传统前缀X主操作码ModR/MS旧偏移量刖缀立即数组1,2,(可选)1

26、,2, 3字节i字节1字节1,2, 4字节3, 4操作码(可选)(可选)偏移量(可选)0, 1,2, 4 字节立即数图2-3. 64-bit模式的前缀顺序2.2.1.1 编码Intel 64和IA-32指令格式可以通过编码中的3位域指定最多3个寄存器: 一一 .一 .一一 一ModR/M: reg 和 r/m 域 . . . . ,. . 一带SIB 的ModR/M: ModR/M 的reg 域 SIB 的 base 和 index 域 指令不包含ModR/M:操作码的reg域64位模式下,这些格式未被改变.REX前缀新增了一些位定义了一些新的域.2.2.1.2 REX前缀的域REX前缀包含操

27、作码表中从40H至4FH共16个,占操作码表的一行.这些字节在32位和兼容模式 下表现位合法的指令(INC或DEC);而在64-bit模式下,这些字节表现为REX前缀,而不再是单个 的指令.64位模式下没有单字节的INC/DEC指令,但是可以通过操作码FF/0和FF/1即带ModR/M字节的 方式使用INC和DEC指令.表2-4是对REX前缀格式的一个总结,图2-4至图2-7例举7REX前缀被使用的情况.某些REX域的 组合是非法的将被姗器忽略.下面是一些额夕的信息: 设置REX.W可以决定操作数尺寸,但这并不是决定操作数尺寸的唯一因素.和66H前缀一 样,64位操作数尺寸重载不会对字节单位操

28、作产生影响. 对于非字节单位操作:若66H前缀和REX前缀配合使用(REX.W=1),此时66H前缀将被忽略. 66H前缀和REX一起使用且REX.W = 0,操作数尺寸为16位. 当ModR/M的reg域编码GPR, SSE,控制或调试寄存器时,REX.R修饰该域.当ModR/M指定 另外的寄存器或者reg/opcode域被用于操作码扩展时,REX.R将被忽略. REX.X修饰 SIB 的 index 域.REX.B either modifies the base in the ModR/M r/m field or SIB base field; or it modifies the o

29、pcode reg field used for accessing GPRs.表2-4. REX前缀的域位:0100WRXB域名位置定义-7:40100W30 =操作数尺寸由C S.D决定1 = 64位操作数尺寸R2ModR/M的reg域扩展X1SIB 的index域扩展B0ModR/M 的 r/m 域,SIB 的 base 域, 或者Opcode的reg域扩展图2-5.寄存器-寄存器寻址(没有内存操作数);REX.X未被使用图2-7.操作码中编码进村其操作数;REX.X和REX.R未被使用对于IA-32架构,字节寄存器(AH, AL, BH, BL, CH, CL, DH,和DL)通过0-

30、7被编码于ModR/M 的reg域,r/m域或者操作码的reg域.REX通过额外的寻址字节寄存器使各GPR勺最低有效字 节可用.特定的ModR/M和SIB的组合译为着特殊的寄存器编码.对于某些组合,被REX扩展的域并未被解 码.表2-5描述了各种情形的表现情况表2-5. REX编码的特殊情况ModR/M 或 SIB子域编码兼容模式操作兼容模式含义附加的含义ModR/Mmod != 11r/m = b*100(ESP)SIB出现.SIB byte required for ESPbased addressing.REX prefix adds a fourth bit (b) which is

31、not decoded (dont care).SIB byte also required forModR/Mmod = 0r/m = b*101(EBP)不使用基寄存器.EBP without a displacement must be done usingmod = 01 with displacement of 0.REXbaeed 朗dsessou4h bit (b) which is not decoded (dont care).Using RBP or R13 without displacement must be done using modSIBindex =0100(

32、ESP)不使用索引寄存器.ESP cannot be used as an index register.=01 with a displacement REX prefix adds a fourth bit (b) which is decoded. There are no additional implications. The expanded index field allows distinguishing RSP from R12, therefore R12 can be used as an indexSIBbase = 0101(EBP)若 mod=0基寄存器 未被使 用

33、.Base register depends on mod encoding.REX prefix adds a fourth bit (b) which is not decoded.This requires explicit displacement to be used with EBP/RBP orW:*不需要 关心REX.B2.2.1.3 偏移量64为寻址任然使用32位模式的ModR/M和SIB编码.并且ModR/M和SIB以及偏移量的尺寸都 未变化.它们仍然是位或32(立,并且被符号扩展为4位.2.2.1.4 直接内存地址MOVs64位模式下,直接内存地址MOV指令需要使用64位

34、立即绝对地址.该地址即直接内存地址不需 要使用前缀指定该54位内存地址.对于这些MOM指令该内存地址为默认地址尺(64位模式为64 位).请查看表2-6.表2-6.直接内存地址MOV操作码指令A0MOV AL, moffsetA1MOV EAX, moffsetA2MOV moffset, ALA3MOV moffset, EAX2.2.1.5 立即数64位模式下,立即操作数的典型尺寸仍然是32位.当操作数尺寸为64位时,处理器在使用之前将所 有的立即数符号扩展为64位.64位立即操作数是通过扩展已经存在的move指令(MOV reg, imm16/32)实现的.这些指令 (操作码为B8H -

35、 BFH)传输16位或32位立即数(依据有效的操作数尺寸)至GPR.当有效的操作 数尺寸为64位时,这些指令可以将一个立即数加载至GPR.使用REX前缀重载32位默认操作数尺 寸为64位.例如:48 B8 8877665544332211 MOV RAX,1122334455667788H2.2.1.6 RIP相对寻址64位模式实现了一种新的寻址方式-RIP相对寻址(relative instruction-pointer).有效地址 由将偏移量加至下一指令B64位RIP形成.对于IA-32和兼容模式,指令指针的相对寻址仅对控制转移类指令可用.而对于64位模式,任何使 用ModR/M寻址的指令

36、均可使用RIP相对寻址.若未使用RIP相对寻址,所有的ModR/M指令寻址均 为相对于0的偏移量.RIP相对寻址允许特定的ModR/M模式使用一个有符号的32位的相对于64位RIP的偏移量来寻址 内存.这样该偏移的范围即土2GB.表2-7列出了用于RIP相对寻址的ModR/M和SIB编码情况.Redundant forms of 32-bit displacement-addressing exist in the current ModR/M and SIB encodings. There is one ModR/M encoding and there are several SIB e

37、ncodings. RIP-relative addressing is encoded using a redundant form.在64位模式中,ModR/M Disp32(32位偏移)编码被重定义为RIP+Disp32,而不再是仅有偏 移量.请查看表2-7.表2-7. RIP相对寻址ModR/M和SIB子域编码兼容模式操作64位模式操作64位模式附加说明ModR/ Mmod = 00Disp32RIP + Disp32Must use SIB form with normal (zero-based) displacementr/m = 101 (none)SIBbase = 101

38、(none)if mod = 00, Disp32Same as legacyaddressingindex = 100 (none)scale = 0, 1,2, 4RIP相对寻址的ModR/M编码并不依赖于使用前缀.具体的说,r/m域为101B(选择使用RIP相对 寻址)不受REX前缀的影响.例如,mod = 00B,选择R13(REX.B = 1, r/m = 101B)(乃然选择 RIP相对寻址.由REX.B和ModR/M组合的4比特并没有被完全解码为了寻址R13且不带偏移量, 程序必须编码R13+0,使用1字节的偏移量0.RIP相对寻址由64位模式,而不是64位地址尺寸启用.使用地址

39、尺寸前缀并不能禁JRIPg对寻址 地址尺寸前缀仅仅起着截断和零扩展有效地址32位.2.2.1.764位默认操作数尺寸在64位模式中有两组指令使用64位默认操作数(不需要REX前缀),它们是: 短跳转指令 所有依赖rsp寻址的指令,远跳转指令除外2.2.2控制和调试寄存器编码64位环境下允许编码更多的控制和调试寄存器.当ModR/M的reg域需要编码控制或调试寄存 器时,REX.B被用于修饰该reg域(请查看表2-4).这样处理器就能寻址CR8-CR15以及 DR8- DR15等寄存器.64位环境定义了一个新增的控制寄存器(CR8),CR8被用作任务优先级寄 存器(TPR).在IA-32e模式的最先实现并没有实现CR9-CR15和DR8-DR15等寄存器.任何试图存取未被 实现的寄存器都将导致一个无效指令异常(#UD).:用于任意分支指令时保留的原因是:分支指令都会改变eip,eip总是应当以CS为段寄存器的, 故不能改变默认的CS段.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号