中易网

浮点指令性能

答案:2  悬赏:60  
解决时间 2021-03-14 02:10
请问高手,浮点指令性能和整数性能分别是个什么概念?
最佳答案
作为主CPU主要从事的运算,都是在许可范围内尽可能逼近的近似值,(相当多时候乘法比加法快,没想到吧?),而FPU这主要从事浮点运算,以前称之为协处理器,486以前并不包含在CPU中(8086~8087,80286~80287,80386~80387=80386DX, 80486SX~80487=80486DX,586=586+587……)浮点运算是高精度的运算方式,主要运用在科学和多媒体中。可以理解为小数点可移动的运算方式。目前速度AMD>>Inter

整数是指正整数、负整数和零,如-6、0、32 等。
浮点数是指带有有限位小数的有理数,如-10.8、0.00、25.01 等。
整数既可以是整数,也可以是浮点数,例如255 是整数,而255.0 则是浮点数。
整数运算,得到的结果是一个整数,并且计算结果中的小数部分将被忽略。例如:用整数运算时,100÷3=33。
浮点运算,得到的结果是一个浮点数,计算结果中的小数部分将保留下来。
例如:用浮点运算时,100.0÷3.0=33.33333333。

例如一颗子弹打到墙上,有一片土掉落,浮点运算强的,可能还能够把掉下来的灰尘也表现出来。
全部回答
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)
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
帝豪楼梯地址有知道的么?有点事想过去
邵东县职业中专学校是公办还是民办
西野马村地址在什么地方,想过去办事
怎么能玩守望先锋提高fps
胆碱酯酶高是怎么回事
现在惩戒的冷却是怎么算的?
血余炭的功效与作用,血余炭有哪些作用和功效
口袋妖怪银乘龙用什么技能
内牙三通怎么接啊
甘肃省农村信用社成县农村信用合作联社营业部
QQ水浒,铁三角+殷天锡+高廉 怎么排兵布阵?
秘鲁大使馆-商务处怎么去啊,有知道地址的么
dnf阿修罗怎么破防小丑
骐达低速轻刹车时ABS泵启动,但是ABS灯没亮,
我是一个小学生,我获得tga主播那个东西,我
推荐资讯
天龙八部新的王陵副本门票多少钱?在哪买?
葡萄糖、面粉等在空气中不完全燃烧时,大都有
谁在苏州东创科技园哪里面试过?哪里是不是骗
商丘到深圳有高铁回程为什么没有
广帮酒店用品地址在什么地方,想过去办事
GT650M Sli和GT750M该选哪个?
七k七k小游戏小花仙夜间版下载
晶晶在一个底面直径是20cm的圆柱形鱼缸里放36
某根铁丝全长72厘米,正好可以围成一个长8厘米
麻烦哪位大神,帮我鉴定一下阿迪达斯金标贝壳
郑州哪有卖手机充电宝的?
bigemap卫星地图怎么样?使用方便吗?
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?