Intel系列CPU指令速查手册
指令名称
指令形式
机器码
标志位
(设置/测试)
说 明
应用举例
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
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 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 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
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
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
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
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
),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