LC 3程序不显示输出

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LC 3程序不显示输出相关的知识,希望对你有一定的参考价值。

我正在尝试编写一个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
答案

错误的原因在于这行代码

brz lea r0,SPACE ;displays output

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

你的代码也有一个无限循环。在检查是否有eol字符之前,你无条件地回到循环。

以上是关于LC 3程序不显示输出的主要内容,如果未能解决你的问题,请参考以下文章

Lc35_搜索插入位置

算法 LC 动态规划 - 最大递增子序列

一些恶心的代码片段

LC 3. 无重复字符的最长子串

片段中的ListView不显示

Spring Boot 基础快速构建项目,在浏览器和后台显示输出结果