【发布时间】:2021-07-02 13:04:44
【问题描述】:
我脑海中有一个C 代码,我想用ARM 编程语言实现它。
我脑海中的C代码就是这样的:
int a;
scanf("%d",&a);
if(a == 0 || a == 1){
a = 1;
}
else{
a = 2;
}
我尝试过的:
//arm equivalent of taking input to reg r0
//check for first condition
cmp r0,#1
moveq r0,#1
//if false
movne r0,#2
//check for second condition
cmp r0,#0
moveq r0,#1
这是正确的实现方式吗?
【问题讨论】:
-
为什么不让编译器去做呢?这是它的工作。
-
@EugeneSh。这只是一个玩具示例。我实际上想扫描用户输入的变量 a
-
我建议将假条件移到最后。它应该在第二个条件检查之后。因为如果你输入零,那么根据你的 c 逻辑答案应该是 1,但 arm 代码会生成 2跨度>