2011-12-15 12 views
2

このLC-3プログラムに問題があります。if/elseステートメントから表示する文字列を取得できません。ステートメントを間違っているのか、間違った文字列を表示しているのか分かりません。目標は、ユーザーが0と入力したときにIFを表示させ、1を入力するとelse(プログラムを停止する)を表示させることです。LC-3 If/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 

答えて

1

文字列が正しく表示されません。

LEAは、ラベル/メモリオフセットの実効アドレスのみをロードしますが、出力しません。文字列を出力する場合は、上のコードスニペットの14行目と同様に、TRAP x22(PUTSにマクロ化されている)を呼び出す必要があります。

関連する問題