qiezi的学习园地

AS/C/C++/D/Java/JS/Python/Ruby

  C++博客 :: 首页 :: 新随笔 ::  ::  :: 管理 ::
不知道原作者是谁,我是从http://1000y.jx520.net/看到的,那里标注的作者是ddcrack,文章里面没标明作者。



奔腾指令速查手册


指令首字母快速索引: A B C D E F H I J L M N O P R S T U V W X



指令名称 指令形式 机器码 标志位(设置/测试) 说    明 应用举例
ES: ES: 26   ES段跨越前缀  
CS: CS: 2E   CS段跨越前缀  
SS: SS: 36   SS段跨越前缀  
DS: DS: 3E   DS段跨越前缀  
FS: FS: 64   FS段跨越前缀  
GS: GS: 65   GS段跨越前缀  
Opsize: Opsize: 66   操作数类型跨越前缀  
Address: Address: 67   地址类型跨越前缀  


点击这里:查看下表中所使用符号的说明


指令名称 指令形式 机器码 标志位(设置/测试) 说    明 应用举例
AAA AAA 37 设置 AF CF 加法后的ASCII码调整AL AAA
AAD AAD D5 0A 或 D5 ib 设置 SF ZF PF 除法前的ASCII码调整AX AAD
AAM AAM D4 0A 或 D4 ib 设置 PF SF ZF 乘法后的ASCII码调整AX AAM
AAS AAS 3F 设置 AF CF 减法后的ASCII码调整AL AAS
ADC ADC AL, imm8 14 ib 设置 AF CF OF SF PF ZF 带进位加法 ADC AL, 1F
ADC AX, imm16 15 iw ADC AX, 4F80
ADC EAX, imm32 15 id ADC EAX, 00004F80
ADC r/m8, imm8 80 /2 ib ADC BYTE PTR [006387EA], 39
ADC r/m16,imm16 81 /2 iw ADC WORD PTR [006387EA], 1039
ADC r/m32,imm32 81 /2 id ADC DWORD PTR [006387EA], 00001039
ADC r/m16,imm8 83 /2 ib ADC WORD PTR [006387EA], 39
ADC r/m32,imm8 83 /2 ib ADC DWORD PTR [006387EA], 39
ADC r/m8,r8 10 /r ADC [006387EA], AL
ADC r/m16,r16 11 /r ADC [006387EA], AX
ADC r/m32,r32 11 / r ADC [006387EA], EAX
ADC r8,r/m8 12 /r ADC AL, [006387EA]
ADC r16,r/m16 13 /r ADC AX, [006387EA]
ADC r32,r/m32 13 /r ADC EAX, [006387EA]
ADD ADD AL, imm8 04 ib 设置 AF CF OF SF PF ZF 加法 ADD AL, 1F
ADD AX, imm16 05 iw ADD AX, 4F80
ADD EAX, imm32 05 id ADD EAX, 00004F80
ADD r/m8, imm8 80 /0 ib ADD BYTE PTR [006387EA], 39
ADD r/m16,imm16 81 /0 iw ADD WORD PTR [006387EA], 1039
ADD r/m32,imm32 81 /0 id ADD DWORD PTR [006387EA], 00001039
ADD r/m16,imm8 83 /0 ib ADD WORD PTR [006387EA], 39
ADD r/m32,imm8 83 /0 ib ADD DWORD PTR [006387EA], 39
ADD r/m8,r8 00 /r ADD [006387EA], AL
ADD r/m16,r16 01 /r ADD [006387EA], AX
ADD r/m32,r32 01 / r ADD [006387EA], EAX
ADD r8,r/m8 02 /r ADD AL, [006387EA]
ADD r16,r/m16 03 /r ADD AX, [006387EA]
ADD r32,r/m32 03 /r ADD EAX, [006387EA]
AND AND AL, imm8 24 ib 设置 CF OF PF SF ZF 逻辑与 AND AL, 1F
AND AX, imm16 25 iw AND AX, 4F80
AND EAX, imm32 25 id AND EAX, 00004F80
AND r/m8, imm8 80 /4 ib AND BYTE PTR [006387EA], 39
AND r/m16,imm16 81 /4 iw AND WORD PTR [006387EA], 1039
AND r/m32,imm32 81 /4 id AND DWORD PTR [006387EA], 00001039
AND r/m16,imm8 83 /4 ib AND WORD PTR [006387EA], 39
AND r/m32,imm8 83 /4 ib AND DWORD PTR [006387EA], 39
AND r/m8,r8 20 /r AND BYTE PTR [006387EA], AL
AND r/m16,r16 21 /r AND WORD PTR [006387EA], AX
AND r/m32,r32 21 /r AND DWORD PTR [006387EA], EAX
AND r8,r/m8 22 /r AND AL, [006387EA]
AND r16,r/m16 23 /r AND AX, [006387EA]
AND r32,r/m32 23 /r AND EAX, [006387EA]
ARPL ARPL r/m16,r16 63 /r 设置 ZF 调整请求特权级 (286+ PM) ARPL AX, BX ;如果AX的RPL小于BX的RPL,则改为BX的RPL,且ZF置1,否则ZF清0
BOUND BOUND r16,m16&16 62 /r 不影响标志位 越界检查 (80188+) BOUND AX, [006387EA] ;如果AX不在[006387EA]及[006387EA+2]的值中间,则产生异常5
BOUND r32,m32&32 BOUND EAX, [006387EA] ;如果EAX不在[006387EA]及[006387EA+4]的值中间,则产生异常5
BSF BSF r16,r/m16 0F BC 设置 ZF 从低到高扫描目标,查找对应为1的位 (386+) BSF AX, BX ;把BX由低到高第一个1的位置送AX,如全0则ZF置1,否则ZF清0
BSF r32,r/m32 BSF EAX, EBX ;把EBX由低到高第一个1的位置送EAX,如全0则ZF置1,否则ZF清0
BSR BSR r16,r/m16 0F BD 设置 ZF 从高到低扫描目标,查找对应为1的位 (386+) BSR AX, BX ;把BX由高到低第一个1的位置送AX,如全0则ZF置1,否则ZF清0
BSR r32,r/m32 BSR EAX, EBX ;把EBX由高到低第一个1的位置送EAX,如全0则ZF置1,否则ZF清0
BSWAP BSWAP reg32 0F C8+rd 不影响标志位 32位寄存器高低字节交换(486+) BSWAP EAX
BT BT r/m16,r16 0F A3 设置 CF 测试目标的指定位 (386+) BT AX, BX ;如果AX中BX指定的位为1,则CF置1,否则CF清0
BT r/m32,r32 0F A3 BT EAX, EBX ;如果EAX中EBX指定的位为1,则CF置1,否则CF清0
BT r/m16,imm8 0F BA /4 BT AX, 01 ;如果AX中01位为1,则CF置1,否则CF清0
BT r/m32,imm8 0F BA /4 BT EAX, 01 ;如果EAX中01位为1,则CF置1,否则CF清0
BTC BTC r/m16,r16 0F BB 设置 CF 将目标指定位取反 (386+) BTC AX, BX ;将AX中BX指定的位取反,CF存放指定位并取反位
BTC r/m32,r32 0F BB BTC EAX, EBX ;将EAX中EBX指定的位取反,CF存放指定位并取反
BTC r/m16,imm8 0F BA /7 BTC AX, 01 ;将AX中01位取反,CF存放指定位并取反
BTC r/m32,imm8 0F BA /7 BTC EAX, 01 ;将EAX中01位取反,CF存放指定位并取反
BTR BTR r/m16,r16 0F B3 设置 CF 将目标指定位清0 (386+) BTR AX, BX ;将AX中BX指定的位清0,CF存放指定位并清0
BTR r/m32,r32 0F B3 BTR EAX, EBX ;将EAX中EBX指定的位清0,CF存放指定位并清0
BTR r/m16,imm8 0F BA /6 BTR AX, 01 ;将AX中01位清0,CF存放指定位并清0
BTR r/m32,imm8 0F BA /6 BTR EAX, 01 ;将EAX中01位清0,CF存放指定位并清0
BTS BTS r/m16,r16 0F AB 设置 CF 将目标指定位置1 (386+) BTS AX, BX ;将AX中BX指定的位置1,CF存放指定位并置1
BTS r/m32,r32 0F AB BTS EAX, EBX ;将EAX中EBX指定的位置1,CF存放指定位并置1
BTS r/m16,imm8 0F BA /5 BTS AX, 01 ;将AX中01位置1,CF存放指定位并置1
BTS r/m32,imm8 0F BA /5 BTS EAX, 01 ;将EAX中01位置1,CF存放指定位并置1
CALL CALL rel16 E8 cw 不影响标志位 子程序调用(16位相对寻址)  
CALL rel32 E8 cd 子程序调用(32位相对寻址)  
CALL r/m16 FF /2 子程序调用(16位间接寻址)  
CALL r/m32 FF /2 子程序调用(32位间接寻址)  
CALL ptr16:16 9A cd 子程序调用(直接绝对寻址)  
CALL ptr16:32 9A cp 子程序调用(直接绝对寻址)  
CALL m16:16 FF /3 子程序调用(间接绝对寻址)  
CALL m16:32 FF /3 子程序调用(间接绝对寻址)  
CBW CBW 98 不影响标志位 将AL值带符号扩展到AX CBW
CDQ CDQ 99 不影响标志位 将EAX值带符号扩展到EDX:EAX CDQ
CLD CLD FC 设置 DF 清除方向位(DF)标志 CLD
CLI CLI FA 设置 IF 清除中断允许位(IF)标志 CLD
CLTS CLTS 0F 06 不影响标志位 清除任务开关标志(TSF) CLTS
CMC CMC F5 设置 CF 进位标志取反 CMC
CMOVcc CMOVA r16, r/m16 0F 47 /r 高于(CF=0 and ZF=0) 条件传送指令 CMOVA AX, BX
CMOVA r32, r/m32 CMOVA EAX, EBX
CMOVAE r16, r/m16 0F 43 /r 高于等于(CF=0) CMOVAE AX, BX
CMOVAE r32, r/m32 CMOVAE EAX, EBX
CMOVB r16, r/m16 0F 42 /r 低于(CF=1) CMOVB AX, BX
CMOVB r32, r/m32 CMOVB EAX, EBX
CMOVBE r16, r/m16 0F 46 /r 低于等于(CF=1 or ZF=1) CMOVBE AX, BX
CMOVBE r32, r/m32 CMOVBE EAX, EBX
CMOVC r16, r/m16 0F 42 /r 有进位(CF=1) CMOVC AX, BX
CMOVC r32, r/m32 CMOVC EAX, EBX
CMOVE r16, r/m16 0F 44 /r 等于(ZF=1) CMOVE AX, BX
CMOVE r32, r/m32 CMOVE EAX, EBX
CMOVG r16, r/m16 0F 4F /r 大于(ZF=0 and SF=OF) CMOVG AX, BX
CMOVG r32, r/m32 CMOVG EAX, EBX
CMOVGE r16, r/m16 0F 4D /r 大于等于(SF=OF) CMOVGE AX, BX
CMOVGE r32, r/m32 CMOVGE EAX, EBX
CMOVL r16, r/m16 0F 4C /r 小于(SF<>OF) CMOVL AX, BX
CMOVL r32, r/m32 CMOVL EAX, EBX
CMOVLE r16, r/m16 0F 4E /r 小于等于(ZF=1 or SF<>OF) CMOVLE AX, BX
CMOVLE r32, r/m32 CMOVLE EAX, EBX
CMOVNA r16, r/m16 0F 46 /r 不高于(CF=1 or ZF=1) CMOVNA AX, BX
CMOVNA r32, r/m32 CMOVNA EAX, EBX
CMOVNAE r16, r/m16 0F 42 /r 不高等于(CF=1) CMOVNAE AX, BX
CMOVNAE r32, r/m32 CMOVNAE EAX, EBX
CMOVNB r16, r/m16 0F 43 /r 不低于(CF=0) CMOVNB AX, BX
CMOVNB r32, r/m32 CMOVNB EAX, EBX
CMOVNBE r16, r/m16 0F 47 /r 不低等于(CF=0 and ZF=0) CMOVNBE AX, BX
CMOVNBE r32, r/m32 CMOVNBE EAX, EBX
CMOVNC r16, r/m16 0F 43 /r 无进位(CF=0) CMOVNC AX, BX
CMOVNC r32, r/m32 CMOVNC EAX, EBX
CMOVNE r16, r/m16 0F 45 /r 不等于(ZF=0) CMOVNE AX, BX
CMOVNE r32, r/m32 CMOVNE EAX, EBX
CMOVNG r16, r/m16 0F 4E /r 不大于(ZF=1 or SF<>OF) CMOVNG AX, BX
CMOVNG r32, r/m32 CMOVNG EAX, EBX
CMOVNGE r16, r/m16 0F 4C /r 不大等于(SF<>OF) CMOVNGE AX, BX
CMOVNGE r32, r/m32 CMOVNGE EAX, EBX
CMOVNL r16, r/m16 0F 4D /r 不小于(SF=OF) CMOVNL AX, BX
CMOVNL r32, r/m32 CMOVNL EAX, EBX
CMOVNLE r16, r/m16 0F 4F /r 不小等于(ZF=0 and SF=OF) CMOVNLE AX, BX
CMOVNLE r32, r/m32 CMOVNLE EAX, EBX
CMOVNO r16, r/m16 0F 41 /r 无溢出(OF=0) CMOVNO AX, BX
CMOVNO r32, r/m32 CMOVNO EAX, EBX
CMOVNP r16, r/m16 0F 4B /r 非偶数(PF=0) CMOVNP AX, BX
CMOVNP r32, r/m32 CMOVNP EAX, EBX
CMOVNS r16, r/m16 0F 49 /r 非负数(SF=0) CMOVNS AX, BX
CMOVNS r32, r/m32 CMOVNS EAX, EBX
CMOVNZ r16, r/m16 0F 45 /r 非零(ZF=0) CMOVNZ AX, BX
CMOVNZ r32, r/m32 CMOVNZ EAX, EBX
CMOVO r16, r/m16 0F 40 /r 溢出(OF=1) CMOVO AX, BX
CMOVO r32, r/m32 CMOVO EAX, EBX
CMOVP r16, r/m16 0F 4A /r 偶数(PF=1) CMOVP AX, BX
CMOVP r32, r/m32 CMOVP EAX, EBX
CMOVPE r16, r/m16 0F 4A /r 偶数(PF=1) CMOVPE AX, BX
CMOVPE r32, r/m32 CMOVPE EAX, EBX
CMOVPO r16, r/m16 0F 4B /r 奇数(PF=0) CMOVPO AX, BX
CMOVPO r32, r/m32 CMOVPO EAX, EBX
CMOVS r16, r/m16 0F 48 /r 负数(SF=1) CMOVS AX, BX
CMOVS r32, r/m32 CMOVS EAX, EBX
CMOVZ r16, r/m16 0F 44 /r 为零(ZF=1) CMOVZ AX, BX
CMOVZ r32, r/m32 CMOVZ EAX, EBX
CMP CMP AL, imm8 3C ib 设置 AF CF OF PF SF ZF 比较大小,然后设置标志位 CMP AL, 1F
CMP AX, imm16 3D iw CMP AX, 4F80
CMP EAX, imm32 3D id CMP EAX, 00004F80
CMP r/m8, imm8 80 /7 ib CMP BYTE PTR [006387EA], 39
CMP r/m16,imm16 81 /7 iw CMP WORD PTR [006387EA], 1039
CMP r/m32,imm32 81 /7 id CMP DWORD PTR [006387EA], 00001039
CMP r/m16,imm8 83 /7 ib CMP WORD PTR [006387EA], 39
CMP r/m32,imm8 83 /7 ib CMP DWORD PTR [006387EA], 39
CMP r/m8,r8 38 /r CMP BYTE PTR [006387EA], AL
CMP r/m16,r16 39 /r CMP WORD PTR [006387EA], AX
CMP r/m32,r32 39 / r CMP DWORD PTR [006387EA], EAX
CMP r8,r/m8 3A /r CMP AL, [006387EA]
CMP r16,r/m16 3B /r CMP AX, [006387EA]
CMP r32,r/m32 3B /r CMP EAX, [006387EA]
CMPS CMPS m8, m8 A6 设置 AF CF OF PF SF ZF 比较字符串,每次比较1个字节 CMPS STRING1, STRING2 ;源串DS:(E)SI,目的串:ES:(E)DI
CMPS m16, m16 A7 比较字符串,每次比较1个字 CMPS STRING1, STRING2 ;源串DS:(E)SI,目的串:ES:(E)DI
CMPS m32, m32 A7 比较字符串,每次比较1个双字 CMPS STRING1, STRING2 ;源串DS:(E)SI,目的串:ES:(E)DI (386+)
CMPSB A6 比较字符串,每次比较1个字节 CMPSB ;源串DS:(E)SI,目的串:ES:(E)DI
CMPSW A7 比较字符串,每次比较1个字 CMPSW ;源串DS:(E)SI,目的串:ES:(E)DI
CMPSD A7 比较字符串,每次比较1个双字 CMPSD ;源串DS:(E)SI,目的串:ES:(E)DI (386+)
CMPXCHG CMPXCHG r/m8,r8 0F B0 /r 设置 AF CF OF PF SF ZF 比较交换 (486+) CMPXCHG BL,CL ;如果AL与BL相等,则CL送BL且ZF置1;否则BL送CL,且ZF清0
CMPXCHG r/m16,r16 0F B1 /r CMPXCHG BX,CX ;如果AX与BX相等,则CX送BX且ZF置1;否则BX送CX,且ZF清0
CMPXCHG r/m32,r32 0F B1 /r CMPXCHG EBX,ECX ;如果EAX与EBX相等,则ECX送EBX且ZF置1;否则EBX送ECX,且ZF清0
CMPXCHG8B CMPXCHG8B m64 0F C7 /1 m64 设置 ZF 比较交换 (486+) CMPXCHG [ESI] ;比较EDX:EAX与64位的目标,如果相等则ECX:EBX送往目标且ZF置1,否则目标送EDX:EAX且ZF清0
CPUID CPUID 0F A2 不影响标志位 CPU标识送EAX、EBX、ECX、EDX CPUID
CWD CWD 99 不影响标志位 将AX带符号扩展到DX:AX CWD
CWDE CWDE 98 不影响标志位 将AX带符号扩展到EAX CWDE
DAA DAA 27 设置 AF CF PF SF ZF 加法后的10进制调整AL DAA
DAS DAS 2F 设置 AF CF PF SF ZF 减法后的10进制调整AL DAS
DEC DEC r/m8 FE /1 设置 AF OF PF SF ZF 目标减1 DEC BYTE PTR [00458A90]
DEC r/m16 FF /1 DEC WORD PTR [00458A90]
DEC r/m32 FF /1 DEC DWORD PTR [00458A90]
DEC r16 48 +rw DEC AX
DEC r32 48 +rd DEC EAX
DIV DIV r/m8 F6 /6 AF CF OF PF SF ZF 未定义 无符号除法 DIV BL ;AX除以BL,商在AL中,余数在AH中
DIV r/m16 F6 /7 DIV BX ;DX:AX除以BX,商在AX中,余数在DX中
DIV r/m32 F6 /7 DIV EBX;EDX:EAX除以BX,商在EAX中,余数在EDX中
EMMS EMMS 0F 77 不影响标志位 清空MMX状态 EMMS
ENTER ENTER imm16,0 C8 iw 00 不影响标志位 为子程序建立堆栈框架,imm16指定要分配的堆栈大小,另外一个操作数指明子程序的等级 (80188+) ENTER 12,0
ENTER imm16,1 C8 iw 01 ENTER 12,1
ENTER imm16,imm8 C8 iw ib DENTER 12,4
ESC ESC 0 D8h xxh 不影响标志位 处理器放弃总线 ESC 0
ESC 1 D9h xxh ESC 1
ESC 2 DAh xxh ESC 2
ESC 3 DBh xxh ESC 3
ESC 4 DCh xxh ESC 4
ESC 5 DDh xxh ESC 5
ESC 6 DEh xxh ESC 6
ESC 7 DFh xxh ESC 7
F2XM1 F2XM1 D9 F0 设置C1 (C0, C2, C3未定义) ST(0)←(2**ST(0) - 1) F2XM1
FABS FABS D9 E1 设置C1 (C0, C2, C3未定义) 求绝对值:ST(0)←ABS(ST(0)) FABS
FADD FADD m32real D8 /0 设置C1 (C0, C2, C3未定义) 实数加法:ST(0)←ST(0)+m32real FADD REAL4 PTR [00459AF0]
FADD m64real DC /0 实数加法:ST(0)←ST(0)+m64real FADD REAL8 PTR [00459AF0]
FADD ST(0), ST(i) D8 C0+i 实数加法:ST(0)←ST(0)+ST(i) FADD ST(0), ST(1)
FADD ST(i), ST(0) DC C0+i 实数加法:ST(i)←ST(i)+ST(0) FADD ST(1), ST(0)
FADDP FADDP ST(i), ST(0) DE C0+i 设置C1 (C0, C2, C3未定义) 先进行实数加法:ST(i)←ST(i)+ST(0),然后进行一次出栈操作 FADDP ST(1), ST(0)
FADDP DE C1 先进行实数加法:ST(0)←ST(0)+ST(1),然后进行一次出栈操作 FADDP
FIADD FIADD m32int DA /0 设置C1 (C0, C2, C3未定义) 加整数:ST(0)←ST(0)+m32int FIADD DWORD PTR [00812CD0]
FIADD m16int DE /0 加整数:ST(0)←ST(0)+m16int FIADD WORD PTR [00812CD0]
FBLD FBLD m80bcd DF /4 设置C1 (C0, C2, C3未定义) 将BCD数装入ST(0),然后压栈push ST(0)  
FBSTP FBSTP m80bcd DF /6 设置C1 (C0, C2, C3未定义) 将ST(0)以BCD数保存在m80bcd,然后出栈pop ST(0)  
FCHS FCHS D9 E0 设置C1 (C0, C2, C3未定义) 改变ST(0)的符号位,即求负数 FCHS
FCLEX FCLEX 9B DB E2 PE, UE, OE, ZE, DE, IE, ES, SF, B 清0,设置C0 (C1, C2, C3未定义) 清除浮点异常标志(检查非屏蔽浮点异常) FCLEX
FNCLEX FNCLEX DB E2 PE, UE, OE, ZE, DE, IE, ES, SF, B 清0,设置C0 (C1, C2, C3未定义) 清除浮点异常标志(不检查非屏蔽浮点异常) FNCLEX
FCMOVcc FCMOVB ST(0), ST(i) DA C0+i 小于(CF=1),设置C1 (C0, C2, C3未定义) 条件浮点传送指令 FCMOVB ST(0), ST(1)
FCMOVE ST(0), ST(i) DA C8+i 等于(ZF=1),设置C1 (C0, C2, C3未定义) FCMOVE ST(0), ST(1)
FCMOVBE ST(0), ST(i) DA D0+i 小于等于(CF=1 or ZF=1),设置C1 (C0, C2, C3未定义) FCMOVBE ST(0), ST(1)
FCMOVU ST(0), ST(i) DA D8+i unordered(PF=1),设置C1 (C0, C2, C3未定义) FCMOVU ST(0), ST(1)
FCMOVNB ST(0), ST(i) DB C0+i 不小于(CF=0),设置C1 (C0, C2, C3未定义) FCMOVNB ST(0), ST(1)
FCMOVNE ST(0), ST(i) DB C8+i 不等于(ZF=0),设置C1 (C0, C2, C3未定义) FCMOVNE ST(0), ST(1)
FCMOVNBE ST(0), ST(i) DB D0+i 不小于等于(CF=0 and ZF=0),设置C1 (C0, C2, C3未定义) FCMOVNBE ST(0), ST(1)
FCMOVNU ST(0), ST(i) DB D8+i not unordered(PF=1),设置C1 (C0, C2, C3未定义) FCMOVNBE ST(0), ST(1)
FCOM FCOM m32real D8 /2 设置C1,C0, C2, C3 实数比较:ST(0)-m32real,设置标志位 FCOM REAL4 PTR [00812CD0]
FCOM m64real DC /2 实数比较:ST(0)-m64real,设置标志位 FCOM REAL8 PTR [00812CD0]
FCOM ST(i) D8 D0+i 实数比较:ST(0)-ST(i),设置标志位 FCOM ST(2)
FCOM D8 D1 实数比较:ST(0)-ST(1),设置标志位 FCOM
FCOMP FCOMP m32real D8 /3 设置C1,C0, C2, C3 实数比较:ST(0)-m32real,设置标志位,执行一次出栈操作 FCOMP REAL4 PTR [00812CD0]
FCOMP m64real DC /3 实数比较:ST(0)-m64real,设置标志位,执行一次出栈操作 FCOMP REAL8 PTR [00812CD0]
FCOMP ST(i) D8 D8+i 实数比较:ST(0)-ST(i),设置标志位,执行一次出栈操作 FCOMP ST(2)
FCOMP D8 D9 实数比较:ST(0)-ST(1),设置标志位,执行一次出栈操作 FCOMP
FCOMI FCOMI ST, ST(i) DB F0+i 设置ZF,PF,CF,C1 实数比较:ST(0)-ST(i),设置标志位 FCOMI ST, ST(1)
FCOMIP FCOMIP ST, ST(i) DF F0+i 设置ZF,PF,CF,C1 实数比较:ST(0)-ST(i),设置标志位,执行一次出栈操作 FCOMIP ST, ST(1)
FUCOMI FUCOMI ST, ST(i) DB E8+i 设置ZF,PF,CF,C1 实数比较:ST(0)-ST(i),检查ordered值,设置标志位 FCOMIP ST, ST(1)
FUCOMIP FUCOMIP ST, ST(i) DF E8+i 设置ZF,PF,CF,C1 实数比较:ST(0)-ST(i),检查ordered值,设置标志位,执行一次出栈操作 FUCOMIP ST, ST(1)
FCOS FCOS D9 FF 设置C1,C2 余弦函数COS,ST(0)←cosine(ST(0)) FCOS
FDECSTP FDECSTP D9 F6 设置C1 (C0, C2, C3未定义) 将FPU的栈顶指针值减小1 FDECSTP
FDIV FDIV m32real D8 /6 设置C1 (C0, C2, C3未定义) 实数除法:ST(0)←ST(0)/m32real FDIV REAL4 PTR [00459AF0]
FDIV m64real DC /6 实数除法:ST(0)←ST(0)/m64real FDIV REAL8 PTR [00459AF0]
FDIV ST(0), ST(i) D8 F0+i 实数除法:ST(0)←ST(0)/ST(i) FDIV ST(0), ST(1)
FDIV ST(i), ST(0) DC F8+i 实数除法:ST(i)←ST(i)/ST(0) FDIV ST(1), ST(0)
FDIVP FDIVP ST(i), ST(0) DE F8+i 设置C1 (C0, C2, C3未定义) 实数除法:ST(i)←ST(i)/ST(0),执行一次出栈操作 FDIVP ST(1), ST(0)
FDIVP DE F9 实数除法:ST(1)←ST(1)/ST(0),执行一次出栈操作 FDIVP
FIDIV FIDIV m32int DA /6 设置C1 (C0, C2, C3未定义) 除以整数:ST(0)←ST(0)/m32int FIDIV DWORD PTR [00459AF0]
FIDIV m16int DE /6 除以整数:ST(0)←ST(0)/m16int FIDIV WORD PTR [00459AF0]
FDIVR FDIVR m32real D8 /7 设置C1 (C0, C2, C3未定义) 实数除法:ST(0)←m32real/ST(0) FDIVR REAL4 PTR [00459AF0]
FDIVR m64real DC /7 实数除法:ST(0)←m64real/ST(0) FDIVR REAL8 PTR [00459AF0]
FDIVR ST(0), ST(i) D8 F8+i 实数除法:ST(0)←ST(i)/ST(0) FDIVR ST(0), ST(1)
FDIVR ST(i), ST(0) DC F0+i 实数除法:ST(i)←ST(0)/ST(i) FDIVR ST(1), ST(0)
FDIVRP FDIVRP ST(i), ST(0) DE F0+i 设置C1 (C0, C2, C3未定义) 实数除法:ST(i)←ST(0)/ST(i),执行一次出栈操作 FDIVRP ST(1), ST(0)
FDIVRP DE F1 实数除法:ST(1)←ST(0)/ST(1),执行一次出栈操作 FDIVRP
FIDIVR FIDIVR m32int DA /7 设置C1 (C0, C2, C3未定义) 被整数除:ST(0)←m32int/ST(0) FIDIVR DWORD PTR [00459AF0]
FIDIVR m16int DE /7 被整数除:ST(0)←m16int/ST(0) FIDIVR WORD PTR [00459AF0]
FFREE FFREE ST(i) DD C0+i (C0, C1,C2, C3未定义) 将与ST(i)相对应的标志位设置为空,即TAG(i)←11B FFREE ST(1)
FICOM FICOM m16int DE /2 设置 C1,C0, C2, C3 和整数比较:ST(0)- m16int,设置标志 FICOM WORD PTR [00459AF0]
FICOM m32int DA /2 和整数比较:ST(0)- m32int,设置标志 FICOM DWORD PTR [00459AF0]
FICOMP FICOMP m16int DE /3 设置C1,C0, C2, C3 和整数比较:ST(0)- m16int,设置标志,执行一次出栈操作 FICOMP WORD PTR [00459AF0]
FICOMP m32int DA /3 和整数比较:ST(0)- m32int,设置标志,执行一次出栈操作 FICOMP DWORD PTR [00459AF0]
FILD FILD m16int DF /0 设置C1 (C0, C2, C3未定义) 将16位整数压栈,即装入ST(0) FILD WORD PTR [00459AF0]
FILD m32int DB /0 将32位整数压栈,即装入ST(0) FILD DWORD PTR [00459AF0]
FILD m64int DF /5 将64位整数压栈,即装入ST(0)  
FINCSTP FINCSTP D9 F7 设置C1 (C0, C2, C3未定义) 将FPU的栈顶指针值增大1 FINCSTP
FINIT FINIT 9B DB E3 设置C1 (C0, C2, C3未定义) 初始化FPU,检查非屏蔽浮点异常 FINIT
FNINIT FNINIT DB E3 设置C1 (C0, C2, C3未定义) 初始化FPU,不检查非屏蔽浮点异常 FNINIT
FIST FIST m16int DF /2 设置C1 (C0, C2, C3未定义) 将ST(0)以16位整数保存到m16int FIST WORD PTR [00459AF0]
FIST m32int DB /2 将ST(0)以32位整数保存到m32int FIST DWORD PTR [00459AF0]
FISTP FISTP m16int DF /3 设置C1 (C0, C2, C3未定义) 将ST(0)以16位整数保存到m16int,执行一次出栈操作 FISTP WORD PTR [00459AF0]
FISTP m32int DB /3 将ST(0)以32位整数保存到m32int,执行一次出栈操作 FISTP DWORD PTR [00459AF0]
FISTP m64int DF /7 将ST(0)以64位整数保存到m64int,执行一次出栈操作  
FLD FLD m32real D9 /0 设置C1 (C0, C2, C3未定义) 将32位实数压栈,即装入ST(0) FLD REAL4 PTR [00459AF0]
FLD m64real DD /0 将64位实数压栈,即装入ST(0) FLD REAL8 PTR [00459AF0]
FLD m80real DB /5 将80位实数压栈,即装入ST(0)  
FLD ST(i) D9 C0+i 将ST(i)压栈,即装入ST(0) FLD ST(7)
FLD1 FLD1 D9 E8 设置C1 (C0, C2, C3未定义) 将+1.0压栈,即装入ST(0) FLD1
FLDL2T FLDL2T D9 E9 设置C1 (C0, C2, C3未定义) 将log2(10)压栈,即装入ST(0) FLDL2T
FLDL2E FLDL2E D9 EA 设置C1 (C0, C2, C3未定义) 将log2(e)压栈,即装入ST(0) FLDL2E
FLDPI FLDPI D9 EB 设置C1 (C0, C2, C3未定义) 将pi压栈,即装入ST(0) FLDPI
FLDLG2 FLDLG2 D9 EC 设置C1 (C0, C2, C3未定义) 将log10(2)压栈,即装入ST(0) FLDLG2
FLDLN2 FLDLN2 D9 ED 设置C1 (C0, C2, C3未定义) 将loge(2)压栈,即装入ST(0) FLDLN2
FLDZ FLDZ D9 EE 设置C1 (C0, C2, C3未定义) 将+0.0压栈,即装入ST(0) FLDZ
FLDCW FLDCW m2byte D9 /5 C1, C0, C2, C3 未定义 从m2byte装入FPU控制字 FLDCW BYTE PTR [00459AF0]
FLDENV FLDENV m14/28byte D9 /4 C1, C0, C2, C3 未定义 从m14/28byte装入FPU环境 FLDENV BYTE PTR [00459AF0]
FMUL FMUL m32real D8 /1 设置C1 (C0, C2, C3未定义) 实数乘法:ST(0)←ST(0)*m32real FMUL REAL4 PTR [00459AF0]
FMUL m64real DC /1 实数乘法:ST(0)←ST(0)*m64real FMUL REAL8 PTR [00459AF0]
FMUL ST(0), ST(i) D8 C8+i 实数乘法:ST(0)←ST(0)*ST(i) FMUL ST(0), ST(1)
FMUL ST(i), ST(0) DC C8+i 实数乘法:ST(i)←ST(i)*ST(0) FMUL ST(1), ST(0)
FMULP FMULP ST(i), ST(0) DE C8+i 设置C1 (C0, C2, C3未定义) 实数乘法:ST(i)←ST(i)*ST(0),执行一次出栈操作 FMULP ST(1), ST(0)
FMULP DE C9 实数乘法:ST(1)←ST(1)*ST(0),执行一次出栈操作 FMULP
FIMUL FIMUL m32int DA /1 设置C1 (C0, C2, C3未定义) 乘以整数:ST(0)←m32int*ST(0) FIMUL DWORD PTR [00459AF0]
FIMUL m16int DE /1 乘以整数:ST(0)←m16int*ST(0) FIMUL WORD PTR [00459AF0]
FNOP FNOP D9 D0 C1, C0, C2, C3 未定义 空操作(等同于NOP) FNOP
FPATAN FPATAN D9 F3 设置C1 (C0, C2, C3未定义) 反正切函数arctan,ST(1)←arctan(ST(1)/ST(0)),执行一次出栈操作 FPATAN
FPREM FPREM D9 F8 设置C1,C0, C2, C3 取余数,ST(0)←ST(0) MOD ST(1) FPREM
FPREM1 FPREM1 D9 F5 设置C1,C0, C2, C3 取余数(使用IEEE标准),ST(0)←ST(0) MOD ST(1) FPREM1
FATAN FATAN D9 F2 设置C1,C2 (C0, C3未定义) 正切函数Tan,ST(0)←tangent(ST(0)),执行一次压栈1.0的操作 FATAN
FRNDINT FRNDINT D9 FC 设置C1 (C0,C2,C3未定义) 取整(四舍五入,当小数部分刚好等于0.5时:如果整数部分为偶数,则“舍”;如果整数部分为奇数,则“入”),ST(0)←Round(ST(0)) FRNDINT
FRSTOR FRSTOR m94/108byte DD /4 设置C0,C1,C2,C3 从m94/108byte装入FPU状态 FRSTOR BYTE PTR [00459AF0]
FSAVE FSAVE m94/108byte 9B DD /6 设置C0,C1,C2,C3 将FPU状态保存在m94/108byte中,检查非屏蔽浮点异常,然后初始化FPU FSAVE BYTE PTR [00459AF0]
FNSAVE FNSAVE m94/108byte 9B DD /6 设置C0,C1,C2,C3 将FPU状态保存在m94/108byte中,不检查非屏蔽浮点异常,然后初始化FPU FNSAVE BYTE PTR [00459AF0]
FSCALE FSCALE D9 FD 设置C1 (C0,C2,C3 未定义) ST(0)←ST(0)* 2^ST(1) FSCALE
FSIN FSIN D9 FE 设置C1,C2 (C0,C3 未定义) 正弦函数Sin,ST(0)←sine(ST(0)) FSIN
FSINCOS FSINCOS D9 FB 设置C1,C2 (C0,C3 未定义) SinCos函数: ST(0)←sine(ST(0)),PUSH cosine(ST(0)) FSINCOS
FSQRT FSQRT D9 FA 设置C1 (C0,C2, C3 未定义) 平方根函数: ST(0)←SQRT(ST(0)) FSQRT
FST FST m32real D9 /2 设置C1 (C0, C2, C3未定义) 将ST(0)复制到m32real FST REAL4 PTR [00459AF0]
FST m64real DD /2 将ST(0)复制到m64real FST REAL8 PTR [00459AF0]
FST ST(i) DD D0+i 将ST(0)复制到ST(i) FST ST(3)
FSTP FSTP m32real D9 /3 设置C1 (C0, C2, C3未定义) 将ST(0)复制到m32real,执行一次出栈操作 FSTP REAL4 PTR [00459AF0]
FSTP m64real DD /3 将ST(0)复制到m64real,执行一次出栈操作 FSTP REAL8 PTR [00459AF0]
FSTP m80real DB /7 将ST(0)复制到m80real,执行一次出栈操作  
FSTP ST(i) DD D8+i 将ST(0)复制到ST(i),执行一次出栈操作 FSTP ST(3)
FSTCW FSTCW m2byte 9B D9 /7 C0,C1,C2,C3 未定义 将FPU控制字保存到m2byte,检查非屏蔽浮点异常 FSTCW BYTE PTR [00459AF0]
FNSTCW FNSTCW m2byte 9B D9 /7 C0,C1,C2,C3 未定义 将FPU控制字保存到m2byte,不检查非屏蔽浮点异常 FNSTCW BYTE PTR [00459AF0]
FSTENV FSTENV m14/28byte 9B D9 /6 C0,C1,C2,C3 未定义 将FPU环境保存到m14/28byte,检查非屏蔽浮点异常,然后屏蔽所有浮点异常 FSTENV BYTE PTR [00459AF0]
FNSTENV FNSTENV m14/28byte D9 /6 C0,C1,C2,C3 未定义 将FPU环境字保存到m14/28byte,不检查非屏蔽浮点异常,然后屏蔽所有浮点异常 FNSTENV BYTE PTR [00459AF0]
FSTSW FSTSW m2byte 9B DD /7 C0,C1,C2,C3 未定义 将FPU状态字保存到m2byte,检查非屏蔽浮点异常 FSTSW BYTE PTR [00459AF0]
FSTSW AX 9B DF E0 将FPU状态字保存到AX,检查非屏蔽浮点异常 FSTSW AX
FNSTSW FNSTSW m2byte DD /7 C0,C1,C2,C3 未定义 将FPU状态字保存到m2byte,不检查非屏蔽浮点异常 FNSTSW BYTE PTR [00459AF0]
FNSTSW AX DF E0 将FPU状态字保存到AX,不检查非屏蔽浮点异常 FNSTSW AX
FSUB FSUB m32real D8 /4 设置C1 (C0, C2, C3未定义) 实数减法:ST(0)←ST(0)-m32real FSUB REAL4 PTR [00459AF0]
FSUB m64real DC /4 实数减法:ST(0)←ST(0)-m64real FSUB REAL8 PTR [00459AF0]
FSUB ST(0), ST(i) D8 E0-i 实数减法:ST(0)←ST(0)-ST(i) FSUB ST(0), ST(1)
FSUB ST(i), ST(0) DC E8-i 实数减法:ST(i)←ST(i)-ST(0) FSUB ST(1), ST(0)
FSUBP FSUBP ST(i), ST(0) DE E8-i 设置C1 (C0, C2, C3未定义) 先进行实数减法:ST(i)←ST(i)-ST(0),然后进行一次出栈操作 FSUBP ST(1), ST(0)
FSUBP DE E9 先进行实数减法:ST(1)←ST(1)-ST(0),然后进行一次出栈操作 FSUBP
FISUB FISUB m32int DA /4 设置C1 (C0, C2, C3未定义) 减整数:ST(0)←ST(0)-m32int FISUB DWORD PTR [00812CD0]
FISUB m16int DE /4 减整数:ST(0)←ST(0)-m16int FISUB WORD PTR [00812CD0]
FSUBR FSUBR m32real D8 /5 设置C1 (C0, C2, C3未定义) 实数减法:ST(0)←m32real-ST(0) FSUBR REAL4 PTR [00459AF0]
FSUBR m64real DC /5 实数减法:ST(0)←m64real-ST(0) FSUBR REAL8 PTR [00459AF0]
FSUBR ST(0), ST(i) D8 E8+i 实数减法:ST(0)←ST(i)-ST(0) FSUBR ST(0), ST(1)
FSUBR ST(i), ST(0) DC E0+i 实数减法:ST(i)←ST(0)-ST(i) FSUBR ST(1), ST(0)
FSUBRP FSUBRP ST(i), ST(0) DE E0+i 设置C1 (C0, C2, C3未定义) 实数减法:ST(i)←ST(0)-ST(i),执行一次出栈操作 FSUBRP ST(1), ST(0)
FSUBRP DE E1 实数减法:ST(1)←ST(0)-ST(1),执行一次出栈操作 FSUBRP
FISUBR FISUBR m32int DA /5 设置C1 (C0, C2, C3未定义) 被整数减:ST(0)←m32int-ST(0) FISUBR DWORD PTR [00459AF0]
FISUBR m16int DE /5 被整数减:ST(0)←m16int-ST(0) FISUBR WORD PTR [00459AF0]
FTST FTST D9 E4 设置C0,C1, C2, C3 零检测,将ST(0)和0.0相比较 FTST
FUCOM FUCOM ST(i) DD E0+i 设置C0,C1, C2, C3 比较ST(0)和ST(i) FUCOM ST(4)
FUCOM DD E1 比较ST(0)和ST(1) FUCOM
FUCOMP FUCOMP ST(i) DD E8+i 设置C0,C1, C2, C3 比较ST(0)和ST(i),执行一次出栈操作 FUCOMP ST(4)
FUCOMP DD E9 比较ST(0)和ST(1),执行一次出栈操作 FUCOMP
FUCOMPP FUCOMPP DD E8+i 设置C0,C1, C2, C3 比较ST(0)和ST(1),执行两次出栈操作 FUCOMPP
FWAIT FWAIT 9B C0,C1, C2, C3 未定义 等待,检查非屏蔽浮点异常 FWAIT
FXAM FXAM D9 E5 设置C0,C1, C2, C3 检查ST(0)中的数值类型 FXAM
FXCH FXCH ST(i) D9 C8+i 设置C1 (C0, C2, C3未定义) 交换ST(0)和ST(i)的内容 FXCH ST(4)
FXCH D9 C9 交换ST(0)和ST(1)的内容 FXCH
FXRSTOR FXRSTOR m512byte 0F AE /1 恢复所有标志位 由m512byte恢复寄存器x87 FPU, MMX, XMM, 和MXCSR的状态 FXRSTOR BYTE PTR [00459AF0]
FXSAVE FXSAVE m512byte 0F AE /0 不影响标志位 将寄存器x87 FPU, MMX, XMM, 和MXCSR的状态保存到m512byte FXSAVE BYTE PTR [00459AF0]
FXTRACT FXTRACT D9 F4 设置C1 (C0, C2, C3未定义) 将ST(0)中的数分成exponent和significand两部分,ST(0)←Exponent(ST(0)),PUSH Significand(ST(0)) FXTRACT
FYL2X FYL2X D9 F1 设置C1 (C0, C2, C3未定义) 计算:ST(1)←ST(1)*log2(ST(0)),执行一次出栈操作 FYL2X
FYL2XP1 FYL2XP1 D9 F9 设置C1 (C0, C2, C3未定义) 计算:ST(1) ←ST(1)*log2(ST(0) + 1.0),执行一次出栈操作 FYL2XP1
HLT HLT F4 不影响标志位 系统进入暂停状态 HLT
IDIV IDIV r/m8 F6 /7 AF CF OF PF SF ZF 未定义 有符号除法 IDIV BL ;AX除以BL,商在AL中,余数在AH中
IDIV r/m16 F7 /7 IDIV BX ;DX:AX除以BX,商在AX中,余数在DX中
IDIV r/m32 F7 /7 IDIV EBX;EDX:EAX除以BX,商在EAX中,余数在EDX中
IMUL IMUL r/m8 F6 /5 设置CF OF
(SF ZF AF PF未定义)
有符号乘法:AX←AL*r/m8 IMUL CL
IMUL r/m16 F7 /5 有符号乘法:DX:AX←AX*r/m16 IMUL CX
IMUL r/m32 F7 /5 有符号乘法:EDX:EAX←EAX*r/m32 IMUL ECX
IMUL r16, r/m16 0F AF /r 有符号乘法:r16←r16*r/m16 IMUL AX, BX
IMUL r32, r/m32 0F AF /r 有符号乘法:r32←r32*r/m32 IMUL EAX, EBX
IMUL r16,r/m16,imm8 6B /r ib 有符号乘法:r16←r/m16*imm8 IMUL AX, BX, 39
IMUL r32,r/m32,imm8 6B /r ib 有符号乘法:r32←r/m32*imm8 IMUL EAX, EBX, 39
IMUL r16, imm8 6B /r ib 有符号乘法:r16←r16*imm8 IMUL AX, 37
IMUL r32, imm8 6B /r ib 有符号乘法:r32←r32*imm8 IMUL EAX, 37
IMUL r16,r/m16,imm16 69 /r iw 有符号乘法:r16←r/m16*imm16 IMUL AX, BX, 387E
IMUL r32,r/m32,imm32 69 /r id 有符号乘法:r32←r/m32*imm32 IMUL EAX, EBX, 006387EA
IMUL r16, imm16 69 /r iw 有符号乘法:r16←r16*imm16 IMUL AX, 387E
IMUL r32, imm32 69 /r id 有符号乘法:r32←r32*imm32 IMUL EAX, 006387EA
IN IN AL,imm8 E4 ib 不影响标志位 从imm8指定的端口读字节(BYTE)到AL IN AL,E0
IN AX,imm8 E5 ib 从imm8指定的端口读字节(BYTE)到AX IN AX,E0
IN EAX,imm8 E5 ib 从imm8指定的端口读字节(BYTE)到EAX IN EAX,E0
IN AL,DX EC 从DX指定的端口读字节(BYTE)到AL IN AL,DX
IN AX,DX ED 从DX指定的端口读字(WORD)到AX IN AX,DX
IN EAX,DX ED 从DX指定的端口读双字(DWORD)到EAX IN EAX,DX
INC INC r/m8 FE /0 设置 OF SF ZF AF PF 目标加1 INC BYTE PTR [00459AF0]
INC r/m16 FF /0 INC WORD PTR [00459AF0]
INC r/m32 FF /0 INC DWORD PTR [00459AF0]
INC r16 40+rw INC DX
INC r32 40+rd INC EDX
INS INS m8, DX 6C 不影响标志位 从DX指定的端口读字节(BYTE)到ES:(E)DI  
INS m16, DX 6D 从DX指定的端口读字(WORD)到ES:(E)DI  
INS m32, DX 6D 从DX指定的端口读双字(DWORD)到ES:(E)DI  
INSB INSB 6C 不影响标志位 从DX指定的端口读字节(BYTE)到ES:(E)DI INSB
INSW INSW 6D 不影响标志位 从DX指定的端口读字(WORD)到ES:(E)DI INSW
INSD INSD 6D 不影响标志位 从DX指定的端口读双字(DWORD)到ES:(E)DI INSD
INT 3 INT 3 CC 标志位被保存压栈 调试陷阱中断 INT 3
INT imm8 INT imm8 CD ib 标志位被保存压栈 中断功能调用,imm8是中断向量号 INT 21
INTO INTO CE 标志位被保存压栈 溢出中断,条件:OV=1,4号中断功能调用 INTO
INVD INVD 0F 08 不影响标志位 使内部CACHES无效,初始化外部CACHES INVD
INVLPG INVLPG 0F 01/7 不影响标志位 使TLB项无效 INVLPG [EBX]
IRET IRET CF 恢复被压栈的标志位 中断返回(16位) IRET
IRETD IRETD CF 恢复被压栈的标志位 中断返回(32位) IRETD
Jcc JA rel8 77 cb 高于(CF=0 and ZF=0) 条件转移指令  
JAE rel8 73 cb 高于等于(CF=0)  
JB rel8 72 cb 低于(CF=1)  
JBE rel8 76 cb 低于等于(CF=1 or ZF=1)  
JC rel8 72 cb 有进位(CF=1)  
JCXZ rel8 E3 cb CX=0则跳  
JECXZ rel8 E3 cb ECX=0则跳  
JE rel8 74 cb 等于(ZF=1)  
JG rel8 7F cb 大于(ZF=0 and SF=OF)  
JGE rel8 7D cb 大于等于(SF=OF)  
JL rel8 7C cb 小于(SF<>OF)  
JLE rel8 7E cb 小于等于(ZF=1 or SF<>OF)  
JNA rel8 76 cb 不高于(CF=1 or ZF=1)  
JNAE rel8 72 cb 不高等于(CF=1)  
JNB rel8 73 cb 不低于(CF=0)  
JNBE rel8 77 cb 不低等于(CF=0 and ZF=0)  
JNC rel8 73 cb 无进位(CF=0)  
JNE rel8 75 cb 不等于(ZF=0)  
JNG rel8 7E cb 不大于(ZF=1 or SF<>OF)  
JNGE rel8 7C cb 不大等于(SF<>OF)  
JNL rel8 7D cb 不小于(SF=OF)  
JNLE rel8 7F cb 不小等于(ZF=0 and SF=OF)  
JNO rel8 71 cb 无溢出(OF=0)  
JNP rel8 7B cb 非偶数(PF=0)  
JNS rel8 79 cb 非负数(SF=0)  
JNZ rel8 75 cb 非零(ZF=0)  
JO rel8 70 cb 溢出(OF=1)  
JP rel8 7A cb 偶数(PF=1)  
JPE rel8 7A cb 偶数(PF=1)  
JPO rel8 7B cb 奇数(PF=0)  
JS rel8 78 cb 负数(SF=1)  
JZ rel8 74 cb 为零(ZF=1)  
JA rel16/32 0F 87 cw/cd 高于(CF=0 and ZF=0)  
JAE rel16/32 0F 83 cw/cd 高于等于(CF=0)  
JB rel16/32 0F 82 cw/cd 低于(CF=1)  
JBE rel16/32 0F 86 cw/cd 低于等于(CF=1 or ZF=1)  
JC rel16/32 0F 82 cw/cd 有进位(CF=1)  
JE rel16/32 0F 84 cw/cd 等于(ZF=1)  
JZ rel16/32 0F 84 cw/cd 为零(ZF=1)  
JG rel16/32 0F 8F cw/cd 大于(ZF=0 and SF=OF)  
JMP JMP rel8 EB cb 不影响标志位 无条件转移指令  
JMP rel16 E9 cw  
JMP rel32 E9 cd  
JMP r/m16 FF /4  
JMP r/m32 FF /4  
JMP ptr16:16 EA cd  
JMP ptr16:32 EA cp  
JMP m16:16 FF /5  
JMP m16:32 FF /5  
LAHF LAHF 9F 不影响标志位 将标志寄存器的低字节送入AH,格式为:AH=(SF:ZF:0:AF:0:PF:1:CF) LAHF
LAR LAR r16,r/m16 0F 02 /r 设置ZF 将源操作数指定的选择子访问权送目标寄存器 LAR AX,BX
LAR r32,r/m32 LAR EAX,EBX
LDS LDS r16,m16:16 C5 /r 不影响标志位 从内存位置m16:16装入地址值DS:r16  
LDS r32,m16:32 从内存位置m16:32装入地址值DS:r32  
LSS LSS r16,m16:16 0F B2 /r 不影响标志位 从内存位置m16:16装入地址值SS:r16  
LSS r32,m16:32 从内存位置m16:32装入地址值SS:r32  
LES LES r16,m16:16 C4 /r 不影响标志位 从内存位置m16:16装入地址值ES:r16  
LES r32,m16:32 从内存位置m16:32装入地址值ES:r32  
LFS LFS r16,m16:16 0F B4 /r 不影响标志位 从内存位置m16:16装入地址值FS:r16  
LFS r32,m16:32 从内存位置m16:32装入地址值FS:r32  
LGS LGS r16,m16:16 0F B5 /r 不影响标志位 从内存位置m16:16装入地址值GS:r16  
LGS r32,m16:32 从内存位置m16:32装入地址值GS:r32  
LEA LEA r16,m 8D /r 不影响标志位 将源操作数的有效地址送r16  
LEA r32,m 将源操作数的有效地址送r32  
LEAVE LEAVE C9 不影响标志位 子过程返回释放堆栈框架 LEAVE
LGDT LGDT m16&32 0F 01 /2 不影响标志位 将内存m16&32处的值装入全局描述符表寄存器 LGDT [EBP]
LIDT LIDT m16&32 0F 01 /3 不影响标志位 将内存m16&32处的值装入中断描述符表寄存器 LIDT [SI]
LLDT LLDT r/m16 0F 00 /2 不影响标志位 将r/m16处的值装入局部描述符表寄存器 LLDT BX
LMSW LMSW r/m16 0F 01 /6 不影响标志位 将r/m16处的值装入机器状态字 LMSW [BP]
LOCK LOCK F0 不影响标志位 总线锁定 LOCK
LODS LODS m8 AC 不影响标志位 将地址DS:(E)SI的值装入AL  
LODS m16 AD 将地址DS:(E)SI的值装入AX  
LODS m32 AD 将地址DS:(E)SI的值装入EAX  
LODSB LODSB AC 不影响标志位 将地址DS:(E)SI的值装入AL LODSB
LODSW LODSW AD 不影响标志位 将地址DS:(E)SI的值装入AX LODSW
LODSD LODSD AD 不影响标志位 将地址DS:(E)SI的值装入EAX LODSD
LOOP LOOP rel8 E2 cb 不影响标志位 条件循环指令,循环条件:CX/ECX != 0  
LOOPE LOOPE rel8 E1 cb 不影响标志位 条件循环指令,循环条件:CX/ECX != 0 且 ZF=1  
LOOPZ LOOPZ rel8 E1 cb 不影响标志位 条件循环指令,循环条件:CX/ECX != 0 且 ZF=1  
LOOPNE LOOPNE rel8 E1 cb 不影响标志位 条件循环指令,循环条件:CX/ECX != 0 且 ZF=0  
LOOPNZ LOOPNZ rel8 E1 cb 不影响标志位 条件循环指令,循环条件:CX/ECX != 0 且 ZF=0  
LSL LSL r16,r/m16 0F 03 /r 设置ZF 装入选择子对应的描述符的段界限 LSL AX,BX
LSL r32,r/m32 LSL EAX,EBX
LTR LTR r/m16 0F 00 /3 不影响标志位 装入任务寄存器 LTR AX
MOV MOV r/m8,r8 88 /r 不影响标志位 传送指令 MOV [00459AF0],AL
MOV r/m16,r16 89 /r MOV [00459AF0],AX
MOV r/m32,r32 89 /r MOV [00459AF0],EAX
MOV r8,r/m8 8A /r MOV AL,[00459AF0]
MOV r16,r/m16 8B /r MOV AX,[00459AF0]
MOV r32,r/m32 8B /r MOV EAX,[00459AF0]
MOV r/m16,Sreg 8C /r MOV AX,ES
MOV Sreg,r/m16 8E /r MOV ES,AX
MOV AL,moffs8 A0 MOV AL,ES:[459A]
MOV AX,moffs16 A1 MOV AX,ES:[459A]
MOV EAX,moffs32 A1 MOV EAX,ES:[00459AF0]
MOV moffs8,AL A2 MOV ES:[459A],AL
MOV moffs16,AX A3 MOV ES:[459A],AX
MOV moffs32,EAX A3 MOV ES:[00459AF0],EAX
MOV r8,imm8 B0+rb MOV AL,F0
MOV r16,imm16 B8+rw MOV AX,9AF0
MOV r32,imm32 B8+rd MOV EAX,00459AF0
MOV r/m8,imm8 C6 /0 MOV BYTE PTR [00459AF0],F0
MOV r/m16,imm16 C7 /0 MOV WORD PTR [00459AF0],9AF0
MOV r/m32,imm32 C7 /0 MOV DWORD PTR [00459AF0],00459AF0
MOV MOV CR0,r32 0F 22 /r 不影响标志位 控制寄存器传送指令 MOV CR0,EAX
MOV CR2,r32 0F 22 /r MOV CR2,EAX
MOV CR3,r32 0F 22 /r MOV CR3,EAX
MOV CR4,r32 0F 22 /r MOV CR4,EAX
MOV r32,CR0 0F 20 /r MOV EAX,CR0
MOV r32,CR2 0F 20 /r MOV EAX,CR2
MOV r32,CR3 0F 20 /r MOV EAX,CR3
MOV r32,CR4 0F 20 /r MOV EAX,CR4
MOV MOV r32, DR0-DR7 0F 21 /r 不影响标志位 调试寄存器传送指令 MOV EAX,DR0
MOV DR0-DR7,r32 0F 23 /r MOV DR0,EAX
MOVD MOVD mm, r/m32 0F 6E /r 不影响标志位 双字传送指令  
MOVD r/m32, mm 0F 7E /r  
MOVD xmm, r/m32 66 0F 6E /r  
MOVD r/m32, xmm 66 0F 7E /r  
MOVQ MOVQ mm, r/m64 0F 6F /r 不影响标志位 八字节传送指令  
MOVQ mm/m64, mm 0F 7F /r  
MOVQ xmm1, xmm2/m64 F3 0F 7E  
MOVQ xmm2/m64, xmm1 66 0F D6  
MOVS MOVS m8, m8 A4 不影响标志位 字符串传送,每次传送1个字节 MOVS STRING1, STRING2 ;源串DS:(E)SI,目的串:ES:(E)DI
MOVS m16, m16 A5 字符串传送,每次传送1个字 MOVS STRING1, STRING2 ;源串DS:(E)SI,目的串:ES:(E)DI
MOVS m32, m32 A5 字符串传送,每次传送1个双字 MOVS STRING1, STRING2 ;源串DS:(E)SI,目的串:ES:(E)DI (386+)
MOVSB A4 字符串传送,每次传送1个字节 MOVSB ;源串DS:(E)SI,目的串:ES:(E)DI
MOVSW A5 字符串传送,每次传送1个字 MOVSW ;源串DS:(E)SI,目的串:ES:(E)DI
MOVSD A5 字符串传送,每次传送1个双字 MOVSD ;源串DS:(E)SI,目的串:ES:(E)DI (386+)
MOVSX MOVSX r16,r/m8 0F BE /r 不影响标志位 带符号扩展传送指令 MOVSX AX, BL
MOVSX r32,r/m8 0F BE /r MOVSX EAX,BL
MOVSX r32,r/m16 0F BF /r MOVSX EAX,BX
MOVZX MOVZX r16,r/m8 0F B6 /r 不影响标志位 零扩展传送指令 MOVZX AX, BL
MOVZX r32,r/m8 0F B6 /r MOVZX EAX,BL
MOVZX r32,r/m16 0F B7 /r MOVZX EAX,BX
MUL MUL r/m8 F6 /4 设置CF OF
(SF ZF AF PF未定义)
无符号乘法:AX←AL*r/m8 MUL CL
MUL r/m16 F7 /4 无符号乘法:DX:AX←AX*r/m16 MUL CX
MUL r/m32 F7 /4 无符号乘法:EDX:EAX←EAX*r/m32 MUL ECX
NEG NEG r/m8 F6 /3 设置CF OF SF ZF AF PF 取负:r/m8=-r/m8 NEG CL
NEG r/m16 F7 /3 取负:r/m16=-r/m16 NEG CX
NEG r/m32 F7 /3 取负:r/m32=-r/m32 NEG ECX
NOP NOP 90 不影响标志位 空操作 NOP
NOT NOT r/m8 F6 /2 设置CF OF SF ZF AF PF 按位取反:r/m8=NOT r/m8 NOT CL
NOT r/m16 F7 /2 按位取反:r/m16=NOT r/m16 NOT CX
NOT r/m32 F7 /2 按位取反:r/m32=NOT r/m32 NOT ECX
OR OR AL, imm8 0C ib 设置 CF OF PF SF ZF 逻辑或 OR AL, 1F
OR AX, imm16 0D iw OR AX, 4F80
OR EAX, imm32 0D id OR EAX, 00004F80
OR r/m8, imm8 80 /1 ib OR BYTE PTR [006387EA], 39
OR r/m16,imm16 81 /1 iw OR WORD PTR [006387EA], 1039
OR r/m32,imm32 81 /1 id OR DWORD PTR [006387EA], 00001039
OR r/m16,imm8 83 /1 ib OR WORD PTR [006387EA], 39
OR r/m32,imm8 83 /1 ib OR DWORD PTR [006387EA], 39
OR r/m8,r8 08 /r OR [006387EA], AL
OR r/m16,r16 09 /r OR [006387EA], AX
OR r/m32,r32 09 /r OR [006387EA], EAX
OR r8,r/m8 0A /r OR AL, [006387EA]
OR r16,r/m16 0B /r OR AX, [006387EA]
OR r32,r/m32 0B /r OR EAX, [006387EA]
OUT OUT imm8,AL E6 ib 不影响标志位 将AL输出到imm8指定的端口 OUT E0,AL
OUT imm8,AX E7 ib 将AX输出到imm8指定的端口 OUT E0,AX
OUT imm8,EAX E7 ib 将EAX输出到imm8指定的端口 OUT E0,EAX
OUT AL,DX EE 将AL输出到DX指定的端口 OUT DX,AL
OUT AX,DX EF 将AX输出到DX指定的端口 OUT DX,AX
OUT EAX,DX EF 将EAX输出到DX指定的端口 OUT DX,EAX
OUTS OUTS DX,m8 6E 不影响标志位 将DS:(E)SI处的字节输出到DX指定的端口  
OUTS DX,m16 6F 将DS:(E)SI处的字输出到DX指定的端口  
OUTS DX,m32 6F 将DS:(E)SI处的双字输出到DX指定的端口  
OUTSB OUTSB 6E 不影响标志位 将DS:(E)SI处的字节输出到DX指定的端口 OUTSB
OUTSW OUTSW 6F 不影响标志位 将DS:(E)SI处的字输出到DX指定的端口 OUTSW
OUTSD OUTSD 6F 不影响标志位 将DS:(E)SI处的双字输出到DX指定的端口 OUTSD
PACKSSWB PACKSSWB mm1, mm2/m64 0F 63 /r 不影响标志位 紧缩带符号字到字节,溢出取饱和值  
PACKSSWB xmm1,xmm2/m128 66 0F 63 /r PACKSSWB XMM0,XMM1
PACKSSDW PACKSSDW mm1, mm2/m64 0F 6B /r 不影响标志位 紧缩带符号双字到字,溢出取饱和值  
PACKSSDW xmm1,xmm2/m128 66 0F 6B /r PACKSSDW XMM0,XMM1
PACKUSWB PACKUSWB mm1, mm2/m64 0F 67 /r 不影响标志位 紧缩无符号字到字节,溢出取饱和值  
PACKUSWB xmm1,xmm2/m128 66 0F 67 /r PACKUSWB XMM0,XMM1
PADDB PADDB mm, mm/m64 0F FC /r 不影响标志位 紧缩字节相加,溢出则回绕  
PADDB xmm1,xmm2/m128 66 0F FC /r PADDB XMM6,XMM7
PADDW PADDW mm, mm/m64 0F FD /r 不影响标志位 紧缩字相加,溢出则回绕  
PADDW xmm1,xmm2/m128 66 0F FD /r PADDW XMM6,XMM7
PADDD PADDD mm, mm/m64 0F FE /r 不影响标志位 紧缩双字相加,溢出则回绕  
PADDD xmm1,xmm2/m128 66 0F FE /r PADDD XMM6,XMM7
PADDQ PADDQ mm1, mm2/m64 0F D4 /r 不影响标志位 紧缩四字相加,溢出则回绕  
PADDQ xmm1,xmm2/m128 66 0F D4 /r PADDQ XMM6,XMM7
PADDSB PADDSB mm, mm/m64 0F EC /r 不影响标志位 带符号紧缩字节相加,溢出取饱和值  
PADDSB xmm1,xmm2/m128 66 0F EC /r PADDSB XMM6,XMM7
PADDSW PADDSW mm, mm/m64 0F ED /r 不影响标志位 带符号紧缩字相加,溢出取饱和值  
PADDSW xmm1,xmm2/m128 66 0F ED /r PADDSW XMM6,XMM7
PADDUSB PADDUSB mm, mm/m64 0F DC /r 不影响标志位 无符号紧缩字节相加,溢出取饱和值  
PADDUSB xmm1,xmm2/m128 66 0F DC /r PADDUSB XMM0,XMM1
PADDUSW PADDUSW mm, mm/m64 0F DD /r 不影响标志位 无符号紧缩字相加,溢出取饱和值  
PADDUSW xmm1,xmm2/m128 66 0F DD /r PADDUSW XMM1,XMM2
PAND PAND mm, mm/m64 0F DB /r 不影响标志位 逻辑与操作  
PAND xmm1,xmm2/m128 66 0F DB /r PAND XMM4,XMM1
PANDN PANDN mm, mm/m64 0F DF /r 不影响标志位 求反后与操作:DEST ←(NOT DEST) AND SRC  
PANDN xmm1,xmm2/m128 66 0F DF /r PANDN XMM4,XMM1
PAUSE PAUSE F3 90 不影响标志位 改善处理器的“spin-wait loop”性能 PAUSE
PAVGB PAVGB mm, mm/m64 0F E0 /r 不影响标志位 取紧缩无符号字节的平均值(四舍五入)  
PAVGB xmm1,xmm2/m128 0F E0 /r PAVGB XMM4,XMM1
PAVGW PAVGW mm, mm/m64 0F E0 /r 不影响标志位 取紧缩无符号字的平均值(四舍五入)  
PAVGW xmm1,xmm2/m128 0F E0 /r PAVGW XMM4,XMM1
PCMPEQB PCMPEQB mm, mm/m64 0F 74 /r 不影响标志位 紧缩字节相等比较  
PCMPEQB xmm1,xmm2/m128 66 0F 74 /r PCMPEQB XMM4,XMM1
PCMPEQW PCMPEQW mm, mm/m64 0F 75 /r 不影响标志位 紧缩字相等比较  
PCMPEQW xmm1,xmm2/m128 66 0F 75 /r PCMPEQW XMM4,XMM1
PCMPEQD PCMPEQD mm, mm/m64 0F 76 /r 不影响标志位 紧缩双字相等比较  
PCMPEQD xmm1,xmm2/m128 66 0F 76 /r PCMPEQD XMM4,XMM1
PCMPGTB PCMPGTB mm, mm/m64 0F 64 /r 不影响标志位 带符号紧缩字节大于比较  
PCMPGTB xmm1,xmm2/m128 66 0F 64 /r PCMPGTB XMM4,XMM1
PCMPGTW PCMPGTW mm, mm/m64 0F 65 /r 不影响标志位 带符号紧缩字大于比较  
PCMPGTW xmm1,xmm2/m128 66 0F 65 /r PCMPGTW XMM4,XMM1
PCMPGTD PCMPGTD mm, mm/m64 0F 66 /r 不影响标志位 带符号紧缩双字大于比较  
PCMPGTD xmm1,xmm2/m128 66 0F 66 /r PCMPGTD XMM4,XMM1
PMADDWD PMADDWD mm, mm/m64 0F F5 /r 不影响标志位 紧缩乘和加操作  
PMADDWD xmm1,xmm2/m128 66 0F F5 /r PMADDWD XMM4,XMM1
PMAXSW PMAXSW mm1, mm2/m64 0F EE /r 不影响标志位 有符号字比较,返回最大值  
PMAXSW xmm1,xmm2/m128 66 0F EE /r PMAXSW XMM4,XMM1
PMAXUB PMAXUB mm1, mm2/m64 0F DE /r 不影响标志位 无符号字比较,返回最大值  
PMAXUB xmm1,xmm2/m128 66 0F DE /r PMAXUB XMM4,XMM1
PMINSW PMINSW mm1, mm2/m64 0F EA /r 不影响标志位 有符号字比较,返回最小值  
PMINSW xmm1,xmm2/m128 66 0F EA /r PMINSW XMM4,XMM1
PMINUB PMINUB mm1, mm2/m64 0F DA /r 不影响标志位 无符号字比较,返回最小值  
PMINUB xmm1,xmm2/m128 66 0F DA /r PMINUB XMM4,XMM1
PMULHUW PMULHUW mm1, mm2/m64 0F E4 /r 不影响标志位 紧缩无符号字相乘,存高位  
PMULHUW xmm1,xmm2/m128 66 0F E4 /r PMULHUW XMM4,XMM1
PMULHW PMULHW mm1, mm2/m64 0F E5 /r 不影响标志位 紧缩有符号字相乘,存高位  
PMULHW xmm1,xmm2/m128 66 0F E5 /r PMULHW XMM4,XMM1
PMULLW PMULLW mm1, mm2/m64 0F D5 /r 不影响标志位 紧缩有符号字相乘,存低位  
PMULLW xmm1,xmm2/m128 66 0F D5 /r PMULLW XMM4,XMM1
PMULUDQ PMULUDQ mm1, mm2/m64 0F F4 /r 不影响标志位 无符号双字相乘,存四字  
PMULUDQ xmm1,xmm2/m128 66 OF F4 /r PMULUDQ XMM4,XMM1
POP POP r/m16 8F /0 不影响标志位 16位数据出栈 POP WORD PTR [006387EA]
POP r/m32 8F /0 32位数据出栈 POP DWORD PTR [006387EA]
POP r16 58+rw 16位数据出栈到寄存器 POP AX
POP r32 58+rd 32位数据出栈到寄存器 POP EAX
POP DS 1F 数据出栈到寄存器DS POP DS
POP ES 07 数据出栈到寄存器ES POP ES
POP SS 17 数据出栈到寄存器SS POP SS
POP FS 0F A1 数据出栈到寄存器FS POP FS
POP GS 0F A9 32位数据出栈到寄存器GS POP GS
POPA POPA 61 不影响标志位 从堆栈中弹出全部16位通用寄存器:DI, SI, BP, BX, DX, CX, AX POPA
POPAD POPAD 61 不影响标志位 从堆栈中弹出全部32位通用寄存器:EDI, ESI, EBP, EBX, EDX, ECX, EAX POPAD
POPF POPF 9D 设置所有标志位 从堆栈中弹出16位标志寄存器 POPF
POPFD POPFD 9D 设置所有标志位 从堆栈中弹出32位标志寄存器 POPFD
POR POR mm, mm/m64 0F EB /r 不影响标志位 逻辑或操作  
POR xmm1,xmm2/m128 66 0F EB /r POR XMM4,XMM1
PSLLD PSLLD mm, mm/m64 0F F2 /r 不影响标志位 紧缩双字逻辑左移  
PSLLD xmm1,xmm2/m128 66 0F F2 /r PSLLD XMM4,XMM1
PSLLD mm, imm8 0F 72 /6 ib  
PSLLD xmm1, imm8 66 0F 72 /6 ib  
PSLLQ PSLLQ mm, mm/m64 0F F3 /r 不影响标志位 紧缩四字逻辑左移  
PSLLQ xmm1,xmm2/m128 66 0F F3 /r PSLLQ XMM4,XMM1
PSLLQ mm, imm8 0F 73 /6 ib  
PSLLQ xmm1, imm8 66 0F 73 /6 ib  
PSLLW PSLLW mm, mm/m64 0F F1 /r 不影响标志位 紧缩字逻辑左移  
PSLLW xmm1,xmm2/m128 66 0F F1 /r PSLLW XMM4,XMM1
PSLLW mm, imm8 0F 71 /6 ib  
PSLLW xmm1, imm8 66 0F 71 /6 ib  
PSRAD PSRAD mm, mm/m64 0F E2 /r 不影响标志位 紧缩双字算术右移  
PSRAD xmm1,xmm2/m128 66 0F E2 /r PSRAD XMM4,XMM1
PSRAD mm, imm8 0F 72 /4 ib  
PSRAD xmm1, imm8 66 0F 72 /4 ib  
PSRAW PSRAW mm, mm/m64 0F E1 /r 不影响标志位 紧缩字算术右移  
PSRAW xmm1,xmm2/m128 66 0F E1 /r PSRAW XMM4,XMM1
PSRAW mm, imm8 0F 71 /4 ib  
PSRAW xmm1, imm8 66 0F 71 /4 ib  
PSRLD PSRLD mm, mm/m64 0F D2 /r 不影响标志位 紧缩双字逻辑右移  
PSRLD xmm1,xmm2/m128 66 0F D2 /r PSRLD XMM4,XMM1
PSRLD mm, imm8 0F 72 /2 ib  
PSRLD xmm1, imm8 66 0F 72 /2 ib  
PSRLQ PSRLQ mm, mm/m64 0F D3 /r 不影响标志位 紧缩四字逻辑右移  
PSRLQ xmm1,xmm2/m128 66 0F D3 /r PSRLQ XMM4,XMM1
PSRLQ mm, imm8 0F 73 /2 ib  
PSRLQ xmm1, imm8 66 0F 73 /2 ib  
PSRLW PSRLW mm, mm/m64 0F D1 /r 不影响标志位 紧缩字逻辑右移  
PSRLW xmm1,xmm2/m128 66 0F D1 /r PSRLW XMM4,XMM1
PSRLW mm, imm8 0F 71 /2 ib  
PSRLW xmm1, imm8 66 0F 71 /2 ib  
PSUBB PSUBB mm, mm/m64 0F F8 /r 不影响标志位 紧缩字节减法,溢出则回绕  
PSUBB xmm1,xmm2/m128 66 0F F8 /r PSUBB XMM6,XMM7
PSUBW PSUBW mm, mm/m64 0F F9 /r 不影响标志位 紧缩字减法,溢出则回绕  
PSUBW xmm1,xmm2/m128 66 0F F9 /r PSUBW XMM6,XMM7
PSUBD PSUBD mm, mm/m64 0F FA /r 不影响标志位 紧缩双字减法,溢出则回绕  
PSUBD xmm1,xmm2/m128 66 0F FA /r PSUBD XMM6,XMM7
PSUBQ PSUBQ mm1, mm2/m64 0F FB /r 不影响标志位 紧缩四字减法,溢出则回绕  
PSUBQ xmm1,xmm2/m128 66 0F FB /r PSUBQ XMM6,XMM7
PSUBSB PSUBSB mm, mm/m64 0F E8 /r 不影响标志位 带符号紧缩字节减法,溢出取饱和值  
PSUBSB xmm1,xmm2/m128 66 0F E8 /r PSUBSB XMM6,XMM7
PSUBSW PSUBSW mm, mm/m64 0F E9 /r 不影响标志位 带符号紧缩字减法,溢出取饱和值  
PSUBSW xmm1,xmm2/m128 66 0F E9 /r PSUBSW XMM6,XMM7
PSUBUSB PSUBUSB mm, mm/m64 0F D8 /r 不影响标志位 无符号紧缩字节减法,溢出取饱和值  
PSUBUSB xmm1,xmm2/m128 66 0F D8 /r PSUBUSB XMM6,XMM7
PSUBUSW PSUBUSW mm, mm/m64 0F D9 /r 不影响标志位 无符号紧缩字减法,溢出取饱和值  
PSUBUSW xmm1,xmm2/m128 66 0F D9 /r PSUBUSW XMM6,XMM7
PUNPCKHBW PUNPCKHBW mm, mm/m64 0F 68 /r 不影响标志位 反紧缩高位,字节到字  
PUNPCKHBW xmm1,xmm2/m128 66 0F 68 /r PUNPCKHBW XMM6,XMM7
PUNPCKHWD PUNPCKHWD mm, mm/m64 0F 69 /r 不影响标志位 反紧缩高位,字到双字  
PUNPCKHWD xmm1,xmm2/m128 66 0F 69 /r PUNPCKHWD XMM6,XMM7
PUNPCKHDQ PUNPCKHDQ mm1, mm2/m64 0F 6A /r 不影响标志位 反紧缩高位,双字到四字  
PUNPCKHDQ xmm1,xmm2/m128 66 0F 6A /r PUNPCKHDQ XMM6,XMM7
PUNPCKHQDQ PUNPCKHQDQ xmm1,xmm2/m128 66 0F 6D /r 不影响标志位 反紧缩高位,四字到八字  
PUNPCKLBW PUNPCKLBW mm, mm/m64 0F 60 /r 不影响标志位 反紧缩低位,字节到字  
PUNPCKLBW xmm1,xmm2/m128 66 0F 60 /r PUNPCKLBW XMM6,XMM7
PUNPCKLWD PUNPCKLWD mm, mm/m64 0F 61 /r 不影响标志位 反紧缩低位,字到双字  
PUNPCKLWD xmm1,xmm2/m128 66 0F 61 /r PUNPCKLWD XMM6,XMM7
PUNPCKLDQ PUNPCKLDQ mm1, mm2/m64 0F 62 /r 不影响标志位 反紧缩低位,双字到四字  
PUNPCKLDQ xmm1,xmm2/m128 66 0F 62 /r PUNPCKLDQ XMM6,XMM7
PUNPCKLQDQ PUNPCKLQDQ xmm1, xmm2/m128 66 0F 6C /r 不影响标志位 反紧缩低位,四字到八字  
PUSH PUSH r/m16 FF /6 不影响标志位 16位数据压栈 PUSH WORD PTR [006387EA]
PUSH r/m32 FF /6 32位数据压栈 PUSH DWORD PTR [006387EA]
PUSH r16 50+rw 16位寄存器数据压栈 PUSH AX
PUSH r32 50+rd 32位寄存器数据压栈 PUSH EAX
PUSH imm8 6A 8位立即数据压栈 PUSH EA
PUSH imm16 68 16位立即数据压栈 PUSH 87EA
PUSH imm32 58 32位立即数据压栈 PUSH 006387EA
PUSH CS 0E 寄存器CS数据压栈 PUSH CS
PUSH SS 16 寄存器SS数据压栈 PUSH SS
PUSH DS 1E 寄存器DS数据压栈 PUSH DS
PUSH ES 06 寄存器ES数据压栈 PUSH ES
PUSH FS 0F A0 寄存器FS数据压栈 PUSH FS
PUSH GS 0F A8 寄存器GS数据压栈 PUSH GS
PUSHA PUSHA 60 不影响标志位 压栈全部16位通用寄存器:AX, CX, DX, BX, SP, BP, SI, DI PUSHA
PUSHAD PUSHAD 60 不影响标志位 压栈全部32位通用寄存器:EAX, ECX, EDX, EBX, ESP, EBP, ESI, EDI PUSHAD
PUSHF PUSHF 9C 设置所有标志位 压栈16位标志寄存器 PUSHF
PUSHFD PUSHFD 9C 设置所有标志位 压栈32位标志寄存器 PUSHFD
PXOR PXOR mm, mm/m64 0F EF /r 不影响标志位 逻辑异或操作  
PXOR xmm1,xmm2/m128 66 0F EF /r PXOR XMM6,XMM7
RCL RCL r/m8, 1 D0 /2 CF(或OF)被改变 带进位循环左移1次 RCL AL,1
RCL r/m8, CL D2 /2 带进位循环左移CL次 RCL AL,CL
RCL r/m8, imm8 C0 /2 ib 带进位循环左移imm8次 RCL AL,03
RCL r/m16, 1 D1 /2 带进位循环左移1次 RCL AX,1
RCL r/m16, CL D3 /2 带进位循环左移CL次 RCL AX,CL
RCL r/m16, imm8 C1 /2 ib 带进位循环左移imm8次 RCL AX,03
RCL r/m32, 1 D1 /2 带进位循环左移1次 RCL EAX,1
RCL r/m32, CL D3 /2 带进位循环左移CL次 RCL EAX,CL
RCL r/m32, imm8 C1 /2 ib 带进位循环左移imm8次 RCL EAX,03
RCR RCR r/m8, 1 D0 /3 CF(或OF)被改变 带进位循环右移1次 RCR AL,1
RCR r/m8, CL D2 /3 带进位循环右移CL次 RCR AL,CL
RCR r/m8, imm8 C0 /3 ib 带进位循环右移imm8次 RCR AL,03
RCR r/m16, 1 D1 /3 带进位循环右移1次 RCR AX,1
RCR r/m16, CL D3 /3 带进位循环右移CL次 RCR AX,CL
RCR r/m16, imm8 C1 /3 ib 带进位循环右移imm8次 RCR AX,03
RCR r/m32, 1 D1 /3 带进位循环右移1次 RCR EAX,1
RCR r/m32, CL D3 /3 带进位循环右移CL次 RCR EAX,CL
RCR r/m32, imm8 C1 /3 ib 带进位循环右移imm8次 RCR EAX,03
ROL ROL r/m8, 1 D0 /0 CF(或OF)被改变 循环左移1次 ROL AL,1
ROL r/m8, CL D2 /0 循环左移CL次 ROL AL,CL
ROL r/m8, imm8 C0 /0 ib 循环左移imm8次 ROL AL,03
ROL r/m16, 1 D1 /0 循环左移1次 ROL AX,1
ROL r/m16, CL D3 /0 循环左移CL次 ROL AX,CL
ROL r/m16, imm8 C1 /0 ib 循环左移imm8次 ROL AX,03
ROL r/m32, 1 D1 /0 循环左移1次 ROL EAX,1
ROL r/m32, CL D3 /0 循环左移CL次 ROL EAX,CL
ROL r/m32, imm8 C1 /0 ib 循环左移imm8次 ROL EAX,03
ROR ROR r/m8, 1 D0 /1 CF(或OF)被改变 循环右移1次 ROR AL,1
ROR r/m8, CL D2 /1 循环右移CL次 ROR AL,CL
ROR r/m8, imm8 C0 /1 ib 循环右移imm8次 ROR AL,03
ROR r/m16, 1 D1 /1 循环右移1次 ROR AX,1
ROR r/m16, CL D3 /1 循环右移CL次 ROR AX,CL
ROR r/m16, imm8 C1 /1 ib 循环右移imm8次 ROR AX,03
ROR r/m32, 1 D1 /1 循环右移1次 ROR EAX,1
ROR r/m32, CL D3 /1 循环右移CL次 ROR EAX,CL
ROR r/m32, imm8 C1 /1 ib 循环右移imm8次 ROR EAX,03
RDMSR RDMSR 0F 32 不影响标志位 把ECX指定的模型专用寄存器内容送EDX:EAX RDMSR
RDPMC RDPMC 0F 33 不影响标志位 把ECX指定的性能监测计数器内容送EDX:EAX RDPMC
RDTSC RDTSC 0F 31 不影响标志位 读时间标记计数器到EDX:EAX RDTSC
REP REP INS r/m8, DX F3 6C 不影响标志位 从DX指定的端口读(E)CX个字节(BYTE)到ES:[(E)DI]  
REP INS r/m16, DX F3 6D 从DX指定的端口读(E)CX个字(WORD)到ES:[(E)DI]  
REP INS r/m32, DX F3 6D 从DX指定的端口读(E)CX个双字(DWORD)到ES:[(E)DI]  
REP MOVS m8, m8 F3 A4 连续字符串传送,每次传送1个字节,传送(E)CX次 REP MOVS STRING1, STRING2 ;源串DS:[(E)SI],目的串:ES:[(E)DI]
REP MOVS m16, m16 F3 A5 连续字符串传送,每次传送1个字,传送(E)CX次 REP MOVS STRING1, STRING2 ;源串DS:[(E)SI],目的串:ES:[(E)DI]
REP MOVS m32, m32 F3 A5 连续字符串传送,每次传送1个双字,传送(E)CX次 REP MOVS STRING1, STRING2 ;源串DS:[(E)SI],目的串:ES:[(E)DI]
REP OUTS DX,r/m8 F3 6E 将DS:[(E)SI]处的(E)CX个字节输出到DX指定的端口  
REP OUTS DX,r/m16 F3 6F 将DS:[(E)SI]处的(E)CX个字输出到DX指定的端口  
REP OUTS DX,r/m32 F3 6F 将DS:[(E)SI]处的(E)CX个双字输出到DX指定的端口  
REP LODS AL F3 AC 将地址DS:[(E)SI]处的(E)CX个字节装入AL  
REP LODS AX F3 AD 将地址DS:[(E)SI]处的(E)CX个字装入AX  
REP LODS EAX F3 AD 将地址DS:[(E)SI]处的(E)CX个双字装入EAX  
REP STOS m8 F3 AA 用AL填充地址ES:[(E)DI]处的(E)CX个字节  
REP STOS m16 F3 AB 用AX填充地址ES:[(E)DI]处的(E)CX个字  
REP STOS m32 F3 AB 用EAX填充地址ES:[(E)DI]处的(E)CX个双字  
REPE REPE CMPS m8, m8 F3 A6 设置 AF CF OF PF SF ZF 比较字符串,每次比较1个字节,直到不相等字节停止 REPE CMPS STRING1, STRING2 ;源串DS:[(E)SI],目的串:ES:[(E)DI]
REPE CMPS m16, m16 F3 A7 比较字符串,每次比较1个字,直到不相等字停止 REPE CMPS STRING1, STRING2 ;源串DS:[(E)SI],目的串:ES:[(E)DI]
REPE CMPS m32, m32 F3 A7 比较字符串,每次比较1个双字,直到不相等双字停止 REPE CMPS STRING1, STRING2 ;源串DS:[(E)SI],目的串:ES:[(E)DI]
REPE SCAS m8 F3 AE 扫描字符串ES:[(E)DI]中的AL字节值,遇到非AL值停止 REPE SCAS STRING1
REPE SCAS m16 F3 AF 扫描字符串ES:[(E)DI]中的AX字值,遇到非AX值停止 REPE CMPS STRING1
REPE SCAS m32 F3 AF 扫描字符串ES:[(E)DI]中的EAX双字值,遇到非EAX值停止 REPE CMPS STRING1
REPNE REPNE CMPS m8, m8 F2 A6 设置 AF CF OF PF SF ZF 比较字符串,每次比较1个字节,直到相等字节停止 REPNE CMPS STRING1, STRING2 ;源串DS:[(E)SI],目的串:ES:[(E)DI]
REPNE CMPS m16, m16 F2 A7 比较字符串,每次比较1个字,直到相等字停止 REPNE CMPS STRING1, STRING2 ;源串DS:[(E)SI],目的串:ES:[(E)DI]
REPNE CMPS m32, m32 F2 A7 比较字符串,每次比较1个双字,直到相等双字停止 REPNE CMPS STRING1, STRING2 ;源串DS:[(E)SI],目的串:ES:[(E)DI]
REPNE SCAS m8 F2 AE 扫描字符串ES:[(E)DI]中的AL字节值,遇到AL值停止 REPNE SCAS STRING1
REPNE SCAS m16 F2 AF 扫描字符串ES:[(E)DI]中的AX字值,遇到AX值停止 REPNE CMPS STRING1
REPNE SCAS m32 F2 AF 扫描字符串ES:[(E)DI]中的EAX双字值,遇到EAX值停止 REPNE CMPS STRING1
REPZ REPZ CMPS m8, m8 F3 A6 设置 AF CF OF PF SF ZF 比较字符串,每次比较1个字节,直到不相等字节停止 REPZ CMPS STRING1, STRING2 ;源串DS:[(E)SI],目的串:ES:[(E)DI]
REPZ CMPS m16, m16 F3 A7 比较字符串,每次比较1个字,直到不相等字停止 REPZ CMPS STRING1, STRING2 ;源串DS:[(E)SI],目的串:ES:[(E)DI]
REPZ CMPS m32, m32 F3 A7 比较字符串,每次比较1个双字,直到不相等双字停止 REPZ CMPS STRING1, STRING2 ;源串DS:[(E)SI],目的串:ES:[(E)DI]
REPZ SCAS m8 F3 AE 扫描字符串ES:[(E)DI]中的AL字节值,遇到非AL值停止 REPZ SCAS STRING1
REPZ SCAS m16 F3 AF 扫描字符串ES:[(E)DI]中的AX字值,遇到非AX值停止 REPZ CMPS STRING1
REPZ SCAS m32 F3 AF 扫描字符串ES:[(E)DI]中的EAX双字值,遇到非EAX值停止 REPZ CMPS STRING1
REPNZ REPNZ CMPS m8, m8 F2 A6 设置 AF CF OF PF SF ZF 比较字符串,每次比较1个字节,直到相等字节停止 REPNZ CMPS STRING1, STRING2 ;源串DS:[(E)SI],目的串:ES:[(E)DI]
REPNZ CMPS m16, m16 F2 A7 比较字符串,每次比较1个字,直到相等字停止 REPNZ CMPS STRING1, STRING2 ;源串DS:[(E)SI],目的串:ES:[(E)DI]
REPNZ CMPS m32, m32 F2 A7 比较字符串,每次比较1个双字,直到相等双字停止 REPNZ CMPS STRING1, STRING2 ;源串DS:[(E)SI],目的串:ES:[(E)DI]
REPNZ SCAS m8 F2 AE 扫描字符串ES:[(E)DI]中的AL字节值,遇到AL值停止 REPNZ SCAS STRING1
REPNZ SCAS m16 F2 AF 扫描字符串ES:[(E)DI]中的AX字值,遇到AX值停止 REPNZ CMPS STRING1
REPNZ SCAS m32 F2 AF 扫描字符串ES:[(E)DI]中的EAX双字值,遇到EAX值停止 REPNZ CMPS STRING1
RET RET C3 恢复压栈的标志位 子过程返回(Near) RET
RET CB 子过程返回(Far) RET
RET imm16 C2 iw 子过程返回(Near),并从堆栈弹出imm16字节 RET 08
RET imm16 CA iw 子过程返回(Far),并从堆栈弹出imm16字节 RET 08
RSM RSM 0F AA 恢复所有标志位 从系统管理模式返回 RSM
SAHF SAHF 9E 设置SF ZF AF PF CF 装入AH到标志寄存器,格式:(SF:ZF:0:AF:0:PF:1:CF)←AH SAHF
SAL SAL r/m8, 1 D0 /4 CF(或OF)被改变 算术左移1次(乘法:r/m8=r/m8*2) SAL AL,1
SAL r/m8, CL D2 /4 算术左移CL次(乘法:r/m8=r/m8*(2^CL)) SAL AL,CL
SAL r/m8, imm8 C0 /4 ib 算术左移imm8次(乘法:r/m8=r/m8*(2^imm8)) SAL AL,03
SAL r/m16, 1 D1 /4 算术左移1次(乘法:r/m16=r/m16*2) SAL AX,1
SAL r/m16, CL D3 /4 算术左移CL次(乘法:r/m16=r/m16*(2^CL)) SAL AX,CL
SAL r/m16, imm8 C1 /4 ib 算术左移imm8次(乘法:r/m16=r/m16*(2^imm8)) SAL AX,03
SAL r/m32, 1 D1 /4 算术左移1次(乘法:r/m32=r/m32*2) SAL EAX,1
SAL r/m32, CL D3 /4 算术左移CL次(乘法:r/m32=r/m32*(2^CL)) SAL EAX,CL
SAL r/m32, imm8 C1 /4 ib 算术左移imm8次(乘法:r/m32=r/m32*(2^imm8)) SAL EAX,03
SAR SAR r/m8, 1 D0 /7 CF(或OF)被改变 算术右移1次(有符号除法:r/m8=r/m8 / 2) SAR AL,1
SAR r/m8, CL D2 /7 算术右移CL次(有符号除法:r/m8=r/m8 / (2^CL)) SAR AL,CL
SAR r/m8, imm8 C0 /7 ib 算术右移imm8次(有符号除法:r/m8=r/m8 / (2^imm8)) SAR AL,03
SAR r/m16, 1 D1 /7 算术右移1次(有符号除法:r/m16=r/m16 / 2) SAR AX,1
SAR r/m16, CL D3 /7 算术右移CL次(有符号除法:r/m16=r/m16 / (2^CL)) SAR AX,CL
SAR r/m16, imm8 C1 /7 ib 算术右移imm8次(有符号除法:r/m16=r/m16 / (2^imm8)) SAR AX,03
SAR r/m32, 1 D1 /7 算术右移1次(有符号除法:r/m32=r/m32 / 2) SAR EAX,1
SAR r/m32, CL D3 /7 算术右移CL次(有符号除法:r/m32=r/m32 / (2^CL)) SAR EAX,CL
SAR r/m32, imm8 C1 /7 ib 算术右移imm8次(有符号除法:r/m32=r/m32 / (2^imm8)) SAR EAX,03
SHL SHL r/m8, 1 D0 /4 CF(或OF)被改变 逻辑左移1次(乘法:r/m8=r/m8*2) SHL AL,1
SHL r/m8, CL D2 /4 逻辑左移CL次(乘法:r/m8=r/m8*(2^CL)) SHL AL,CL
SHL r/m8, imm8 C0 /4 ib 逻辑左移imm8次(乘法:r/m8=r/m8*(2^imm8)) SHL AL,03
SHL r/m16, 1 D1 /4 逻辑左移1次(乘法:r/m16=r/m16*2) SHL AX,1
SHL r/m16, CL D3 /4 逻辑左移CL次(乘法:r/m16=r/m16*(2^CL)) SHL AX,CL
SHL r/m16, imm8 C1 /4 ib 逻辑左移imm8次(乘法:r/m16=r/m16*(2^imm8)) SHL AX,03
SHL r/m32, 1 D1 /4 逻辑左移1次(乘法:r/m32=r/m32*2) SHL EAX,1
SHL r/m32, CL D3 /4 逻辑左移CL次(乘法:r/m32=r/m32*(2^CL)) SHL EAX,CL
SHL r/m32, imm8 C1 /4 ib 逻辑左移imm8次(乘法:r/m32=r/m32*(2^imm8)) SHL EAX,03
SHR SHR r/m8, 1 D0 /5 CF(或OF)被改变 逻辑右移1次(无符号除法:r/m8=r/m8 / 2) SHR AL,1
SHR r/m8, CL D2 /5 逻辑右移CL次(无符号除法:r/m8=r/m8 / (2^CL)) SHR AL,CL
SHR r/m8, imm8 C0 /5 ib 逻辑右移imm8次(无符号除法:r/m8=r/m8 / (2^imm8)) SHR AL,03
SHR r/m16, 1 D1 /5 逻辑右移1次(无符号除法:r/m16=r/m16 / 2) SHR AX,1
SHR r/m16, CL D3 /5 逻辑右移CL次(无符号除法:r/m16=r/m16 / (2^CL)) SHR AX,CL
SHR r/m16, imm8 C1 /5 ib 逻辑右移imm8次(无符号除法:r/m16=r/m16 / (2^imm8)) SHR AX,03
SHR r/m32, 1 D1 /5 逻辑右移1次(无符号除法:r/m32=r/m32 / 2) SHR EAX,1
SHR r/m32, CL D3 /5 逻辑右移CL次(无符号除法:r/m32=r/m32 / (2^CL)) SHR EAX,CL
SHR r/m32, imm8 C1 /5 ib 逻辑右移imm8次(无符号除法:r/m32=r/m32 / (2^imm8)) SHR EAX,03
SBB SBB AL, imm8 1C ib 设置 AF CF OF SF PF ZF 带借位减法 SBB AL, 1F
SBB AX, imm16 1D iw SBB AX, 4F80
SBB EAX, imm32 1D id SBB EAX, 00004F80
SBB r/m8, imm8 80 /3 ib SBB BYTE PTR [006387EA], 39
SBB r/m16,imm16 81 /3 iw SBB WORD PTR [006387EA], 1039
SBB r/m32,imm32 81 /3 id SBB DWORD PTR [006387EA], 00001039
SBB r/m16,imm8 83 /3 ib SBB WORD PTR [006387EA], 39
SBB r/m32,imm8 83 /3 ib SBB DWORD PTR [006387EA], 39
SBB r/m8,r8 18 /r SBB [006387EA], AL
SBB r/m16,r16 19 /r SBB [006387EA], AX
SBB r/m32,r32 19 / r SBB [006387EA], EAX
SBB r8,r/m8 1A /r SBB AL, [006387EA]
SBB r16,r/m16 1B /r SBB AX, [006387EA]
SBB r32,r/m32 1B /r SBB EAX, [006387EA]
SCAS SCAS m8 AE 设置OF SF ZF AF PF CF 用AL中的字节值扫描字符串ES:(E)DI,然后设置标志位  
SCAS m16 AF 用AX中的字值扫描字符串ES:(E)DI,然后设置标志位  
SCAS m32 AF 用EAX中的双字值扫描字符串ES:(E)DI,然后设置标志位  
SCASB SCASB AE 设置OF SF ZF AF PF CF 用AL中的字节值扫描字符串ES:(E)DI,然后设置标志位 SCASB
SCASW SCASW AF 设置OF SF ZF AF PF CF 用AX中的字值扫描字符串ES:(E)DI,然后设置标志位 SCASW
SCASD SCASD AF 设置OF SF ZF AF PF CF 用EAX中的双字值扫描字符串ES:(E)DI,然后设置标志位 SCASD
SETcc SETA r/m8 0F 97 高于(CF=0 and ZF=0) 条件设置指令,如果条件满足则r/m8=1,否则r/m8=0 SETA AL
SETAE r/m8 0F 93 高于等于(CF=0) SETAE AL
SETB r/m8 0F 92 低于(CF=1) SETB AL
SETBE r/m8 0F 96 低于等于(CF=1 or ZF=1) SETBE AL
SETC r/m8 0F 92 有进位(CF=1) SETC AL
SETE r/m8 0F 94 等于(ZF=1) SETE AL
SETG r/m8 0F 9F 大于(ZF=0 and SF=OF) SETG AL
SETGE r/m8 0F 9D 大于等于(SF=OF) SETGE AL
SETL r/m8 0F 9C 小于(SF<>OF) SETL AL
SETLE r/m8 0F 9E 小于等于(ZF=1 or SF<>OF) SETLE AL
SETNA r/m8 0F 96 不高于(CF=1 or ZF=1) SETNA AL
SETNAE r/m8 0F 92 不高等于(CF=1) SETNAE AL
SETNB r/m8 0F 93 不低于(CF=0) SETNB AL
SETNBE r/m8 0F 97 不低等于(CF=0 and ZF=0) SETNBE AL
SETNC r/m8 0F 93 无进位(CF=0) SETNC AL
SETNE r/m8 0F 95 不等于(ZF=0) SETNE AL
SETNG r/m8 0F 9E 不大于(ZF=1 or SF<>OF) SETNG AL
SETNGE r/m8 0F 9C 不大等于(SF<>OF) SETNGE AL
SETNL r/m8 0F 9D 不小于(SF=OF) SETNL AL
SETNLE r/m8 0F 9F 不小等于(ZF=0 and SF=OF) SETNLE AL
SETNO r/m8 0F 91 无溢出(OF=0) SETNO AL
SETNP r/m8 0F 9B 非偶数(PF=0) SETNP AL
SETNS r/m8 0F 99 非负数(SF=0) SETNS AL
SETNZ r/m8 0F 95 非零(ZF=0) SETNZ AL
SETO r/m8 0F 90 溢出(OF=1) SETO AL
SETP r/m8 0F 9A 偶数(PF=1) SETP AL
SETPE r/m8 0F 9A 偶数(PF=1) SETPE AL
SETPO r/m8 0F 9B 奇数(PF=0) SETPO AL
SETS r/m8 0F 98 负数(SF=1) SETS AL
SETZ r/m8 0F 94 为零(ZF=1) SETZ AL
SGDT SGDT m 0F 01 /0 不影响标志位 保存全局描述符表寄存器到内存m处 SGDT [EBP]
SIDT SIDT m 0F 01 /1 不影响标志位 保存中断描述符表寄存器到内存m处 SIDT [ESI]
SLDT SLDT r/m16 0F 00 /0 不影响标志位 保存LDT选择子到r/m16 SLDT SI
SLDT r/m32 保存LDT选择子到r/m32 SLDT ESI
SHLD SHLD r/m16, r16, imm8 0F A4 设置CF SF ZF PF AF OF 双精度左移 SHLD AX,BX,3
SHLD r/m16, r16, CL 0F A5 SHLD AX,BX,CL
SHLD r/m32, r32, imm8 0F A4 SHLD EAX,EBX,3
SHLD r/m32, r32, CL 0F A5 SHLD EAX,EBX,CL
SHRD SHRD r/m16, r16, imm8 0F AC 设置CF SF ZF PF AF OF 双精度右移 SHRD AX,BX,3
SHRD r/m16, r16, CL 0F AD SHRD AX,BX,CL
SHRD r/m32, r32, imm8 0F AC SHRD EAX,EBX,3
SHRD r/m32, r32, CL 0F AD SHRD EAX,EBX,CL
SMSW SMSW r/m16 0F 01 /4 不影响标志位 保存机器状态字到r/m16 SMSW SI
SMSW r32/m16 保存机器状态字到r32/m16 SMSW ESI
STC STC F9 设置CF 设置CF=1 STC
STD STD FD 设置DF 设置DF=1 STD
STI STI FB 设置IF 设置IF=1,开中断 STI
STOS STOS m8 AA 不影响标志位 将AL保存到地址ES:(E)DI  
STOS m16 AB 将AX保存到地址ES:(E)DI  
STOS m32 AB 将EAX保存到地址ES:(E)DI  
STOSB STOSB AA 不影响标志位 将AL保存到地址ES:(E)DI STOSB
STOSW STOSW AB 不影响标志位 将AX保存到地址ES:(E)DI STOSW
STOSD STOSD AB 不影响标志位 将EAX保存到地址ES:(E)DI STOSD
STR STR r/m16 0F 00 /1 不影响标志位 保存任务寄存器到r/m16 STR AX
SUB SUB AL, imm8 2C ib 设置 AF CF OF SF PF ZF 减法 SUB AL, 1F
SUB AX, imm16 2D iw SUB AX, 4F80
SUB EAX, imm32 2D id SUB EAX, 00004F80
SUB r/m8, imm8 80 /5 ib SUB BYTE PTR [006387EA], 39
SUB r/m16,imm16 81 /5 iw SUB WORD PTR [006387EA], 1039
SUB r/m32,imm32 81 /5 id SUB DWORD PTR [006387EA], 00001039
SUB r/m16,imm8 83 /5 ib SUB WORD PTR [006387EA], 39
SUB r/m32,imm8 83 /5 ib SUB DWORD PTR [006387EA], 39
SUB r/m8,r8 28 /r SUB [006387EA], AL
SUB r/m16,r16 29 /r SUB [006387EA], AX
SUB r/m32,r32 29 / r SUB [006387EA], EAX
SUB r8,r/m8 2A /r SUB AL, [006387EA]
SUB r16,r/m16 2B /r SUB AX, [006387EA]
SUB r32,r/m32 2B /r SUB EAX, [006387EA]
SYSENTER SYSENTER 0F 34 设置VM IF RF 快速调用系统0级过程(用于系统3级应用程序),配合SYSEXIT使用  
SYSEXIT SYSEXIT 0F 35 不影响标志位 快速返回到系统3级用户代码,配合SYSENTER使用  
TEST TEST AL, imm8 A8 ib 设置 CF OF PF SF ZF 逻辑与测试,但是不改变目的操作数,只设置相关标志位 TEST AL, 1F
TEST AX, imm16 A9 iw TEST AX, 4F80
TEST EAX, imm32 A9 id TEST EAX, 00004F80
TEST r/m8, imm8 F6 /0 ib TEST BYTE PTR [006387EA], 39
TEST r/m16,imm16 F7 /0 ib TEST WORD PTR [006387EA], 1039
TEST r/m32,imm32 F7 /0 ib TEST DWORD PTR [006387EA], 00001039
TEST r/m8,r8 84 /r TEST BYTE PTR [006387EA], AL
TEST r/m16,r16 85 /r TEST WORD PTR [006387EA], AX
TEST r/m32,r32 85 /r TEST DWORD PTR [006387EA], EAX
UD2 UD2 0F 0B 不影响标志位 产生无效代码异常,用于软件测试 UD2
VERR VERR 0F 00 /4 设置ZF 如果目标选择子对应段可读,则ZF置1 VERR
VERW VERW 0F 00 /5 设置ZF 如果目标选择子对应段可写,则ZF置1 VERW
WAIT WAIT 9B C0,C1, C2, C3 未定义 等待,检查非屏蔽浮点异常 WAIT
WBINVD WBINVD 0F 09 不影响标志位 写回内部CACHE并使之失效 WBINVD
WRMSR WRMSR 0F 30 不影响标志位 把EDX:EAX的内容写入ECX指定的模型专用寄存器 WRMSR
XADD XADD r/m8, r8 0F C0 /r 设置 CF PF AF SF ZF OF 目的操作数和源操作数相加,并使源操作数保存目的操作数的值 XADD AL,BL
XADD r/m16, r16 0F C1 /r XADD AX,BX
XADD r/m32, r32 0F C1 /r XADD EAX,EBX
XCHG XCHG AX, r16 90+rw 不影响标志位 目的操作数和源操作数的值交换 XCHG AX,BX
XCHG r16, AX 90+rw XCHG CX,AX
XCHG EAX, r32 90+rd XCHG EAX,EBX
XCHG r32, EAX 90+rd XCHG ECX,EAX
XCHG r/m8, r8 86 /r XCHG [006387EA],BL
XCHG r8, r/m8 86 /r XCHG AX,[006387EA]
XCHG r/m16, r16 87 /r XCHG [006387EA],BX
XCHG r16, r/m16 87 /r XCHG AX,[006387EA]
XCHG r/m32, r32 87 /r XCHG [006387EA],EBX
XCHG r32, r/m32 87 /r XCHG EAX,[006387EA]
XLAT XLAT m8 D7 不影响标志位 换码:DS:[(E)BX + unsigned AL]←AL  
XLATB XLATB D7 不影响标志位 换码:DS:[(E)BX + unsigned AL]←AL XLATB
XOR XOR AL, imm8 34 ib 设置 CF OF PF SF ZF 逻辑异或 XOR AL, 1F
XOR AX, imm16 35 iw XOR AX, 4F80
XOR EAX, imm32 35 id XOR EAX, 00004F80
XOR r/m8, imm8 80 /6 ib XOR BYTE PTR [006387EA], 39
XOR r/m16,imm16 81 /6 iw XOR WORD PTR [006387EA], 1039
XOR r/m32,imm32 81 /6 id XOR DWORD PTR [006387EA], 00001039
XOR r/m16,imm8 83 /6 ib XOR WORD PTR [006387EA], 39
XOR r/m32,imm8 83 /6 ib XOR DWORD PTR [006387EA], 39
XOR r/m8,r8 30 /r XOR BYTE PTR [006387EA], AL
XOR r/m16,r16 31 /r XOR WORD PTR [006387EA], AX
XOR r/m32,r32 31 /r XOR DWORD PTR [006387EA], EAX
XOR r8,r/m8 32 /r XOR AL, [006387EA]
XOR r16,r/m16 33 /r XOR AX, [006387EA]
XOR r32,r/m32 33 /r XOR EAX, [006387EA]



