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 回答