Armv8-32 浮点编程入门
1. Armv8 浮点架构基础
Armv8 浮点运算基于 IEEE 754 标准进行浮点算术计算。它支持使用单精度和双精度值的标量浮点运算,对于包含 Armv8.2 - FP16 扩展的处理器,还支持半精度值。
在 AArch32 执行状态下,有用于半精度和单精度操作数的寄存器 S0 - S31,以及用于双精度操作数的寄存器 D0 - D31,其中寄存器 S0 - S31 与寄存器 D0 - D15 重叠。FPSCR 包含提供浮点操作信息的状态位,同时也有指定浮点处理选项的控制位,如舍入模式、默认 NaN 模式、归零模式和异常捕获等。
2. 浮点算术运算
2.1 单精度算术运算
以温度转换程序为例,展示如何使用单精度浮点值进行算术运算。以下是温度转换程序的 C++ 和汇编代码:
Ch06_01.cpp
//-------------------------------------------------
// Ch06_01.cpp
//-------------------------------------------------
#include <iostream>
#include <iomanip>
using namespace std;
extern "C" float ConvertFtoC_(float deg_f);
extern "C" float ConvertCtoF_(float deg_
超级会员免费看
订阅专栏 解锁全文

33

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



