LC-3 If / Else语句

时间:2011-12-15 04:02:09

标签: if-statement lc3

我的LC-3程序有问题,我无法从if / else语句中显示字符串。我不知道我的说法是否错误,或者我是否显示错误的字符串。目标是在用户输入IF时显示0,在输入else时显示1(暂停程序)。

    .ORIG   x3000


START:
; clear registers
    AND R0, R0, 0
    AND R1, R0, 0
    AND R2, R0, 0
    AND R3, R0, 0
    AND R4, R0, 0

; print greeting
    LEA R0, GREETING
    PUTS

; get user-input
; echo it back
    GETC
    PUTC

; store entered string 
    ST  R0, USERINPUT

;FIRST IF STATEMENT
OUTPUT  LD R2, USERINPUT
    BRz ENDIF
    LEA R3, GREETING
;ELSE
    ENDIF
    LD R2, USERINPUT
    HALT
    DONE

; stop the processor
    HALT

    GREETING:   .STRINGZ    "\nWelcome to the game.\nDo you want to play?\n0:Yes   1:No\n: "
    GREETINGTWO:    .STRINGZ    "\nTest if statement: "

    ; variables
    USERINPUT:  .FILL   0
    ; end of code
    .END

1 个答案:

答案 0 :(得分:1)

您正在错误地显示字符串。

LEA仅加载标签/内存偏移的有效地址,不会将其打印出来。如果你想打印一个字符串,你必须调用TRAP x22(宏到PUTS),如上面代码片段的第14行所示。