我在这个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
发布于 2012-02-09 07:12:19
您显示的字符串不正确。
LEA只加载标签/内存偏移量的有效地址,不会将其打印出来。如果你想打印出一个字符串,你必须调用陷阱x22 (宏到PUTS),就像上面代码段的第14行一样。
https://stackoverflow.com/questions/8514956
复制