请问如下arm汇编指令翻译成c语言是什么?可以分析一下吗?

以下是一段arm汇编指令,请翻译成c语言,最好能逐条分析一下,感谢!

img

//重新修改了一下程序,用指针指向X6+8的这个地址
//ADDI X9, X6, #8 //定义两个变量,对应X9,X6 X9,X6
//ADD X10, X6, XZR //定义一个变量,对应X10 X10
//STUR X10, [X9, #0] //定义一个指针,对应X9内数据指向的地址 *p
//LDUR X9, [X9, #0]
//ADD X0, X9, X10 //定义一个变量,对应X0 X0

//以下是C语言

//1,定义变量
int X0,X6,X9,X10; //int视需要可以改成:无符号,8位,16位,32位,64位等--变量名可改成任意需要的名字
int *p; //定义一个指针,指向 X9中数据的地址

//2,对应的汇编
X9 = X6 + 8; //ADDI X9, X6, #8
X10 = X6 + 0; //ADD X10, X6, XZR +10可以略去
p = (int *)X9; //[X9, #0]
*P = X10; //STUR X10, [X9, #0]
X9 = *p; //LDUR X9, [X9, #0]
X0 = X9 + X10; //ADD X0, X9, X10

由于没有上下文,具体这段代码是什么含义很难判断出来。代码结果是*(X6+8)=X6, X10=X6, X9=X6, X0=X6*2

ADDI X9,  X6,  #8   ; X9 = X6 + 8
ADD  X10, X6,  XZR  ; X10 = X6 + 0
STUR X10, [X9, #0]  ; *X9 = X10
LDUR X9,  [X9, #0]  ; X9 = *X9
ADD  X0,  X9,  X10  ; X0 = X9 + X10

假设变量f,g,h,i,j被分配给寄存器x0,x1,x2,x3,x4,此外数组A和B的首地址分别在寄存器x6和x7中