2

我的这个 LC-3 程序有问题,我无法从if/else语句中获取要显示的字符串。我不知道我的语句是否错误,或者我是否显示错误的字符串。目标是让它在用户输入时显示 ,并IF在用户输入时显示(停止程序)。0else1

    .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
4

1 回答 1

1

您显示的字符串不正确。

LEA 只加载标签/内存偏移的有效地址,它不会打印出来。如果要打印字符串,则必须调用 TRAP x22(宏为 PUTS),如上面代码片段的第 14 行所示。

于 2012-02-09T07:12:18.553 回答