ARM 浮点运算编程指南
在金融计算中,为避免加减法中的舍入误差,大多数应用使用基于整数运算的定点算术。接下来,我们将详细探讨浮点运算的相关内容。
1. 定义浮点数
GNU 汇编器提供了定义单精度和双精度浮点数存储的指令,分别是 .single 和 .double 。例如:
.single 1.343, 4.343e20, -0.4343, -0.4444e-10
.double -4.24322322332e-10, 3.141592653589793
这些指令总是采用十进制数。
2. FPU 寄存器
ARM FPU 有自己的一组寄存器,包含 32 个单精度浮点寄存器(S0 - S31),这些寄存器也可看作 16 个双精度寄存器(D0 - D15)。需要注意的是,S0 和 S1 占用的空间与 D0 相同,S2 和 S3 占用的空间与 D1 相同,以此类推。树莓派 2、3 和 4 还有 16 个额外的双精度寄存器 D16 - D31,它们没有对应的单精度寄存器。
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
A([单精度寄存器]):::starten
超级会员免费看
订阅专栏 解锁全文
1314

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



