LC 3程序不显示输出

时间:2018-03-29 00:59:18

标签: loops char lc3

我正在尝试编写一个读取字符串并输出字符串的lc 3汇编语言程序。现在我很困惑为什么程序不输出任何东西。我不确定我在内存中存储字符串的算法是不正确的,还是我没有正确显示字符串。错误告诉我"期望的标签或9位有符号的pc偏移但是找到lea而不是。所以这意味着它不希望我使用lea对吗?但我不确定还有什么用。任何帮助将不胜感激!

.ORIG X3000

LEA R0, prompt
PUTS

LEA R1,SPACE
loop:
GETC               ; input char
PUTC               ; store char
STR R0,R1,#0       ; store r1 in r0
ADD R1,R1,#1       ; points to next block
br loop

ld      r7,eol     ;check for eol 
add     r7,r7,r0  
brz 
lea r0,SPACE       ;displays output
puts

halt

;*************data**********************

SPACE  .blkw   20   
prompt .stringz "input string>> "
eol  .fill   xfff6

.end

1 个答案:

答案 0 :(得分:0)

您的错误原因在于此代码行

brz lea r0,SPACE ;displays output

你使用没有标签的BR指令跳转到?如果分支被采取,你想在哪里分支。

此外,您的代码中还包含无限循环。在检查你是否有一个eol角色之前,你Bracnh无条件地回到循环中。