我正在尝试使用 LC-3 架构制作一个简单的程序。我要做的就是从控制台读取一个字符串,以某种方式将其保存在内存中,然后将其打印出来。
这就是我到目前为止所拥有的
; This program attemps to read a string and then output it
.orig x3000
and r1,r1,0
lea r0,prompt
puts
loop:
getc
putc
add r4,r4,1
ld r7,nlcomp ; check for
add r7,r7,r0 ; end of line
brz finish
st r0,lets
br loop
finish:
lea r0,lets
puts
halt
lets: .blkw 20
prompt: .stringz "Emter String"
nlcomp .fill xfff6
.end
输出仅显示字符串中的最后一个字符。如果我输入“steve”,它会打印出“e”
显然我的问题是我需要以某种方式将我读入的每个字符保存到它自己的内存位置。我认为使用 .blkw 会做到这一点,但显然它所做的一切都会覆盖该位置的位。
我的问题是如何将字符存储在连续的内存位置,然后将它们打印到控制台?