Простая ошибка игры в угадайку

Итак, сначала это описание программы: Программа будет имитировать простую игру в угадайку. Ответом на игру в угадайку всегда будет 6. Программа будет постоянно просить пользователя угадать число от 0 до 9. Пользователь вводит догадку с клавиатуры. Если предположение больше 6; программа должна вывести: Слишком большой. Если догадка меньше 6; программа должна вывести: Слишком маленький. Когда пользователь, наконец, угадает правильно, программа выдаст: Правильно! Вы сделали # предположения. где # — количество догадок, сделанных пользователем. Если после 9 угадываний пользователь не угадал число правильно, программа должна вывести: Игра окончена. Правильный ответ: 6. Вам не нужно проверять неверный ввод (буквы, знаки препинания и т. д.).

Это ошибка, которую я получаю: Строка 43: Ожидаемая метка или 9-битное смещение ПК со знаком, но вместо этого найдено «R3». И вот мой код:

.ORIG X3000

LD R2, SIX
LD R3, COUNTER

IN
ADD R1, R0, #0
ADD R0, R1, R2
BRn TOOLOW
BRp TOOHIGH
BRz GG

AGAIN:
IN
ADD R1, R0, #0
ADD R0, R1, R2
BRn TOOLOW
BRp TOOHIGH
BRz GG

TOOLOW:
LEA R0, LOW
PUTS
ADD R1, R0, #0
ADD R3, R3, #1
ADD R0, R3, #-9
BRn AGAIN
BRz LOSE

TOOHIGH:
LEA R0, HIGH
PUTS
ADD R1, R0, #0
ADD R3, R3, #1
ADD R0, R3, #-9
BRn AGAIN
BRz LOSE

GG:
ADD R3, R3, #1
LEA R0, WIN
PUTS
LEA R0, R3
PUTS
LEA R0, WIN2
PUTS
HALT

LOSE:
LEA R0, GAMEOVER 
PUTS
HALT

SIX .FILL #-54
COUNTER .FILL #0
LOW .STRINGZ "Too small."
HIGH .STRINGZ "Too big."
WIN .STRINGZ "Correct! You took "
WIN2 .STRINGZ " guesses."
GAMEOVER .STRINGZ "Game over. Correct answer is 6."

.END

Итак, как я могу исправить ошибку? Заранее спасибо.


person Frank Gonzal    schedule 08.12.2015    source источник


Ответы (1)


Эта ошибка указывает на эту строку

LEA R0, R3

Ваша программа пытается использовать регистр R3 как метку, а ассемблер не разрешает этого.

Если вы хотите переместить значение, хранящееся в R3, в R0, вам нужно будет сделать что-то вроде следующего:

AND R3, R3, #0    ; clear R3
ADD R3, R3, R0    ; store the value in R0 into R3
person Chris M    schedule 08.12.2015