奔腾指令速查手册(四)F

  
奔腾指令速查手册(四)F
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、付费专栏及课程。

余额充值