我有一个大小为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里面?
答案 0 :(得分: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