奔腾处理器指令速查手册(包括协处理器和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 地址类型跨越前缀 



 


 

指令名称指令形式机器码标志位(设置/测试)说    明应用举例
AAAAAA37设置 AF CF加法后的ASCII码调整ALAAA
AADAADD5 0A 或 D5 ib设置 SF ZF PF除法前的ASCII码调整AXAAD
AAMAAMD4 0A 或 D4 ib设置 PF SF ZF乘法后的ASCII码调整AXAAM
AASAAS3F设置 AF CF减法后的ASCII码调整ALAAS
ADCADC AL, imm814 ib设置 AF CF OF SF PF ZF带进位加法ADC AL, 1F
ADC AX, imm1615 iwADC AX, 4F80
ADC EAX, imm3215 idADC EAX, 00004F80
ADC r/m8, imm880 /2 ibADC BYTE PTR [006387EA], 39
ADC r/m16,imm1681 /2 iwADC WORD PTR [006387EA], 1039
ADC r/m32,imm3281 /2 idADC DWORD PTR [006387EA], 00001039
ADC r/m16,imm883 /2 ibADC WORD PTR [006387EA], 39
ADC r/m32,imm883 /2 ibADC DWORD PTR [006387EA], 39
ADC r/m8,r810 /rADC [006387EA], AL
ADC r/m16,r1611 /rADC [006387EA], AX
ADC r/m32,r3211 / rADC [006387EA], EAX
ADC r8,r/m812 /rADC AL, [006387EA]
ADC r16,r/m1613 /rADC AX, [006387EA]
ADC r32,r/m3213 /rADC EAX, [006387EA]
ADDADD AL, imm804 ib设置 AF CF OF SF PF ZF加法ADD AL, 1F
ADD AX, imm1605 iwADD AX, 4F80
ADD EAX, imm3205 idADD EAX, 00004F80
ADD r/m8, imm880 /0 ibADD BYTE PTR [006387EA], 39
ADD r/m16,imm1681 /0 iwADD WORD PTR [006387EA], 1039
ADD r/m32,imm3281 /0 idADD DWORD PTR [006387EA], 00001039
ADD r/m16,imm883 /0 ibADD WORD PTR [006387EA], 39
ADD r/m32,imm883 /0 ibADD DWORD PTR [006387EA], 39
ADD r/m8,r800 /rADD [006387EA], AL
ADD r/m16,r1601 /rADD [006387EA], AX
ADD r/m32,r3201 / rADD [006387EA], EAX
ADD r8,r/m802 /rADD AL, [006387EA]
ADD r16,r/m1603 /rADD AX, [006387EA]
ADD r32,r/m3203 /rADD EAX, [006387EA]
ANDAND AL, imm824 ib设置 CF OF PF SF ZF逻辑与AND AL, 1F
AND AX, imm1625 iwAND AX, 4F80
AND EAX, imm3225 idAND EAX, 00004F80
AND r/m8, imm880 /4 ibAND BYTE PTR [006387EA], 39
AND r/m16,imm1681 /4 iwAND WORD PTR [006387EA], 1039
AND r/m32,imm3281 /4 idAND DWORD PTR [006387EA], 00001039
AND r/m16,imm883 /4 ibAND WORD PTR [006387EA], 39
AND r/m32,imm883 /4 ibAND DWORD PTR [006387EA], 39
AND r/m8,r820 /rAND BYTE PTR [006387EA], AL
AND r/m16,r1621 /rAND WORD PTR [006387EA], AX
AND r/m32,r3221 /rAND DWORD PTR [006387EA], EAX
AND r8,r/m822 /rAND AL, [006387EA]
AND r16,r/m1623 /rAND AX, [006387EA]
AND r32,r/m3223 /rAND EAX, [006387EA]
ARPLARPL r/m16,r1663 /r设置 ZF调整请求特权级 (286+ PM)ARPL AX, BX ;如果AX的RPL小于BX的RPL,则改为BX的RPL,且ZF置1,否则ZF清0
BOUNDBOUND r16,m16&1662 /r不影响标志位越界检查 (80188+)BOUND AX, [006387EA] ;如果AX不在[006387EA]及[006387EA+2]的值中间,则产生异常5
BOUND r32,m32&32BOUND EAX, [006387EA] ;如果EAX不在[006387EA]及[006387EA+4]的值中间,则产生异常5
BSFBSF r16,r/m160F BC设置 ZF从低到高扫描目标,查找对应为1的位 (386+)BSF AX, BX ;把BX由低到高第一个1的位置送AX,如全0则ZF置1,否则ZF清0
BSF r32,r/m32BSF EAX, EBX ;把EBX由低到高第一个1的位置送EAX,如全0则ZF置1,否则ZF清0
BSRBSR r16,r/m160F BD设置 ZF从高到低扫描目标,查找对应为1的位 (386+)BSR AX, BX ;把BX由高到低第一个1的位置送AX,如全0则ZF置1,否则ZF清0
BSR r32,r/m32BSR EAX, EBX ;把EBX由高到低第一个1的位置送EAX,如全0则ZF置1,否则ZF清0
BSWAPBSWAP reg320F C8+rd不影响标志位32位寄存器高低字节交换(486+)BSWAP EAX
BTBT r/m16,r160F A3设置 CF测试目标的指定位 (386+)BT AX, BX ;如果AX中BX指定的位为1,则CF置1,否则CF清0
BT r/m32,r320F A3BT EAX, EBX ;如果EAX中EBX指定的位为1,则CF置1,否则CF清0
BT r/m16,imm80F BA /4BT AX, 01 ;如果AX中01位为1,则CF置1,否则CF清0
BT r/m32,imm80F BA /4BT EAX, 01 ;如果EAX中01位为1,则CF置1,否则CF清0
BTCBTC r/m16,r160F BB设置 CF将目标指定位取反 (386+)BTC AX, BX ;将AX中BX指定的位取反,CF存放指定位并取反位
BTC r/m32,r320F BBBTC EAX, EBX ;将EAX中EBX指定的位取反,CF存放指定位并取反
BTC r/m16,imm80F BA /7BTC AX, 01 ;将AX中01位取反,CF存放指定位并取反
BTC r/m32,imm80F BA /7BTC EAX, 01 ;将EAX中01位取反,CF存放指定位并取反
BTRBTR r/m16,r160F B3设置 CF将目标指定位清0 (386+)BTR AX, BX ;将AX中BX指定的位清0,CF存放指定位并清0
BTR r/m32,r320F B3BTR EAX, EBX ;将EAX中EBX指定的位清0,CF存放指定位并清0
BTR r/m16,imm80F BA /6BTR AX, 01 ;将AX中01位清0,CF存放指定位并清0
BTR r/m32,imm80F BA /6BTR EAX, 01 ;将EAX中01位清0,CF存放指定位并清0
BTSBTS r/m16,r160F AB设置 CF将目标指定位置1 (386+)BTS AX, BX ;将AX中BX指定的位置1,CF存放指定位并置1
BTS r/m32,r320F ABBTS EAX, EBX ;将EAX中EBX指定的位置1,CF存放指定位并置1
BTS r/m16,imm80F BA /5BTS AX, 01 ;将AX中01位置1,CF存放指定位并置1
BTS r/m32,imm80F BA /5BTS EAX, 01 ;将EAX中01位置1,CF存放指定位并置1
CALLCALL rel16E8 cw不影响标志位子程序调用(16位相对寻址) 
CALL rel32E8 cd子程序调用(32位相对寻址) 
CALL r/m16FF /2子程序调用(16位间接寻址) 
CALL r/m32FF /2子程序调用(32位间接寻址) 
CALL ptr16:169A cd子程序调用(直接绝对寻址) 
CALL ptr16:329A cp子程序调用(直接绝对寻址) 
CALL m16:16FF /3子程序调用(间接绝对寻址) 
CALL m16:32FF /3子程序调用(间接绝对寻址) 
CBWCBW98不影响标志位将AL值带符号扩展到AXCBW
CDQCDQ99不影响标志位将EAX值带符号扩展到EDX:EAXCDQ
CLDCLDFC设置 DF清除方向位(DF)标志CLD
CLICLIFA设置 IF清除中断允许位(IF)标志CLD
CLTSCLTS0F 06不影响标志位清除任务开关标志(TSF)CLTS
CMCCMCF5设置 CF进位标志取反CMC
CMOVccCMOVA r16, r/m160F 47 /r高于(CF=0 and ZF=0)条件传送指令CMOVA AX, BX
CMOVA r32, r/m32CMOVA EAX, EBX
CMOVAE r16, r/m160F 43 /r高于等于(CF=0)CMOVAE AX, BX
CMOVAE r32, r/m32CMOVAE EAX, EBX
CMOVB r16, r/m160F 42 /r低于(CF=1)CMOVB AX, BX
CMOVB r32, r/m32CMOVB EAX, EBX
CMOVBE r16, r/m160F 46 /r低于等于(CF=1 or ZF=1)CMOVBE AX, BX
CMOVBE r32, r/m32CMOVBE EAX, EBX
CMOVC r16, r/m160F 42 /r有进位(CF=1)CMOVC AX, BX
CMOVC r32, r/m32CMOVC EAX, EBX
CMOVE r16, r/m160F 44 /r等于(ZF=1)CMOVE AX, BX
CMOVE r32, r/m32CMOVE EAX, EBX
CMOVG r16, r/m160F 4F /r大于(ZF=0 and SF=OF)CMOVG AX, BX
CMOVG r32, r/m32CMOVG EAX, EBX
CMOVGE r16, r/m160F 4D /r大于等于(SF=OF)CMOVGE AX, BX
CMOVGE r32, r/m32CMOVGE EAX, EBX
CMOVL r16, r/m160F 4C /r小于(SF<>OF)CMOVL AX, BX
CMOVL r32, r/m32CMOVL EAX, EBX
CMOVLE r16, r/m160F 4E /r小于等于(ZF=1 or SF<>OF)CMOVLE AX, BX
CMOVLE r32, r/m32CMOVLE EAX, EBX
CMOVNA r16, r/m160F 46 /r不高于(CF=1 or ZF=1)CMOVNA AX, BX
CMOVNA r32, r/m32CMOVNA EAX, EBX
CMOVNAE r16, r/m160F 42 /r不高等于(CF=1)CMOVNAE AX, BX
CMOVNAE r32, r/m32CMOVNAE EAX, EBX
CMOVNB r16, r/m160F 43 /r不低于(CF=0)CMOVNB AX, BX
CMOVNB r32, r/m32CMOVNB EAX, EBX
CMOVNBE r16, r/m160F 47 /r不低等于(CF=0 and ZF=0)CMOVNBE AX, BX
CMOVNBE r32, r/m32CMOVNBE EAX, EBX
CMOVNC r16, r/m160F 43 /r无进位(CF=0)CMOVNC AX, BX
CMOVNC r32, r/m32CMOVNC EAX, EBX
CMOVNE r16, r/m160F 45 /r不等于(ZF=0)CMOVNE AX, BX
CMOVNE r32, r/m32CMOVNE EAX, EBX
CMOVNG r16, r/m160F 4E /r不大于(ZF=1 or SF<>OF)CMOVNG AX, BX
CMOVNG r32, r/m32CMOVNG EAX, EBX
CMOVNGE r16, r/m160F 4C /r不大等于(SF<>OF)CMOVNGE AX, BX
CMOVNGE r32, r/m32CMOVNGE EAX, EBX
CMOVNL r16, r/m160F 4D /r不小于(SF=OF)CMOVNL AX, BX
CMOVNL r32, r/m32CMOVNL EAX, EBX
CMOVNLE r16, r/m160F 4F /r不小等于(ZF=0 and SF=OF)CMOVNLE AX, BX
CMOVNLE r32, r/m32CMOVNLE EAX, EBX
CMOVNO r16, r/m160F 41 /r无溢出(OF=0)CMOVNO AX, BX
CMOVNO r32, r/m32CMOVNO EAX, EBX
CMOVNP r16, r/m160F 4B /r非偶数(PF=0)CMOVNP AX, BX
CMOVNP r32, r/m32CMOVNP EAX, EBX
CMOVNS r16, r/m160F 49 /r非负数(SF=0)CMOVNS AX, BX
CMOVNS r32, r/m32CMOVNS EAX, EBX
CMOVNZ r16, r/m160F 45 /r非零(ZF=0)CMOVNZ AX, BX
CMOVNZ r32, r/m32CMOVNZ EAX, EBX
CMOVO r16, r/m160F 40 /r溢出(OF=1)CMOVO AX, BX
CMOVO r32, r/m32CMOVO EAX, EBX
CMOVP r16, r/m160F 4A /r偶数(PF=1)CMOVP AX, BX
CMOVP r32, r/m32CMOVP EAX, EBX
CMOVPE r16, r/m160F 4A /r偶数(PF=1)CMOVPE AX, BX
CMOVPE r32, r/m32CMOVPE EAX, EBX
CMOVPO r16, r/m160F 4B /r奇数(PF=0)CMOVPO AX, BX
CMOVPO r32, r/m32CMOVPO EAX, EBX
CMOVS r16, r/m160F 48 /r负数(SF=1)CMOVS AX, BX
CMOVS r32, r/m32CMOVS EAX, EBX
CMOVZ r16, r/m160F 44 /r为零(ZF=1)CMOVZ AX, BX
CMOVZ r32, r/m32CMOVZ EAX, EBX
CMPCMP AL, imm83C ib设置 AF CF OF PF SF ZF比较大小,然后设置标志位CMP AL, 1F
CMP AX, imm163D iwCMP AX, 4F80
CMP EAX, imm323D idCMP EAX, 00004F80
CMP r/m8, imm880 /7 ibCMP BYTE PTR [006387EA], 39
CMP r/m16,imm1681 /7 iwCMP WORD PTR [006387EA], 1039
CMP r/m32,imm3281 /7 idCMP DWORD PTR [006387EA], 00001039
CMP r/m16,imm883 /7 ibCMP WORD PTR [006387EA], 39
CMP r/m32,imm883 /7 ibCMP DWORD PTR [006387EA], 39
CMP r/m8,r838 /rCMP BYTE PTR [006387EA], AL
CMP r/m16,r1639 /rCMP WORD PTR [006387EA], AX
CMP r/m32,r3239 / rCMP DWORD PTR [006387EA], EAX
CMP r8,r/m83A /rCMP AL, [006387EA]
CMP r16,r/m163B /rCMP AX, [006387EA]
CMP r32,r/m323B /rCMP EAX, [006387EA]
CMPSCMPS m8, m8A6设置 AF CF OF PF SF ZF比较字符串,每次比较1个字节CMPS STRING1, STRING2 ;源串DS:(E)SI,目的串:ES:(E)DI
CMPS m16, m16A7比较字符串,每次比较1个字CMPS STRING1, STRING2 ;源串DS:(E)SI,目的串:ES:(E)DI
CMPS m32, m32A7比较字符串,每次比较1个双字CMPS STRING1, STRING2 ;源串DS:(E)SI,目的串:ES:(E)DI (386+)
CMPSBA6比较字符串,每次比较1个字节CMPSB ;源串DS:(E)SI,目的串:ES:(E)DI
CMPSWA7比较字符串,每次比较1个字CMPSW ;源串DS:(E)SI,目的串:ES:(E)DI
CMPSDA7比较字符串,每次比较1个双字CMPSD ;源串DS:(E)SI,目的串:ES:(E)DI (386+)
CMPXCHGCMPXCHG r/m8,r80F 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,r160F B1 /rCMPXCHG BX,CX ;如果AX与BX相等,则CX送BX且ZF置1;否则BX送CX,且ZF清0
CMPXCHG r/m32,r320F B1 /rCMPXCHG EBX,ECX ;如果EAX与EBX相等,则ECX送EBX且ZF置1;否则EBX送ECX,且ZF清0
CMPXCHG8BCMPXCHG8B m640F C7 /1 m64设置 ZF比较交换 (486+)CMPXCHG [ESI] ;比较EDX:EAX与64位的目标,如果相等则ECX:EBX送往目标且ZF置1,否则目标送EDX:EAX且ZF清0
CPUIDCPUID0F A2不影响标志位CPU标识送EAX、EBX、ECX、EDXCPUID
CWDCWD99不影响标志位将AX带符号扩展到DX:AXCWD
CWDECWDE98不影响标志位将AX带符号扩展到EAXCWDE
DAADAA27设置 AF CF PF SF ZF加法后的10进制调整ALDAA
DASDAS2F设置 AF CF PF SF ZF减法后的10进制调整ALDAS
DECDEC r/m8FE /1设置 AF OF PF SF ZF目标减1DEC BYTE PTR [00458A90]
DEC r/m16FF /1DEC WORD PTR [00458A90]
DEC r/m32FF /1DEC DWORD PTR [00458A90]
DEC r1648 +rwDEC AX
DEC r3248 +rdDEC EAX
DIVDIV r/m8F6 /6AF CF OF PF SF ZF 未定义无符号除法DIV BL ;AX除以BL,商在AL中,余数在AH中
DIV r/m16F6 /7DIV BX ;DX:AX除以BX,商在AX中,余数在DX中
DIV r/m32F6 /7DIV EBX;EDX:EAX除以BX,商在EAX中,余数在EDX中
EMMSEMMS0F 77不影响标志位清空MMX状态EMMS
ENTERENTER imm16,0C8 iw 00不影响标志位为子程序建立堆栈框架,imm16指定要分配的堆栈大小,另外一个操作数指明子程序的等级 (80188+)ENTER 12,0
ENTER imm16,1C8 iw 01ENTER 12,1
ENTER imm16,imm8C8 iw ibDENTER 12,4
ESCESC 0D8h xxh不影响标志位处理器放弃总线ESC 0
ESC 1D9h xxhESC 1
ESC 2DAh xxhESC 2
ESC 3DBh xxhESC 3
ESC 4DCh xxhESC 4
ESC 5DDh xxhESC 5
ESC 6DEh xxhESC 6
ESC 7DFh xxhESC 7
F2XM1F2XM1D9 F0设置C1 (C0, C2, C3未定义)ST(0)←(2**ST(0) - 1)F2XM1
FABSFABSD9 E1设置C1 (C0, C2, C3未定义)求绝对值:ST(0)←ABS(ST(0))FABS
FADDFADD m32realD8 /0设置C1 (C0, C2, C3未定义)实数加法:ST(0)←ST(0)+m32realFADD REAL4 PTR [00459AF0]
FADD m64realDC /0实数加法:ST(0)←ST(0)+m64realFADD 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)
FADDPFADDP ST(i), ST(0)DE C0+i设置C1 (C0, C2, C3未定义)先进行实数加法:ST(i)←ST(i)+ST(0),然后进行一次出栈操作FADDP ST(1), ST(0)
FADDPDE C1先进行实数加法:ST(0)←ST(0)+ST(1),然后进行一次出栈操作FADDP
FIADDFIADD m32intDA /0设置C1 (C0, C2, C3未定义)加整数:ST(0)←ST(0)+m32intFIADD DWORD PTR [00812CD0]
FIADD m16intDE /0加整数:ST(0)←ST(0)+m16intFIADD WORD PTR [00812CD0]
FBLDFBLD m80bcdDF /4设置C1 (C0, C2, C3未定义)将BCD数装入ST(0),然后压栈push ST(0) 
FBSTPFBSTP m80bcdDF /6设置C1 (C0, C2, C3未定义)将ST(0)以BCD数保存在m80bcd,然后出栈pop ST(0) 
FCHSFCHSD9 E0设置C1 (C0, C2, C3未定义)改变ST(0)的符号位,即求负数FCHS
FCLEXFCLEX9B DB E2PE, UE, OE, ZE, DE, IE, ES, SF, B 清0,设置C0 (C1, C2, C3未定义)清除浮点异常标志(检查非屏蔽浮点异常)FCLEX
FNCLEXFNCLEXDB E2PE, UE, OE, ZE, DE, IE, ES, SF, B 清0,设置C0 (C1, C2, C3未定义)清除浮点异常标志(不检查非屏蔽浮点异常)FNCLEX
FCMOVccFCMOVB 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+iunordered(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+inot unordered(PF=1),设置C1 (C0, C2, C3未定义)FCMOVNBE ST(0), ST(1)
FCOMFCOM m32realD8 /2设置C1,C0, C2, C3实数比较:ST(0)-m32real,设置标志位FCOM REAL4 PTR [00812CD0]
FCOM m64realDC /2实数比较:ST(0)-m64real,设置标志位FCOM REAL8 PTR [00812CD0]
FCOM ST(i)D8 D0+i实数比较:ST(0)-ST(i),设置标志位FCOM ST(2)
FCOMD8 D1实数比较:ST(0)-ST(1),设置标志位FCOM
FCOMPFCOMP m32realD8 /3设置C1,C0, C2, C3实数比较:ST(0)-m32real,设置标志位,执行一次出栈操作FCOMP REAL4 PTR [00812CD0]
FCOMP m64realDC /3实数比较:ST(0)-m64real,设置标志位,执行一次出栈操作FCOMP REAL8 PTR [00812CD0]
FCOMP ST(i)D8 D8+i实数比较:ST(0)-ST(i),设置标志位,执行一次出栈操作FCOMP ST(2)
FCOMPD8 D9实数比较:ST(0)-ST(1),设置标志位,执行一次出栈操作FCOMP
FCOMIFCOMI ST, ST(i)DB F0+i设置ZF,PF,CF,C1实数比较:ST(0)-ST(i),设置标志位FCOMI ST, ST(1)
FCOMIPFCOMIP ST, ST(i)DF F0+i设置ZF,PF,CF,C1实数比较:ST(0)-ST(i),设置标志位,执行一次出栈操作FCOMIP ST, ST(1)
FUCOMIFUCOMI ST, ST(i)DB E8+i设置ZF,PF,CF,C1实数比较:ST(0)-ST(i),检查ordered值,设置标志位FCOMIP ST, ST(1)
FUCOMIPFUCOMIP ST, ST(i)DF E8+i设置ZF,PF,CF,C1实数比较:ST(0)-ST(i),检查ordered值,设置标志位,执行一次出栈操作FUCOMIP ST, ST(1)
FCOSFCOSD9 FF设置C1,C2余弦函数COS,ST(0)←cosine(ST(0))FCOS
FDECSTPFDECSTPD9 F6设置C1 (C0, C2, C3未定义)将FPU的栈顶指针值减小1FDECSTP
FDIVFDIV m32realD8 /6设置C1 (C0, C2, C3未定义)实数除法:ST(0)←ST(0)/m32realFDIV REAL4 PTR [00459AF0]
FDIV m64realDC /6实数除法:ST(0)←ST(0)/m64realFDIV 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)
FDIVPFDIVP ST(i), ST(0)DE F8+i设置C1 (C0, C2, C3未定义)实数除法:ST(i)←ST(i)/ST(0),执行一次出栈操作FDIVP ST(1), ST(0)
FDIVPDE F9实数除法:ST(1)←ST(1)/ST(0),执行一次出栈操作FDIVP
FIDIVFIDIV m32intDA /6设置C1 (C0, C2, C3未定义)除以整数:ST(0)←ST(0)/m32intFIDIV DWORD PTR [00459AF0]
FIDIV m16intDE /6除以整数:ST(0)←ST(0)/m16intFIDIV WORD PTR [00459AF0]
FDIVRFDIVR m32realD8 /7设置C1 (C0, C2, C3未定义)实数除法:ST(0)←m32real/ST(0)FDIVR REAL4 PTR [00459AF0]
FDIVR m64realDC /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)
FDIVRPFDIVRP ST(i), ST(0)DE F0+i设置C1 (C0, C2, C3未定义)实数除法:ST(i)←ST(0)/ST(i),执行一次出栈操作FDIVRP ST(1), ST(0)
FDIVRPDE F1实数除法:ST(1)←ST(0)/ST(1),执行一次出栈操作FDIVRP
FIDIVRFIDIVR m32intDA /7设置C1 (C0, C2, C3未定义)被整数除:ST(0)←m32int/ST(0)FIDIVR DWORD PTR [00459AF0]
FIDIVR m16intDE /7被整数除:ST(0)←m16int/ST(0)FIDIVR WORD PTR [00459AF0]
FFREEFFREE ST(i)DD C0+i(C0, C1,C2, C3未定义)将与ST(i)相对应的标志位设置为空,即TAG(i)←11BFFREE ST(1)
FICOMFICOM m16intDE /2设置 C1,C0, C2, C3和整数比较:ST(0)- m16int,设置标志FICOM WORD PTR [00459AF0]
FICOM m32intDA /2和整数比较:ST(0)- m32int,设置标志FICOM DWORD PTR [00459AF0]
FICOMPFICOMP m16intDE /3设置C1,C0, C2, C3和整数比较:ST(0)- m16int,设置标志,执行一次出栈操作FICOMP WORD PTR [00459AF0]
FICOMP m32intDA /3和整数比较:ST(0)- m32int,设置标志,执行一次出栈操作FICOMP DWORD PTR [00459AF0]
FILDFILD m16intDF /0设置C1 (C0, C2, C3未定义)将16位整数压栈,即装入ST(0)FILD WORD PTR [00459AF0]
FILD m32intDB /0将32位整数压栈,即装入ST(0)FILD DWORD PTR [00459AF0]
FILD m64intDF /5将64位整数压栈,即装入ST(0) 
FINCSTPFINCSTPD9 F7设置C1 (C0, C2, C3未定义)将FPU的栈顶指针值增大1FINCSTP
FINITFINIT9B DB E3设置C1 (C0, C2, C3未定义)初始化FPU,检查非屏蔽浮点异常FINIT
FNINITFNINITDB E3设置C1 (C0, C2, C3未定义)初始化FPU,不检查非屏蔽浮点异常FNINIT
FISTFIST m16intDF /2设置C1 (C0, C2, C3未定义)将ST(0)以16位整数保存到m16intFIST WORD PTR [00459AF0]
FIST m32intDB /2将ST(0)以32位整数保存到m32intFIST DWORD PTR [00459AF0]
FISTPFISTP m16intDF /3设置C1 (C0, C2, C3未定义)将ST(0)以16位整数保存到m16int,执行一次出栈操作FISTP WORD PTR [00459AF0]
FISTP m32intDB /3将ST(0)以32位整数保存到m32int,执行一次出栈操作FISTP DWORD PTR [00459AF0]
FISTP m64intDF /7将ST(0)以64位整数保存到m64int,执行一次出栈操作 
FLDFLD m32realD9 /0设置C1 (C0, C2, C3未定义)将32位实数压栈,即装入ST(0)FLD REAL4 PTR [00459AF0]
FLD m64realDD /0将64位实数压栈,即装入ST(0)FLD REAL8 PTR [00459AF0]
FLD m80realDB /5将80位实数压栈,即装入ST(0) 
FLD ST(i)D9 C0+i将ST(i)压栈,即装入ST(0)FLD ST(7)
FLD1FLD1D9 E8设置C1 (C0, C2, C3未定义)将+1.0压栈,即装入ST(0)FLD1
FLDL2TFLDL2TD9 E9设置C1 (C0, C2, C3未定义)将log2(10)压栈,即装入ST(0)FLDL2T
FLDL2EFLDL2ED9 EA设置C1 (C0, C2, C3未定义)将log2(e)压栈,即装入ST(0)FLDL2E
FLDPIFLDPID9 EB设置C1 (C0, C2, C3未定义)将pi压栈,即装入ST(0)FLDPI
FLDLG2FLDLG2D9 EC设置C1 (C0, C2, C3未定义)将log10(2)压栈,即装入ST(0)FLDLG2
FLDLN2FLDLN2D9 ED设置C1 (C0, C2, C3未定义)将loge(2)压栈,即装入ST(0)FLDLN2
FLDZFLDZD9 EE设置C1 (C0, C2, C3未定义)将+0.0压栈,即装入ST(0)FLDZ
FLDCWFLDCW m2byteD9 /5C1, C0, C2, C3 未定义从m2byte装入FPU控制字FLDCW BYTE PTR [00459AF0]
FLDENVFLDENV m14/28byteD9 /4C1, C0, C2, C3 未定义从m14/28byte装入FPU环境FLDENV BYTE PTR [00459AF0]
FMULFMUL m32realD8 /1设置C1 (C0, C2, C3未定义)实数乘法:ST(0)←ST(0)*m32realFMUL REAL4 PTR [00459AF0]
FMUL m64realDC /1实数乘法:ST(0)←ST(0)*m64realFMUL 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)
FMULPFMULP ST(i), ST(0)DE C8+i设置C1 (C0, C2, C3未定义)实数乘法:ST(i)←ST(i)*ST(0),执行一次出栈操作FMULP ST(1), ST(0)
FMULPDE C9实数乘法:ST(1)←ST(1)*ST(0),执行一次出栈操作FMULP
FIMULFIMUL m32intDA /1设置C1 (C0, C2, C3未定义)乘以整数:ST(0)←m32int*ST(0)FIMUL DWORD PTR [00459AF0]
FIMUL m16intDE /1乘以整数:ST(0)←m16int*ST(0)FIMUL WORD PTR [00459AF0]
FNOPFNOPD9 D0C1, C0, C2, C3 未定义空操作(等同于NOP)FNOP
FPATANFPATAND9 F3设置C1 (C0, C2, C3未定义)反正切函数arctan,ST(1)←arctan(ST(1)/ST(0)),执行一次出栈操作FPATAN
FPREMFPREMD9 F8设置C1,C0, C2, C3取余数,ST(0)←ST(0) MOD ST(1)FPREM
FPREM1FPREM1D9 F5设置C1,C0, C2, C3取余数(使用IEEE标准),ST(0)←ST(0) MOD ST(1)FPREM1
FATANFATAND9 F2设置C1,C2 (C0, C3未定义)正切函数Tan,ST(0)←tangent(ST(0)),执行一次压栈1.0的操作FATAN
FRNDINTFRNDINTD9 FC设置C1 (C0,C2,C3未定义)取整(四舍五入,当小数部分刚好等于0.5时:如果整数部分为偶数,则“舍”;如果整数部分为奇数,则“入”),ST(0)←Round(ST(0))FRNDINT
FRSTORFRSTOR m94/108byteDD /4设置C0,C1,C2,C3从m94/108byte装入FPU状态FRSTOR BYTE PTR [00459AF0]
FSAVEFSAVE m94/108byte9B DD /6设置C0,C1,C2,C3将FPU状态保存在m94/108byte中,检查非屏蔽浮点异常,然后初始化FPUFSAVE BYTE PTR [00459AF0]
FNSAVEFNSAVE m94/108byte9B DD /6设置C0,C1,C2,C3将FPU状态保存在m94/108byte中,不检查非屏蔽浮点异常,然后初始化FPUFNSAVE BYTE PTR [00459AF0]
FSCALEFSCALED9 FD设置C1 (C0,C2,C3 未定义)ST(0)←ST(0)* 2^ST(1)FSCALE
FSINFSIND9 FE设置C1,C2 (C0,C3 未定义)正弦函数Sin,ST(0)←sine(ST(0))FSIN
FSINCOSFSINCOSD9 FB设置C1,C2 (C0,C3 未定义)SinCos函数: ST(0)←sine(ST(0)),PUSH cosine(ST(0))FSINCOS
FSQRTFSQRTD9 FA设置C1 (C0,C2, C3 未定义)平方根函数: ST(0)←SQRT(ST(0))FSQRT
FSTFST m32realD9 /2设置C1 (C0, C2, C3未定义)将ST(0)复制到m32realFST REAL4 PTR [00459AF0]
FST m64realDD /2将ST(0)复制到m64realFST REAL8 PTR [00459AF0]
FST ST(i)DD D0+i将ST(0)复制到ST(i)FST ST(3)
FSTPFSTP m32realD9 /3设置C1 (C0, C2, C3未定义)将ST(0)复制到m32real,执行一次出栈操作FSTP REAL4 PTR [00459AF0]
FSTP m64realDD /3将ST(0)复制到m64real,执行一次出栈操作FSTP REAL8 PTR [00459AF0]
FSTP m80realDB /7将ST(0)复制到m80real,执行一次出栈操作 
FSTP ST(i)DD D8+i将ST(0)复制到ST(i),执行一次出栈操作FSTP ST(3)
FSTCWFSTCW m2byte9B D9 /7C0,C1,C2,C3 未定义将FPU控制字保存到m2byte,检查非屏蔽浮点异常FSTCW BYTE PTR [00459AF0]
FNSTCWFNSTCW m2byte9B D9 /7C0,C1,C2,C3 未定义将FPU控制字保存到m2byte,不检查非屏蔽浮点异常FNSTCW BYTE PTR [00459AF0]
FSTENVFSTENV m14/28byte9B D9 /6C0,C1,C2,C3 未定义将FPU环境保存到m14/28byte,检查非屏蔽浮点异常,然后屏蔽所有浮点异常FSTENV BYTE PTR [00459AF0]
FNSTENVFNSTENV m14/28byteD9 /6C0,C1,C2,C3 未定义将FPU环境字保存到m14/28byte,不检查非屏蔽浮点异常,然后屏蔽所有浮点异常FNSTENV BYTE PTR [00459AF0]
FSTSWFSTSW m2byte9B DD /7C0,C1,C2,C3 未定义将FPU状态字保存到m2byte,检查非屏蔽浮点异常FSTSW BYTE PTR [00459AF0]
FSTSW AX9B DF E0将FPU状态字保存到AX,检查非屏蔽浮点异常FSTSW AX
FNSTSWFNSTSW m2byteDD /7C0,C1,C2,C3 未定义将FPU状态字保存到m2byte,不检查非屏蔽浮点异常FNSTSW BYTE PTR [00459AF0]
FNSTSW AXDF E0将FPU状态字保存到AX,不检查非屏蔽浮点异常FNSTSW AX
FSUBFSUB m32realD8 /4设置C1 (C0, C2, C3未定义)实数减法:ST(0)←ST(0)-m32realFSUB REAL4 PTR [00459AF0]
FSUB m64realDC /4实数减法:ST(0)←ST(0)-m64realFSUB 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)
FSUBPFSUBP ST(i), ST(0)DE E8-i设置C1 (C0, C2, C3未定义)先进行实数减法:ST(i)←ST(i)-ST(0),然后进行一次出栈操作FSUBP ST(1), ST(0)
FSUBPDE E9先进行实数减法:ST(1)←ST(1)-ST(0),然后进行一次出栈操作FSUBP
FISUBFISUB m32intDA /4设置C1 (C0, C2, C3未定义)减整数:ST(0)←ST(0)-m32intFISUB DWORD PTR [00812CD0]
FISUB m16intDE /4减整数:ST(0)←ST(0)-m16intFISUB WORD PTR [00812CD0]
FSUBRFSUBR m32realD8 /5设置C1 (C0, C2, C3未定义)实数减法:ST(0)←m32real-ST(0)FSUBR REAL4 PTR [00459AF0]
FSUBR m64realDC /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)
FSUBRPFSUBRP ST(i), ST(0)DE E0+i设置C1 (C0, C2, C3未定义)实数减法:ST(i)←ST(0)-ST(i),执行一次出栈操作FSUBRP ST(1), ST(0)
FSUBRPDE E1实数减法:ST(1)←ST(0)-ST(1),执行一次出栈操作FSUBRP
FISUBRFISUBR m32intDA /5设置C1 (C0, C2, C3未定义)被整数减:ST(0)←m32int-ST(0)FISUBR DWORD PTR [00459AF0]
FISUBR m16intDE /5被整数减:ST(0)←m16int-ST(0)FISUBR WORD PTR [00459AF0]
FTSTFTSTD9 E4设置C0,C1, C2, C3零检测,将ST(0)和0.0相比较FTST
FUCOMFUCOM ST(i)DD E0+i设置C0,C1, C2, C3比较ST(0)和ST(i)FUCOM ST(4)
FUCOMDD E1比较ST(0)和ST(1)FUCOM
FUCOMPFUCOMP ST(i)DD E8+i设置C0,C1, C2, C3比较ST(0)和ST(i),执行一次出栈操作FUCOMP ST(4)
FUCOMPDD E9比较ST(0)和ST(1),执行一次出栈操作FUCOMP
FUCOMPPFUCOMPPDD E8+i设置C0,C1, C2, C3比较ST(0)和ST(1),执行两次出栈操作FUCOMPP
FWAITFWAIT9BC0,C1, C2, C3 未定义等待,检查非屏蔽浮点异常FWAIT
FXAMFXAMD9 E5设置C0,C1, C2, C3检查ST(0)中的数值类型FXAM
FXCHFXCH ST(i)D9 C8+i设置C1 (C0, C2, C3未定义)交换ST(0)和ST(i)的内容FXCH ST(4)
FXCHD9 C9交换ST(0)和ST(1)的内容FXCH
FXRSTORFXRSTOR m512byte0F AE /1恢复所有标志位由m512byte恢复寄存器x87 FPU, MMX, XMM, 和MXCSR的状态FXRSTOR BYTE PTR [00459AF0]
FXSAVEFXSAVE m512byte0F AE /0不影响标志位将寄存器x87 FPU, MMX, XMM, 和MXCSR的状态保存到m512byteFXSAVE BYTE PTR [00459AF0]
FXTRACTFXTRACTD9 F4设置C1 (C0, C2, C3未定义)将ST(0)中的数分成exponent和significand两部分,ST(0)←Exponent(ST(0)),PUSH Significand(ST(0))FXTRACT
FYL2XFYL2XD9 F1设置C1 (C0, C2, C3未定义)计算:ST(1)←ST(1)*log2(ST(0)),执行一次出栈操作FYL2X
FYL2XP1FYL2XP1D9 F9设置C1 (C0, C2, C3未定义)计算:ST(1) ←ST(1)*log2(ST(0) + 1.0),执行一次出栈操作

 

 

 

转自无花果编程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值