小编Mar*_*oli的帖子

armv8中是否有类似CPUID的指令?

所以我在汇编ARMv8中编程,我想知道是否有任何指令,如x86,来恢复有关CPU的信息。这是我需要的信息:

(CPUID) 签名:660f01

(CPUID) 特性:MMX、AMD64、SSE、SSE2、SSE3、SSSE3、SSE4.1、SSE4.2、AES、AVX、CLMUL、FMA、FMA4、XOP、PSE、PSE-36、NX、SVM

(CPUID) 缓存 L1:4 x 32 KB 数据,4 x 96 KB 指令 (CPUID) 缓存 L2:4 x 1 MB 统一 (CPUID) 缓存 L3:无

或者手臂上的等价物。例如,我知道 ARMS 不支持 MMX,但它支持 NEON。如何检查该处理器是否支持它?

assembly arm armv8

2
推荐指数
1
解决办法
1606
查看次数

如何将浮点常量移动到 FP 寄存器中?

因此,我正在使用 A64 指令集以汇编形式 ARM 进行编程。我正在使用指令 fmov d1, #31.0 将值移动到 dx 寄存器。但是,当我使用 0.0 或任何高于 31.0 的值时,它会显示错误:

"Error: invalid floating-point constant at operand 2 -- `fmov d1,#32.0'"
Run Code Online (Sandbox Code Playgroud)

那么,如何在 A64 上定义浮点常量?为什么我不能使用 31 以上的任何值或使用 0?如何以十六进制表示值?

另一个问题是:根据arm 的网站,它支持使用浮点寄存器作为 Bx、Hx、Sx、Dx 和 Qx(分别为 8、16、34、64 和 128 位),但我不能使用 Bx ,Hx 和 Qx 寄存器,显示:

“错误:操作数不匹配——`fmov b1,#1.0'”

“错误:所选处理器不支持`fmov h1,#2.0”

“错误:操作数不匹配——`fmov q1,#2.0'”

如何正确设置第二个操作数?

floating-point assembly neon arm64 immediate-operand

1
推荐指数
1
解决办法
709
查看次数

标签 统计

assembly ×2

arm ×1

arm64 ×1

armv8 ×1

floating-point ×1

immediate-operand ×1

neon ×1