LC3 如何将用户输入打印到屏幕上?
LC3 how do I print user input to screen?
这是我目前拥有的:
.orig x3000
Lea r0, EnterString
puts
LOOP
getc
add r1, r0, -10 ;subtract 10 to identified if enter is pressed
brz OUTSIDE ;if yes, go out of the loop
out
brnzp LOOP
OUTSIDE
Lea r1, InputString
puts
Lea r0, EnterString
out
Halt
EnterString .stringz "Please enter a string: "
InputString .stringz "\nThe text you have typed is: "
.end
我试图让用户输入最多 99 个字符,然后将其打印出来,但是当我尝试打印输入的内容后,它只是在 InputString“\n您输入的文本是:”之后打印了一些奇怪的框被打印出来。
我认为这与我有关,也许不小心清除了我的 EnterString? r0?
我快要整理了吗?
我想放个截图,但是我的排名太低了。
您的一般方法不正确。这是您现在拥有的:
Print out welcome string
Get character
If character is a newline, exit loop, otherwise get another character
Print out "your string is"
Output (incorrectly) welcome string again.
所有PUTS
所做的就是获取存储在r0中的有效地址并打印其中的每个字符,一次一个,直到它到达'\0'字符。 GETC
所做的只是获取单个字符并将其存储到 r0 中。它不创建堆栈或字符串,也不能存储多个字符。
为了从控制台存储一个字符串,您需要定义一个地方来放置它并实际将它放在那里。您需要创建一个 BLKW
,其中包含您要存储的字符数(加上空字符的空间),然后您需要:
- 将此
BLKW
的地址加载到寄存器中
- 将字符从 r0 移动到此地址(提示:使用
STR
)
- 增加地址,这样你仍然指向一个空位置
为了再次打印出来,加载内存的有效地址 space 并调用 PUTS
,就像您对欢迎字符串所做的那样。
这是我目前拥有的:
.orig x3000
Lea r0, EnterString
puts
LOOP
getc
add r1, r0, -10 ;subtract 10 to identified if enter is pressed
brz OUTSIDE ;if yes, go out of the loop
out
brnzp LOOP
OUTSIDE
Lea r1, InputString
puts
Lea r0, EnterString
out
Halt
EnterString .stringz "Please enter a string: "
InputString .stringz "\nThe text you have typed is: "
.end
我试图让用户输入最多 99 个字符,然后将其打印出来,但是当我尝试打印输入的内容后,它只是在 InputString“\n您输入的文本是:”之后打印了一些奇怪的框被打印出来。
我认为这与我有关,也许不小心清除了我的 EnterString? r0?
我快要整理了吗?
我想放个截图,但是我的排名太低了。
您的一般方法不正确。这是您现在拥有的:
Print out welcome string
Get character
If character is a newline, exit loop, otherwise get another character
Print out "your string is"
Output (incorrectly) welcome string again.
所有PUTS
所做的就是获取存储在r0中的有效地址并打印其中的每个字符,一次一个,直到它到达'\0'字符。 GETC
所做的只是获取单个字符并将其存储到 r0 中。它不创建堆栈或字符串,也不能存储多个字符。
为了从控制台存储一个字符串,您需要定义一个地方来放置它并实际将它放在那里。您需要创建一个 BLKW
,其中包含您要存储的字符数(加上空字符的空间),然后您需要:
- 将此
BLKW
的地址加载到寄存器中 - 将字符从 r0 移动到此地址(提示:使用
STR
) - 增加地址,这样你仍然指向一个空位置
为了再次打印出来,加载内存的有效地址 space 并调用 PUTS
,就像您对欢迎字符串所做的那样。