新手ARM汇编程序问题。我正在编写我的第一个 arm 汇编程序,我正在尝试编写这个 C 片段。
int x = somevalue1 << 12; // s19.12
int y = somevalue2 << 12; // s19.12
int a = somevalue3 << 12; // s19.12
int b = somevalue4 << 12; // s19.12
int c = somevalue4 << 12; // s19.12
long long acc = (long long) a * b;
acc += (long long) x * y;
int res = (acc >> 24);
acc += (long long) c * a;
我已经对第一部分进行了编码并计算了 r10、r11 寄存器中的总和。
@ r6 =a, r4 = b, r0 = x,r2 =y, r3=c
smull r10, r11, r6, r4 @acc = a * b
smlal r10, r11, r0, r2 @acc += x * y
现在我需要通过将“long long”右移 24 位来从 r10 和 r11 寄存器中提取“res”的值。我怎么做 ?
-谢谢,