基本上,我的代码会让我输入一些文本,然后它会打印出我输入的内容。当我输入文本时,代码是奇怪的符号,但打印的是我实际输入的内容。除此之外,我想知道如何让我的程序打印输入了多少个字符,并显示该数字(输出)
.orig x3000
Lea r1, storeString
Lea r0, PrintStudent
puts
Lea r0, EnterText
puts
LOOP
getc
str r0, r1, 0
add r1, r1, 1
add r0, r0, -10
brz OUTSIDE
out
brnzp LOOP
OUTSIDE
Lea r0, UserEnter
puts
Lea r0, storeString
puts
Halt
PrintStudent .stringz "Hi it's me"
EnterText .stringz "\nPlease enter a text: "
UserEnter .stringz "\nThe text you have typed is: "
storeString .blkw 99
.end发布于 2016-05-12 03:16:15
这就是为什么它存储正确,但打印错误:
GETC # r0: new character
STR r0,r1,0 # r0: new character, mem[r1]: new character
ADD r1,r1,1 # increments pointer for storage
ADD r0,r0,-10 # r0: new character - newline, i.e. "a"--> "W"
OUT # prints the input character - newline基本上,将这个“向外”移到减量和分支上,你就进入了业务状态(除了它现在也会打印换行符)。
要知道您使用了多少个字符,可以在输入循环中单独计数,也可以计算循环末尾的r1和storeString地址之间的差值。还有其他几种选择:你是设计工程师。
https://stackoverflow.com/questions/37066298
复制相似问题