我正在ArmV8中执行一个汇编程序,该程序使用多个常量(在浮点数中),因此要乘以某个值(也在浮点数中)。为此,我想开发一个循环,使之经过包含常数的向量,每次增加地址以访问下一个常数,将其相乘等等,而不是一次又一次地重复相同的操作。 虽然,我不确定如何直接在Assembly程序中声明此向量。
在ArmV7中,我做了这样的事情以实现该目的:
Aux DCD 0x7F800000, 0x007FFFFF, 0x7FFFFFFF
但这仅适用于ArmV7中的单词,而我正在使用ArmV8中的双打。
答案 0 :(得分:1)
您不是在声明向量,这里需要的只是源中的文字常量。假设Arm编译器6,7.21 DCQ and DCQU
DCQ指令分配一个或多个八个字节的内存块, 在四字节边界上对齐,并定义初始运行时 内存的内容。 DCQU相同,除了内存 对齐是任意的。
由于未键入内存,因此除了可读性之外,没有其他原因可以不使用DCD。如果您的文字是浮点数,则也可以使用DCFD
或DCFS
。