我需要使用汇编将立即值 0.5f (= 0.8 in HEX)加载到 NEON 寄存器(或 ARM 寄存器,而不是 VMOV )中。
我已阅读 ARM 文档:http ://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0204h/Bcfjicfj.html 链接到:http: //infocenter.arm.com /help/index.jsp?topic=/com.arm.doc.dui0204h/CIHGGEEB.html
他们说你可以加载浮点:
任何可以表示为 +/-n * 2-r 的数字,其中 n 和 r 是整数,16 <= n <= 31, 0 <= r <= 7。
因为 0.8 超出范围,我希望我需要加载 HEX 1.8 并减去 1.0,但以下指令不适用于编译器:
VMOV.F32 d10, #0x1.0 \n\t
VMOV.F32 d10, #0x1.8 \n\t
但是使用 0.5 十进制值可以解决问题,即使它应该超出范围:
VMOV.F32 d10, #0.5 \n\t
使用 HEX 值如何进行相同的操作?
还有另一个问题:之前的 VMOV.F32 指令是否应该将值加载到寄存器 d10[0] 和 d10[1] 的 32 位部分中?