【问题标题】:LC-3 If/Else StatementsLC-3 If/Else 语句
【发布时间】:2011-12-15 04:02:08
【问题描述】:

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

    .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

【问题讨论】:

    标签: if-statement lc3


    【解决方案1】:

    您显示的字符串不正确。

    LEA 只加载标签/内存偏移的有效地址,它不会打印出来。如果你想打印一个字符串,你必须调用 TRAP x22(宏为 PUTS),如上面代码 sn-p 的第 14 行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-09
      • 1970-01-01
      • 2017-02-05
      • 2015-07-06
      • 2012-08-05
      • 1970-01-01
      • 2021-09-11
      相关资源
      最近更新 更多