【发布时间】:2017-09-27 02:26:09
【问题描述】:
我必须编写一个程序,将寄存器 X、Y 和 Z 初始化为零,然后循环 10 次,每次将寄存器 X 加 1。如果寄存器 X 为偶数,则将寄存器 Y 加一,如果寄存器 X 可整除乘以 3,寄存器 Z 加一。
我写了一些代码,但我不确定它是否正确,如果有任何反馈,我将不胜感激。
R0, #0
R1, #0
R2, #0
Loop: R3, #0
CMP R0, #10
BEQ endif
ADD R0, #1
TST R0, #1
ADDEQ R1, #1
MOV R3, R0 MOD 3
CMP R3, #0
ADDEQ R2, #1
B loop
Endif:
【问题讨论】:
-
你可以在 cmets 上重一点吗?
-
代码审查问题确实属于codereview.stackexchange.com。如果您不确定它是否正确,那么您应该对其进行测试以查看它是否有效。如果它在您的测试中有效,请将其发布在 codereview 上。如果没有,则对其进行调试(通过使用调试器单步执行)。如果您遇到困难,请在此处发布特定问题以及您在调试时看到的详细信息。
标签: assembly while-loop arm keil