【发布时间】:2021-03-04 22:51:12
【问题描述】:
我想将一些从下面的循环中计算总和的 Java 代码翻译成 ARM 程序集,我想知道:如何修复我目前所拥有的?
这是我正在翻译的 Java 代码:
R0 = 0;
R1 = 1;
while (R1 < 100)
{
R0 += R1;
R1++;
}
这是 ARM 汇编中的代码:
MOV R0,#0
MOV R1,#1
MOV R2,#100
looptop
CMP R0, R2
BGT loopbottom
ADD R0, R0, R1
ADD R1, R1, #1
B looptop
loopbottom
【问题讨论】:
-
while (R1 < 100)显然使用R1,但您的程序集使用R0。 -
同样,原始循环不会为
R1 == 100运行,但您的程序集可以。
标签: java assembly while-loop arm cpu-architecture