X87 FPU详解(1)

X87 FPU详解(1)

admin 2019年6月3日
  • 数据传输
  • 基本运算
  • 数据比较
  • 超越函数
  • 常量
  • 控制

1.数据传输

  • fld 将浮点值压入寄存器栈,源操作数可以是ST(i)或者内存地址
  • fild 从内存中读取一个有符号整数,将该值转换为扩展双精度值,并将此结果加载到寄存器栈中
  • fbld 从内存中读取压缩BCD操作数,将该值转换为一个扩展双精度值,并将结果加载到堆栈
  • fst 拷贝ST(0)到ST(i)或内存位置
  • fstp 执行与fst同样的操作,并且进行弹栈操作
  • fist 将ST(0)中的值转换为一个整数,并将结果保存在指定的内存位置
  • fistp 执行fist同样的操作,并进行弹栈操作
  • fisttp 利用截断把ST(0)中的值转换为整型数,把结果保存在指定的内存位置,同时弹出堆栈。支持SEE3处理器本指令有效。
  • fbstp 将ST(0)中的值转换为组合BCD格式,保存结果在指定的存储位置,并弹出堆栈
  • fxch 交换寄存器ST(0)和ST(i)的内容
  • fcmovcc 如果指定条件为真,则有条件地将ST(i)的内容复制到ST(0)。

fcmovcc:

CC描述测试条件
B小于CF==1
NB不小于CF==0
E等于ZF==1
NE不等于ZF==0
BE小于等于CF==1||ZF==1
NBE不小于等于CF==0&&ZF==0
U无序的PF==1
NU有序的PF==0

发表评论

电子邮件地址不会被公开。 必填项已用*标注