|
资料来源:IA-32 Intel Architecture Software Developer Manual Volume 2 : Instruction Set Reference
| 指令名称 |
指令形式 |
机器码 |
标志位 (设置/测试) |
说 明 |
应用举例 |
| 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 | |