`
dafei2599
  • 浏览: 24528 次
  • 性别: Icon_minigender_1
  • 来自: 现在沈阳
社区版块
存档分类
最新评论

浮点指令

IE 
阅读更多
浮点指令  对下面的指令先做一些说明:
st(i):代表浮点寄存器,所说的出栈、入栈操作都是对st(i)的影响
src,dst,dest,op等都是指指令的操作数,src表示源操作数,dst/dest表示目的操作数
mem8,mem16,mem32,mem64,mem80等表示是内存操作数,后面的数值表示该操作数的内存位数(8位为一字节)
x <- y 表示将y的值放入x,例st(0) <- st(0) - st(1)表示将st(0)-st(1)的值放入浮点寄存器st(0)
1.  数据传递和对常量的操作指令 指令格式 指令含义 执行的操作
FLD src 装入实数到st(0) st(0) <- src (mem32/mem64/mem80)
FILD src 装入整数到st(0) st(0) <- src (mem16/mem32/mem64)
FBLD src  装入BCD数到st(0) st(0) <- src (mem80)
 

FLDZ 将0.0装入st(0) st(0) <- 0.0
FLD1 将1.0装入st(0) st(0) <- 1.0
FLDPI 将pi装入st(0) st(0) <- ?(ie, pi)
FLDL2T 将log2(10)装入st(0) st(0) <- log2(10)

FLDL2E 将log2(e)装入st(0) st(0) <- log2(e)
FLDLG2 将log10(2)装入st(0) st(0) <- log10(2)
FLDLN2 将loge(2)装入st(0) st(0) <- loge(2)
 
FST dest 保存实数st(0)到dest dest <- st(0) (mem32/mem64)
FSTP dest   dest <- st(0) (mem32/mem64/mem80);然后再执行一次出栈操作
FIST dest 将st(0)以整数保存到dest dest <- st(0) (mem32/mem64)
FISTP dest dest <- st(0) (mem16/mem32/mem64);然后再执行一次出栈操作
FBST dest 将st(0)以BCD保存到dest dest <- st(0) (mem80)
FBSTP dest    dest<- st(0) (mem80);然后再执行一次出栈操作

2.比较指令 指令格式 指令含义 执行的操作
FCOM 实数比较 将标志位设置为 st(0) - st(1) 的结果标志位
FCOM op 实数比较 将标志位设置为 st(0) - op (mem32/mem64)的结果标志位
 

FICOM op 和整数比较 将Flags值设置为st(0)-op 的结果op (mem16/mem32)
FICOMP op 和整数比较 将st(0)和op比较 op(mem16/mem32)后;再执行一次出栈操作
 
FTST  零检测  将st(0)和0.0比较
FUCOM st(i)    比较st(0) 和st(i)                  [486]
FUCOMP st(i)        比较st(0) 和st(i),并且执行一次出栈操作
FUCOMPP st(i)      比较st(0) 和st(i),并且执行两次出栈操作
FXAM    Examine: Eyeball st(0) (set condition codes)

3.运算指令 指令格式 指令含义 执行的操作
加法
FADD 加实数 st(0) <-st(0) + st(1)
FADD src   st(0) <-st(0) + src (mem32/mem64)
FADD st(i),st   st(i) <- st(i) + st(0)
FADDP st(i),st    st(i) <- st(i) + st(0);然后执行一次出栈操作
FIADD src  加上一个整数 st(0) <-st(0) + src (mem16/mem32)
减法
FSUB 减去一个实数 st(0) <- st(0) - st(1)
FSUB src   st(0) <-st(0) - src (reg/mem)
FSUB st(i),st   st(i) <-st(i) - st(0)
FSUBP st(i),st   st(i) <-st(i) - st(0),然后执行一次出栈操作
FSUBR st(i),st 用一个实数来减 st(0) <- st(i) - st(0)
FSUBRP st(i),st   st(0) <- st(i) - st(0),然后执行一次出栈操作
FISUB src 减去一个整数 st(0) <- st(0) - src (mem16/mem32)
FISUBR src 用一个整数来减 st(0) <- src - st(0) (mem16/mem32)
乘法

FMUL 乘上一个实数 st(0) <- st(0) * st(1)
FMUL st(i)   st(0) <- st(0) * st(i)
FMUL st(i),st   st(i) <- st(0) * st(i)
FMULP st(i),st   st(i) <- st(0) * st(i),然后执行一次出栈操作
FIMUL src 乘上一个整数 st(0) <- st(0) * src (mem16/mem32)
除法
FDIV  除以一个实数 st(0) <-st(0) /st(1)
FDIV st(i)   st(0) <- st(0) /t(i)
FDIV st(i),st   st(i) <-st(0) /st(i)
FDIVP st(i),st   st(i) <-st(0) /st(i),然后执行一次出栈操作
FIDIV src  除以一个整数 st(0) <- st(0) /src (mem16/mem32)
FDIVR st(i),st 用实数除 st(0) <- st(i) /st(0)
FDIVRP st(i),st   FDIVRP st(i),st
FIDIVR src  用整数除 st(0) <- src /st(0) (mem16/mem32)
 
FSQRT 平方根 st(0) <- sqrt st(0)
 
FSCALE 2的st(0)次方 st(0) <- 2 ^ st(0)
FXTRACT Extract exponent: st(0) <-exponent of st(0); and gets pushed
st(0) <-significand of st(0)
 
FPREM  取余数 st(0) <-st(0) MOD st(1)
FPREM1 取余数(IEEE),同FPREM,但是使用IEEE标准[486]
     
FRNDINT  取整(四舍五入) st(0) <- INT( st(0) ); depends on RC flag
 
FABS 求绝对值 st(0) <- ABS( st(0) ); removes sign
FCHS 改变符号位(求负数) st(0) <-st(0)
 
F2XM1 计算(2 ^ x)-1 st(0) <- (2 ^ st(0)) - 1
FYL2X  计算Y * log2(X) st(0)为Y;st(1)为X;将st(0)和st(1)变为st(0) * log2( st(1) )的值
 
FCOS 余弦函数Cos st(0) <- COS( st(0) )
FPTAN 正切函数tan st(0) <- TAN( st(0) )
FPATAN 反正切函数arctan st(0) <- ATAN( st(0) )
FSIN 正弦函数sin st(0) <- SIN( st(0) )
FSINCOS sincos函数 st(0) <-SIN( st(0) ),并且压入st(1)
st(0) <- COS( st(0) )
     
FYL2XP1  计算Y * log2(X+1) st(0)为Y; st(1)为X; 将st(0)和st(1)变为st(0) * log2( st(1)+1 )的值
处理器控制指令
FINIT 初始化FPU  
FSTSW AX 保存状态字的值到AX AX<- MSW
FSTSW dest 保存状态字的值到dest dest<-MSW (mem16)
     
FLDCW src 从src装入FPU的控制字 FPU CW <-src (mem16)
FSTCW dest 将FPU的控制字保存到dest dest<- FPU CW
     
FCLEX  清除异常  
   
FSTENV dest 保存环境到内存地址dest处 保存状态字、控制字、标志字和异常指针的值
FLDENV src 从内存地址src处装入保存的环境  
FSAVE dest 保存FPU的状态到dest处 94字节  
FRSTOR src 从src处装入由FSAVE保存的FPU状态  
     
FINCSTP 增加FPU的栈指针值 st(6) <-st(5); st(5) <-st(4),...,st(0) <-?
FDECSTP 减少FPU的栈指针值 st(0) <-st(1); st(1) <-st(2),...,st(7) <-?
     
FFREE st(i) 标志寄存器st(i)未被使用  
   
FNOP  空操作,等同CPU的nop st(0) <-st(0)
WAIT/FWAIT 同步FPU与CPU:停止CPU的运行,直到FPU完成当前操作码
 
FXCH 交换指令,交换st(0)和st(1)的值 st(0) <-st(1)
st(1) <- st(0)
分享到:
评论

相关推荐

    浮点指令-汇编语言程序设计

    浮点指令 对下面的指令先做一些说明: st(i):代表浮点寄存器,所说的出栈、入栈操作都是对st(i)的影响 src,dst,dest,op等都是指指令的操作数,src表示源操作数,dst/dest表示目的操作数 mem8,mem16,mem32,mem64...

    80X86浮点指令

    基于intel 80X86的浮点指令参考资料,介绍各种浮点指令操作。解密必备。

    ARM矢量浮点指令集参考手册

    ARM矢量浮点指令集参考手册

    个人整理的80387浮点指令

    根据《保护方式下80386及其编程》3.7.6节整理的80387浮点指令。软件环境为masm6.15+codeview4.10,绝大部分指令都给出了实际的例子。经试验,书中部分指令的说明与在该软件环境中的实际运行结果不一致,可能是编译器...

    浮点运算指令速查手册

    浮点运算指令速查手册 doc文件,对浮点运算指令介绍及使用

    浮点指令.doc

    src,dst,dest,op等都是指指令的操作数,src表示源操作数,dst/dest表示目的操作数 mem8,mem16,mem32,mem64,mem80等表示是内存操作数,后面的数值表示该操作数的内存位数(8位为一字节) x 表示将y的值放入x,例st...

    STM32F3xx_STM32F4xx使用浮点开方指令.pdf

    STM32F3xx/STM32F4xx ( ARM Cortex-M4 内核)中集成了 FPU ,也就是浮点指令单元,可以将浮点运算变得简单快速,但如果想要发挥出这个浮点运算的最大功效,必须使用浮点指令集,开发者可以直接使用浮点指令集,但...

    8088的寄存器浮点指令

    对下面的指令先做一些说明: st(i):代表浮点寄存器,所说的出栈、入栈操作都是对st(i)的影响 src,dst,dest,op等都是指指令的操作数,src表示源操作数,dst/dest表示目的操作数 mem8,mem16,mem32,mem64,mem80等表示...

    关于SSE浮点指令的介绍

    SSE是并行汇编指令,在浮点情况下,可将速度提升四倍.文档对sse的基本指令做了详细介绍。是个不可多得的sse教程

    FP系列浮点运算指令.rar

    FP系列浮点运算指令rar,FP系列浮点运算指令

    fpga浮点定制指令

    FPGA的一些指令,传上来有需要的分享一下吧,

    附录A:浮点指令补充1

    声明:本电子文档是《加密与解密(第四版)》的配套辅助电子教程!电子工业出版社依法对本作品享有专有出版权。任何未经权利人书面许可,复制、销售或通过信息网络传播本作

    mars实现的不使用浮点指令的加减乘除

    重庆大学 组成原理 project1 2013 实验报告和完整代码

    stm32硬件浮点使用方法

    这是在stm32中实现fft计算等浮点运算必须要先做的设置。我之前给的浮点运算例程,在此设置下,自己亲测是可用的,有问题的同学可以留言

    PowerPC(e200z6核)的汇编指令速查

    采用e200z6核的PowerPC芯片汇编指令,比较简略,可用于指令的速查。 此指令集仅适用于e200z6核,其它核的PowerPC指令略有差异。

    寄存器浮点指令

    主要有通用数据寄存器、状态寄存器、控制寄存器、标记寄存器

    ARM 芯片汇编指令集

    ARM 指令集 -------------------------- 寄存器和处理器模式(26-bit 体系) 寄存器和处理器模式(32-bit 体系) 程序状态寄存器和操纵它的指令 ...IEEE 浮点指令 汇编器伪指令 指令快速查找 ARM 指令格式

    ARM 指令集(英蓓特中文版chm格式)

    算术和逻辑指令 移位操作 乘法指令 比较指令 分支指令 条件执行 软件中断指令 APCS (ARM 过程调用标准) 编写安全的 32-bit 代码的基本规则 IEEE 浮点指令 汇编器伪指令...

    金山词霸汇编指令查询字典

    在学习和查看汇编代码时,经常会忘记汇编助记符的含义,虽然有一些汇编代码查询工具,但是不是不全就是使用不方便,其实,金山已经为我们提供了很好的工具,本字典收录的8086以及浮点指令共计200多条,是个超级好用的...

    Win32编程设计一个功能及界面风格类似于Windows计算器的计算器程序

    说明: 希望大家不要直接用这个做课设,该程序以及报告仅供大家参考,希望对同学们的学习有帮助。 主要实现的功能: 包含基本的四则运算、倒数...3.浮点数运算(浮点指令或者自己编程模拟)。 4.综合解决问题的能力。

Global site tag (gtag.js) - Google Analytics