1
私はARMのプログラムで、ファイルから多数の数字を取り出し、偶数か奇数かを指示しています。ARMのif文と同等のものは何ですか?
問題は、私は0.5を掛けする方法を知っているということですが、私はARMでこのハイレベルの文のように何かをする方法がわからない
if (A/2 == 0)
print even
else
print odd
は、ここで私は、コードの面で持っているものです。
@open input file
ldr r0,=FileName @ set Name for input file
mov r1,#0 @ mode is input
swi SWI_Open @ open file for input
bcs InFileError @ if error?
ldr r1,=InFileHandle @ load input file handle
str r0,[r1] @ save the file handle
@read integers from input file
NUMBERS:
ldr r0,=InputFileHandle @ load input file handle
ldr r0,[r0]
swi SWI_RdInt @ read the integer into R0
bcs EofReached @ Check Carry-Bit (C): if= 1 then EOF reached
@multiplication by 0.5 to test for odd or even
MUL R2 R0 0.5
@what is the test in ARM
@for (R0/0.5) == a multiple of 1?
B NUMBERS
LOOP:
@end of program
Message1: .asciz"Hello World!"
EOL: .asciz "\n"
NewL: .ascii "\n"
Blank: .ascii " "
FileName: .asciz"input.txt"
.end
私はファイルから入力して整数を読み込む最初の2つのものが動作すると思います。私はそれが2で割り切れるという条件をテストする方法を知らない。私はそれが0.5倍され、次に次のステップは、その数が末尾に何かがある小数点をもたないしかし、そうであれば、番号Bに分割された番号Aは奇数である。そうでなければそれは偶数ですか?
ありがとうございました。私はプログラミングで何を知っている、私はちょうどそのために忘れてしまった。私は%がモジュロ演算子であることを知っています。私はちょうど私がそれをタイプしたときに本当に疲れていた。 – user3695903
LSBの値をチェックする方法を示す記事へのリンクを私に送ることができますか?私は何をしているのか知りたい。例を教えてください。 – user3695903
記事はありません。基本的な操作です。 ARMのasmを学習している場合は、ARMリファレンスマニュアルがありますか?そうでなければ - それのためのGoogleおよびダウンロード、それは持っている必要があります。 TST命令、またはANDS R0、R0、#1は同じ仕事をしますが、R0 ..の内容は破壊されます(PS:間違いを修正するために質問を編集できます)。 –