LC-3 If / Else Заявления - PullRequest
       9

LC-3 If / Else Заявления

2 голосов
/ 15 декабря 2011

У меня проблема с этой программой 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

1 Ответ

1 голос
/ 09 февраля 2012

Вы неправильно отображаете строку.

LEA загружает только эффективный адрес метки / смещения памяти, но не распечатывает его. Если вы хотите распечатать строку, вы должны вызвать TRAP x22 (с макросом в PUTS), как в 14-й строке вашего фрагмента кода выше.

...