如何声明数据向量
How to declare a vector of data
我正在 ArmV8 中编写一个汇编程序,该程序使用多个常量(浮点数),因此乘以某个值(也是浮点数)。为此,我想开发一个循环,它只遍历一个包含常量的向量,每次递增地址以访问下一个常量,乘以它等等,而不是一次又一次地重复相同的操作。
虽然,我不确定如何在汇编程序中直接声明这个向量。
在 ArmV7 中我做了类似的事情来达到这个目的:
Aux DCD 0x7F800000, 0x007FFFFF, 0x7FFFFFFF
但这只适用于 ArmV7 中的单词,而我在 ArmV8 中使用双打。
您没有声明一个向量,您在这里只需要在源代码中有一个文字常量。假设 Arm 编译器 6,7.21 DCQ and DCQU
The DCQ directive allocates one or more eight-byte blocks of memory,
aligned on four-byte boundaries, and defines the initial runtime
contents of the memory. DCQU is the same, except that the memory
alignment is arbitrary.
既然内存不是打字的,除了可读性之外没有理由不使用 DCD。如果您的文字是浮点数,您还可以使用 DCFD
或 DCFS
.
我正在 ArmV8 中编写一个汇编程序,该程序使用多个常量(浮点数),因此乘以某个值(也是浮点数)。为此,我想开发一个循环,它只遍历一个包含常量的向量,每次递增地址以访问下一个常量,乘以它等等,而不是一次又一次地重复相同的操作。 虽然,我不确定如何在汇编程序中直接声明这个向量。
在 ArmV7 中我做了类似的事情来达到这个目的:
Aux DCD 0x7F800000, 0x007FFFFF, 0x7FFFFFFF
但这只适用于 ArmV7 中的单词,而我在 ArmV8 中使用双打。
您没有声明一个向量,您在这里只需要在源代码中有一个文字常量。假设 Arm 编译器 6,7.21 DCQ and DCQU
The DCQ directive allocates one or more eight-byte blocks of memory, aligned on four-byte boundaries, and defines the initial runtime contents of the memory. DCQU is the same, except that the memory alignment is arbitrary.
既然内存不是打字的,除了可读性之外没有理由不使用 DCD。如果您的文字是浮点数,您还可以使用 DCFD
或 DCFS
.