将下面语言C语言翻译成arm汇编语言代码。C语言赋值是f(g+h)-(i+j)假设变量f,g,h,i,j分别放在寄存器r0,r1,r2,r3,r4
时间: 2024-03-07 08:49:23 浏览: 145
下面是对应的ARM汇编代码:
```
LDR r5, [r1] ; r5 = g
LDR r6, [r2] ; r6 = h
ADD r5, r5, r6 ; r5 = g + h
LDR r6, [r3] ; r6 = i
LDR r7, [r4] ; r7 = j
ADD r6, r6, r7 ; r6 = i + j
SUB r0, r5, r6 ; r0 = f(g + h) - (i + j)
```
解释:
1. 首先,我们从寄存器r1中加载变量g的值到寄存器r5中。
2. 接着,我们从寄存器r2中加载变量h的值到寄存器r6中。
3. 然后,我们将r5和r6相加,结果保存在r5中。此时r5中的值为g + h。
4. 接下来,我们从寄存器r3中加载变量i的值到寄存器r6中。
5. 然后,我们从寄存器r4中加载变量j的值到寄存器r7中。
6. 接着,我们将r6和r7相加,结果保存在r6中。此时r6中的值为i + j。
7. 最后,我们将r5和r6的差值保存到寄存器r0中。此时r0中的值为f(g + h) - (i + j)。
阅读全文