LC3装配程序,打印指令

时间:2014-09-17 01:13:53

标签: assembly printing load instructions lc3

以下LC3程序将打印出“Hello”。但有人可以帮助解释它为什么这样做吗?我很困惑,因为没有像PUTS这样的指令。它是否与将值加载到R0有关?谢谢!

     LEA R1, PROMPT
L1   LDR R0, R1, #0
     BRz FOO ; FOO is some other routine
L2   LDI R3, DSR
     BRzp  L2
     STI R0, DDR
     ADD R1, R1, #1
     BR L1
DSR    .FILL xFE04
DDR    .FILL xFE06
PROMPT  .STRINGZ  "Hello" 

2 个答案:

答案 0 :(得分:0)

据推测DSR是一个内存映射寄存器,显示输出设备何时忙(因此等待的L2循环)和DDR我猜是数据寄存器(无论你写什么)会有输出)。 R0一次获取一个提示字符。

答案 1 :(得分:-1)

DSR和DDR分别指向内存位置xFE04和xFE06。这些是使用lc3软件构建的特定内存位置。标有DSR的那个代表显示" status"寄存器。如果显示器不忙,意味着它已准备好打印出单个字符,则存储在存储单元xFE04中的值将为负值,您的循环L2将永远运行,直到变为真。什么DDR显示"数据" register是否将您的数据存储在内存位置xFE06中,从而将数据打印在屏幕上。它们与KBDR和KBSR非常相似。