2016-11-15 9 views
0

下のif文をアセンブリ言語でどのように記述しますか?アセンブリでif-elseを書くには?

Cコード:

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

擬似コード

If input < Water Level 
Send 1 to microcontroller 
Turn Motor On 


Else if input == Water Level 
Send 0 to microcontroller 
Turn Motor Off 

不完全なアセンブリ:(MC-マイクロコントローラ)

CMP Input, WaterLevel 
MOV word[MC], 1 

MOV word[MC], 2 
+1

... –

+1

* "エルス入力の場合==水あなたがこの質問でさえも書くことができれば、もしあなたがこれを本当に捜し求めることができれば、それが現実のものであるなら、すぐに何人かの専門家を雇うので、あなたはこの1つで現実世界のプロジェクトに取り組んでいないことを願っています。そのような思考の5時間での悪い結果、あなたは仕事と雇用までではありません本当のプログラマーはあなたに深刻な金額を節約します。 (これはほんの少しの運動であれば、次に進んでいいです...これでも何が間違っているか把握しようとするかもしれません)。 – Ped7g

+0

はい、私はちょうど今日このことを学び始めたことを保証します。私は学生です.. –

答えて

0

使用している特定のアセンブリ言語、I'LLを知りません擬似コードでこれを書いてください:

最初の3つのコマンドについては、ほとんどのアセンブリ言語には、ゼロビットまたは符号ビットの値をテストし、ビットが設定されているかどうかによってジャンプするかどうかを示す条件付き分岐コマンドがあります。

1

我々は次のように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: 
+0

アセンブリーでの等価条件(質問内)の書き方は?あなたの例にはelse文があり、mineはelse ifを使っています。 –

+0

je等しいとは、等しい場合に等しいにジャンプすることです。 –

+1

アセンブリ言語は1つではありません。 ARM用のアセンブリは、明らかにSparc、MIPS、またはx86と異なる必要があります。彼らはすべて、比較のための異なる指示を持っています。アーキテクチャを指定する必要があります。 'else if'については、後者の' if'はelseのもう一つのブロックです。 –

関連する問題