0

ユーザーからの文字入力を受け取るサイズ 10 の配列があります。ここで、配列をループして、各文字とそれに続く新しい行を出力する必要がありますが、どこから始めればよいかわかりません。LC-3 アセンブリは私の得意分野ではありません...これまでの私のコードは次のとおりです。

LD R2, COUNTER
LEA R1, ARRAY
LD R4, COUNTER2

DO_WHILE_LOOP
    GETC
    STR R0, R1, #0
    ADD R1, R1, #1
    ADD R2, R2, #-1
    BRp DO_WHILE_LOOP
END_DO_WHILE_LOOP

LEA R3, ARRAY

OUT_LOOP

END_OUT_LOOP
HALT

;Local Data
ARRAY .BLKW #10
COUNTER .FILL #10
NEWLINE .STRINGZ "\n"
COUNTER2 .FILL #10
.END

私の質問は、基本的に OUT_LOOP の中に何を入れるのですか?

4

1 に答える 1

1

これを行うには、さまざまな方法があります。文字をユーザーに出力するとき、ユーザーの入力をすべて受け取った後にそれを行う必要がありますか?

ユーザーが入力しているときに、ユーザーに出力することができます。

DO_WHILE_LOOP
    GETC
    OUT
    STR R0, R1, #0
    ADD R1, R1, #1
    ADD R2, R2, #-1
BRp DO_WHILE_LOOP
END_DO_WHILE_LOOP

ユーザーの入力をすべて収集した後に印刷する必要がある場合は、char 配列のメモリ位置を R0 にロードしてから、PUTs コマンドを使用できます。

例:

LEA R0, ARRAY     ; Load the ARRAY memory location into R0
PUTs              ; Display all of the characters until it runs into null
于 2015-04-22T22:52:15.393 に答える