If statement 如何在汇编中编写if-else?

If statement 如何在汇编中编写if-else?,if-statement,assembly,If Statement,Assembly,如何用汇编语言编写下面的if-else语句 C代码: If ( input < WaterLevel) { MC = 1; } else if ( input == WaterLevel) { MC = 0; } 由于不知道您正在使用的特定汇编语言,我将用伪代码写出以下内容: compare input to waterlevel if less, jump to A if equal, jump to B jump to C A: send 1 to microco

如何用汇编语言编写下面的if-else语句

C代码:

If ( input < WaterLevel)
{
     MC = 1;
}
else if ( input == WaterLevel)
{
     MC = 0;
}

由于不知道您正在使用的特定汇编语言,我将用伪代码写出以下内容:

compare input to waterlevel
if less, jump to A
if equal, jump to B
jump to C
A:
send 1 to microcontroller
turn motor on
jump to C
B:
send 0 to microcontroller
turn motor off
C:
...

对于前三个命令:大多数汇编语言都有条件分支命令来测试零位或符号位的值,并根据位是否已设置而跳转。

如果我们想在C中执行某些操作,如:

if (ax < bx)
{
    X = -1;
}
else
{
    X = 1;
}

有条件分支……是的,请放心,我今天才开始学习。。我是一名学生。@Ped7g来自一位有30年编码经验的老人,我认为你应该更加尊重那些努力学习的年轻人。我在这里学习,尽管我还没有掌握基本知识。如果我像你一样有30年的经验,我就不会在这里了,是吗?要有礼貌。如果它不能回答问题,就走开。没有人需要你,我对坏代码一概不尊重。即使是我自己的。如果你是学生,我尊重你作为一个人和你努力学习的精神。而不是特定的
else
分支,这是根本错误的。作为一名学生,你应该试着找出原因,或者问原因,而不是要求尊重——这对你没有什么好处,即使我愿意遵守。如果你想让我对你的观点有同理心,那就试试我的吧。我更担心这样的代码会滑入真实的产品,而不是我担心的是它是否友好。粗鲁对人的伤害比洪水还小。@Ped7g这是我学习汇编语言的第一天,你担心这样的代码会溜进真正的产品中。至少我现在已经理解了其他用户提供给我的答案。我想说的是,如果你不在这里回答我的问题,你在这里干什么?我能从你对坏代码的“关注”中得到什么帮助呢?如何在汇编中编写相等条件(在问题中)?您的示例有一个else语句,而我的示例使用else if.je equal表示跳转到equal,if equal这里并不是只有一种汇编语言。ARM的组件显然必须不同于Sparc、MIPS或x86。它们都有不同的比较说明。您必须指定体系结构。关于
else if
,后者
if
只是else中的另一个代码块。它是x86汇编架构CMP输入,水位等于MOV字[MC],1 JMP都等于:MOV字[MC],0两者:我如何测试(输入)呢
compare input to waterlevel
if less, jump to A
if equal, jump to B
jump to C
A:
send 1 to microcontroller
turn motor on
jump to C
B:
send 0 to microcontroller
turn motor off
C:
...
if (ax < bx)
{
    X = -1;
}
else
{
    X = 1;
}
 cmp    ax, bx      
 jl     Less  
 mov    word [X], 1    
 jmp    Both            
Less: 
 mov    word [X], -1  
Both: