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」の値を抽出する必要があります。それ、どうやったら出来るの ?
-ありがとう、