我的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
答案 0 :(得分:1)
您正在错误地显示字符串。
LEA仅加载标签/内存偏移的有效地址,不会将其打印出来。如果你想打印一个字符串,你必须调用TRAP x22(宏到PUTS),如上面代码片段的第14行所示。