上表中所使用符号的说明


/digit -- 0到7之间的数字,用于只使用寄存器/内存操作数的指令的 ModR/M字节,作为指令扩展码

/r -- 表明指令的ModR/M字节既包含寄存器操作数,又包含内存操作数

cb -- 相对于下一条指令的字节偏移值

cw -- 相对于下一条指令的字偏移值

cd -- 相对于下一条指令的双字偏移值

cp -- 绝对远指针

ib, iw, id -- ib:1字节立即数;iw:2字节立即数;id:4字节立即数

+rb, +rw, +rd -- 寄存器代码,从0到7,被加到操作数字节:

             rb     rw     rd
          ----------------------
           AL = 0 AX = 0 EAX = 0
           CL = 1 CX = 1 ECX = 1
           DL = 2 DX = 2 EDX = 2
           BL = 3 BX = 3 EBX = 3
           AH = 4 SP = 4 ESP = 4
           CH = 5 BP = 5 EBP = 5
           DH = 6 SI = 6 ESI = 6
           BH = 7 DI = 7 EDI = 7

+i -- 用于浮点指令的数字,表示ST(i)之一

rel8 -- 8位相对地址,范围:-128 ~ 127

rel16, rel32 -- 同一段内的相对地址

ptr16:16,ptr16:32 -- 远指针,典型应用于跨段指令

