高级数学函数在汇编语言中的应用
1. 浮点数舍入操作
一组指令将控制寄存器加载为向上舍入的值,将测试值加载到 ST0 寄存器,执行舍入操作,然后将结果存储在 result3 内存位置。程序汇编和链接后,可在调试器中运行查看其工作情况。
- 第一组指令执行后,舍入值应在 result1 内存位置,默认情况下,浮点数向上舍入为整数 4。
- 下一组指令执行后,舍入值应在 result2 内存位置,通过设置舍入位向下舍入,新的舍入值为整数 3。
- 最后一组指令执行后,舍入值应在 result3 内存位置,结果显示舍入位现在将值向上舍入到最接近的整数。
2. 部分余数
部分余数是浮点数除法中比较棘手的部分。部分余数的概念与浮点数除法的执行方式有关。除法操作的余数通过从被除数中连续减去除数来确定,每次减法迭代中的中间余数称为部分余数。当部分余数小于除数时,迭代停止。除法结束时,最终答案包括表示减法迭代次数的整数值(商)和表示最终部分余数的浮点值(余数)。
FPREM 和 FPREM1 指令都用于计算浮点数除法的余数,但使用的方法略有不同。确定除法余数的基本方法是先确定被除数和除数相除的浮点商,然后将该值舍入到最接近的整数,余数是商乘以除数与被除数的差值。例如,计算 20.65 除以 3.97 的余数步骤如下:
1. 20.65 / 3.97 = 5.201511335,舍入后为 5(商)。
2. 5 * 3.97 = 19.85。
3. 20.65 – 19.85 = 0.8(余数)。
FPREM 指令在部分余数标准制定之前开发,采用默认的 FPU 向零舍入方法确定整数商值,然后确定余
超级会员免费看
订阅专栏 解锁全文
196

被折叠的 条评论
为什么被折叠?



