3
ARMアセンブリで2D配列を印刷するにはどうすればよいですか? 私は各行を取って、それをヌル終了文字列に変えようとしていますが、最初の数字だけが表示されます。次の番号に移動するにはどうしたらいいですか?ARMの2D配列の印刷
私はこう言いました:配列を印刷するには、配列をループして一度に1要素ずつ印刷するサブルーチンを書くのが最善です。 printfは1つの引数しか取らず、アセンブリ言語と同様に、配列は単なるロードであり、printfは最初のものだけを出力します。あるいは、ボードをヌル終了文字列にするサブルーチンを書くこともできます。どちらの場合でも、サブルーチンはボードを印刷してうまくフォーマットすることができます。
しかし、私はそれをこの方法を行う方法を理解する:
AREA Countdown, CODE, READONLY
IMPORT main
IMPORT getkey
IMPORT sendchar
IMPORT printf
EXPORT start
start
LDR R3, = teststr
LDR R4, = array
wh1 LDRB R0, [R4]
CMP R0, #0
BEQ stop
ADD R0, R0, #0X30
STRB R0, [R3]
ADD R3, R3, #1
ADD R4, R4, #1
B wh1
stop B stop
AREA Strings, DATA, READWRITE
teststr DCB "",0
array DCD 6, 3, 8, 2, 5, 2, 9, 1
DCD 3, 7, 2, 8, 5, 7, 2, 6
DCD 2, 4, 7, 4, 2, 6, 7, 4
DCD 1, 9, 3, 2, 9, 5, 6, 8
DCD 7, 5, 3, 7, 5, 8, 2, 1
END
私は理解できないコマンドがあります。ありがとうございます。 BMI、ORRS、MOVEQ、STREQBと同様です。彼らは何のために立っていますか? –
このアレイをコンソールに表示するにはどうすればよいですか? –
printfをexternとして参照しています...それを:)と呼んでください。 R0 =最初のパラメータ、R1 =秒など – BitBank