r8 -- 8位通用寄存器

r16 -- 16位通用寄存器

r32 -- 32位通用寄存器

imm8 -- 8位立即数

imm16 -- 16位立即数

imm32 -- 32位立即数

r/m8 -- 8位通用寄存器或内存字节

r/m16 -- 16位通用寄存器或内存字节

r/m32 -- 32位通用寄存器或内存字节

m -- 16位或32位内存操作数

m8 -- 由DS:(E)SI或ES:(E)DI指向的内存字节

m16 -- 由DS:(E)SI或ES:(E)DI指向的内存字

m32 -- 由DS:(E)SI或ES:(E)DI指向的内存双字

m64 -- 内存四字,仅用于CMPXCHG8B指令

m16:16, m16:32 -- 包含两个数据的内存指针操作数,引号前面的是段地址,引号后面的是偏移地址

m16&32, m16&16, m32&32 -- 包含数据对的内存操作数

moffs8, moffs16, moffs32 -- 分别表示类型为字节、字、双字的内存变量

Sreg -- 段寄存器,ES=0, CS=1, SS=2, DS=3, FS=4, GS=5

m32real, m64real, m80real -- 单精度、双精度、扩展双精度内存浮点操作数

m16int, m32int, m64int -- 字型、双字型、四字型内存整数操作数

ST or ST(0) -- FPU寄存器堆栈栈顶元素

ST(i) -- 从FPU寄存器堆栈栈顶数起的第i个元素,i = 0,1,2,3,4,5,6,7

mm -- MMX寄存器,从MM0到MM7

mm/m32 -- MMX寄存器的低32位或32位内存操作数

mm/m64 -- MMX寄存器或64位内存操作数

xmm -- 128位XMM寄存器,从XMM0到XMM7

xmm/m32 -- XMM寄存器或32位内存操作数

xmm/m64 -- XMM寄存器或64位内存操作数

xmm/m128 -- XMM寄存器或128位内存操作数



posted on 2006-02-18 20:57 qiezi 阅读(581) 评论(0)  编辑 收藏 引用