作者在 2010-12-30 20:11:43 发布以下内容
--------------------------------------------------------------FBLD
集把80位打包BCD值加载到FPU寄存器中以及从FPU寄存获取这些值FBSTP
同上
--------------------------------------------------------------fbld
source--------------------------------------------------------------FST
用于获取FPU寄存器堆栈中顶部位置,并且把这个值放到内存位置中FSTS
同上,单精FSTL 同上,双精
----------------------------------------------------------------------------------------------------------------------------
指令 描述FLD1 把+1.0压入FPU堆栈中FLDL2T
把10的对数(底数2)压入FPU堆栈中FLDL2E
把e的对数(底数2)压入FPU堆栈中FLDPI 把PI值压入FPU堆栈中FLDLG2
把2的对数(底数10)压入FPU堆栈中FLDLN2
把2的对数(底数e)压入FPU堆栈中FLDZ
把+0.0压入FPU堆栈中
----------------------------------------------------------------------------------------------------------------------------
指令 描述MOVAPS
把4个对位的打包单精度值传送到XMM寄存器或者内存MOVUPS
把4个不对准的打包单精度值传到XMM寄传器或者内存MOVSS
把1个单精度值传送到内存或者寄存器的低双字节MOVLPS
把2个单精度值传送到内存或者寄存器的低四字节MOVHPS
把2个单精度值传送到内存或者寄存器的高四字节MOVLHPS
把2个单精度从低四字传到高四字MOVHLPS 把2个单精度值从高四字传送到低四字MOVSHDUP
(SSE3) 从内存或者XMM寄存器传送128位值,复制2个和第4个32位数据元素MOVSLDUP (SSE3)
从内存或者XMM寄存器传送128位值,复制第1个和第3个32位数据元素MOVDDUP (SSE3)
从内存或者XMM寄存器传送64位双精度浮点值,把它复制到128位XMM寄存器中
----------------------------------------------------------------------------------------------------------------------------
指令 转换CVTDQ2PD
打包双字整数到打包双精度FP(XMM)CVTDQ2PS 打包双字整数到打包单精度FP(XMM)CVTPD2DQ
打包双精度FP到打包双字整数(XMM)CVTPD2PI
打包双精度FP到打包双字整数(XMM)CVTPD2PS 打包双精度FP到打包单精度FP(XMM)CVTPI2PD
打包双字整数到打包双精度FP(XMM)CVTPI2PS
打包双字整数到打包单精度FP(XMM)CVTPS2DQ 打包单精度FP到打包双字速度(XMM)CVTPS2PD
打包单精度FP到打包双精度FP(XMM)CVTPS2PI
打包双精度FP到打包双字整数(XMM)CVTTPD2PI
打包双精度FP到打包双字整数(XMM,截断)CVTTPD2DQ
打包双精度FP到打包双字整数(XMM,截断)CVTTPS2DQ
打包单精度FP到打包双字整数(XMM,截断)CVTTPS2PI
打包单精度FP到打包双字整数(XMM,截
断)----------------------------------------------------------------------------------------------------------------------------ADD
(x)
用于把两个整数相加
--------------------------------------------------------------add
source,
destination-------------------------------------------------------------ADC
(x) 带符号或者无符号整数,
可以把值分割为多个双字数据元素并且对每个元素执行加法操作
-------------------------------------------------------------adc source,
destination--------------------------------------------------------------SUB
(x) 减法的基本形式SBB (X)
带借位减法指令--------------------------------------------------------------sub
source,
destination--------------------------------------------------------------MUL
(x) 无符号乘法IMUL (x)
带符号乘法--------------------------------------------------------------mul
sourceimul multiplier, source,
destination--------------------------------------------------------------DIV
(x) 无符号除法IDIV (x)
带符号除法--------------------------------------------------------------div
divisoridiv
divisor--------------------------------------------------------------SAL
向左算述移位SHL 向左逻辑移位SAR
移位除法 (符号操作GOOD)SHR 移位除法
(小心位清0和正负
数)----------------------------------------------------------------------------------------------------------------------------
指令 描述ROL 向左循环移位ROR
向右循环位移RCL 向左循环移位,并且包含进位标志RCR
向右循环移位,并且包含进拉标志
----------------------------------------------------------------------------------------------------------------------------
指令 描述AAA 调整加法操作的结果AAS
调整减法操作的结果AAM 调整乘法作的结果AAD
准备除法操作的被除数
----------------------------------------------------------------------------------------------------------------------------AND
位与NOT 位非OR
位或XOR 异域TEST
检查EFLAGS寄存器,在8位、16位、32位值之间执行接位逻辑AND操作,
并且相应地设置符号、零和奇偶校验标志,而且不修改目标值
--------------------------------------------------------------AND、OR、XOR
指令格式and source,
destination--------------------------------------------------------------FSTSW
把状态寄存器读取到一个双字内存位置或者AX寄存器中FSTCW
控制寄存器的设置加载到双字内存位置中查看设置内容FLDCW 把双字内存值加载到控制寄存器中FILDS
把一个双字整数值加载到FPU寄存器堆栈中FISTS
获得寄存器堆栈顶部的值FIST 助记符指定了S字符FLDS/FLDL
加载内存中的单精度/双精度值FST/FSTP
用于把ST0寄存器数据传送到另一个FPU寄存器或者数据从FPU寄存器传送到内存位置FXCH
交换ST0寄存器和另一个FPU寄存器的值
----------------------------------------------------------------------------------------------------------------------------
指令 描述FADD/FADDS 浮点加法/32位FDIV
浮点除法FDIVR 反向浮点除法FMUL
浮点乘法FSUB 浮点减法FSUBR
反向浮点减法
----------------------------------------------------------------------------------------------------------------------------
指令 描述F2XMI
计算2的乘方(次数为ST0中的值)减1FABS 计算ST0中的值的绝对值FCHS
改变ST0中的值的符号FCOS 计算ST0中的值的余弦FPATAN
计算ST0中的值的部分反正切FPREM
计算ST0中的值除以ST1中的值部分余数FPREM1
计算ST0中的值除以ST1中的值的IEEE部分余数FPTAN 计算ST0中的值部分正切FRNDINT
把ST0中的值舍入到最近的整数FSCALE
把计算ST0乘以2的ST1次乘方FSIN 计算ST0中的值的正弦FSINCOS
计算ST0中的值的正弦和余弦FSQRT 计算ST0中的值的平方根FYL2X/FYL2X1
计算ST1*log ST0(以2为基数)FYL2XPI
计算ST1*log(ST0+1)(以2为基数)FSAVE
把所有FPU寄存器复制到一个108字节的内存位置 ,然后初始化FPU状态FRSTOR
恢复FPU时,所有FPU寄存器(包括数据寄存器)都被复为执行FSAVE指令时的状态
----------------------------------------------------------------------------------------------------------------------------
指令 描述FNCLEX 清空浮点异常标志FNSAVE
把FPU状态保存到内存中FNSTCW 保存FPU控制寄存器FNSTENV
把FPU操作环境保存到内存中FSTSW
把FPU状态寄存器保存或者保存在AX寄存器中SAHF
把AH寄存器的第0,2,4,6和7位分别传送到进位、奇偶校验、对准、零和符号标志,
不影响EFLAGS寄存器中的其它位FLDENV
把内存块的值加载回FPU环境中
----------------------------------------------------------------------------------------------------------------------------MOVSB
传送单一字节MOVSW 传送一个字(2字节)MOVSL
传送一个双字(4字
节)----------------------------------------------------------------------------------------------------------------------------STD
用于设置DF标志CLD
将DF标志清零
----------------------------------------------------------------------------------------------------------------------------REPE
等于时重复REPNE 不等于时重复REPNZ
不为零时重复REPZ
为零时重复
----------------------------------------------------------------------------------------------------------------------------LODSB
把一个字节加载到AL寄存器中LODSW
把一个字(2字节)加载到AX寄存器中LODSL
把一个双字(4字节)加载到EAX寄存器中
----------------------------------------------------------------------------------------------------------------------------STOSB
存储AL寄存器中一个字节数据STOSW
在座AX寄存器中一个字(2字节)的数据STOSL
在座EAX寄存器中一个双字(4个字节)的数据
----------------------------------------------------------------------------------------------------------------------------FCOM
比较ST0寄存器和ST1寄存器FCOM ST(x) 比较ST0寄存器和另一个FPU
寄存器FCOM source 比较ST0寄存器和32位或者64位的内存值FCOMP
比较ST0寄存器和ST1寄存器,并且弹出堆栈FCOMP ST(x)
比较ST0寄存器和另一个FPU寄存器,并且弹出堆栈FCOMP source
比较ST0寄存器和32位或者64位的内存值,并且弹出堆栈FCOMPP
比较ST0寄存器和ST1寄存器,并且两次弹出堆栈FTST
比较ST0寄存器和值
0.0----------------------------------------------------------------------------------------------------------------------------FCOMI
比较ST0寄存器和ST(x)寄存器FCOMIP
比较ST0寄存器和ST(x)寄存器,并且弹出堆栈FUCOMI 在比较之前检查无序值FUCOMIP
在比较之前检查无序值,并且在比较之后弹出堆栈
----------------------------------------------------------------------------------------------------------------------------FCMVB
如果ST(0)小于ST(x),则进行传送FCMOVE
如果ST(0)等于ST(x),则进行传送FCMOVBE
如果ST(0)小于或者等于ST(x),则进传送FCMOVU
如果ST(0)无序,则进行传送FCMOVNB 如果ST(0)不小于ST(x),则进行传送FCMOVNE
如果ST(0)不等于ST(x),则进行传送FCMOVNBE
如果ST(0)不小于或者等于ST(x),则进行传送FCMOVNU
如果ST(0)非无序,则进行传送
--------------------------------------------------------------fcmovxx
source,
destination--------------------------------------------------------------CMPSB
比较字节值CMPSW 比较字(2字节)值CMPSL
比较双字(4字节)值REP 跨越多个字节重复地进行字符串比较REPE/REPZ
扫描字符串的字符,查找不匹配搜索字符的字符REPNE/REPNZ
扫描字符串的字符,查找匹配搜索字符的字符
----------------------------------------------------------------------------------------------------------------------------SCASB
比较内存中的一个字节和AL寄存器的值SCASW
比较内存的一个和AX寄存器的值SCAL
比较内存中的一个双字和EAX寄存器的值
----------------------------------------------------------------------------------------------------------------------------FINIT
初始化FPUFSTP (x)
把这个双精度浮点值压入程序堆栈
--------------------------------------------------------------