简单的猜谜游戏错误

Simple guessing game error

好的,首先这是程序的描述:该程序将模拟一个简单的猜谜游戏。猜谜游戏的答案永远是 6。 该程序将不断要求用户猜测 0 到 9 之间的数字。用户从键盘输入猜测。 如果猜测大于6;该程序应输出: 太大。 如果猜测小于6;该程序应输出: 太小。 当用户最终猜对时,程序会输出: 正确的!你猜了 # 次。 其中 # 是用户猜测的次数。 如果在猜了 9 次之后,用户还没有猜对数字,程序应该 output:Game 结束。正确答案是6。 您无需检查无效输入(字母字符、标点符号等)。

这是我收到的错误:第 43 行:预期标签或 9 位带符号 PC 偏移量,但发现 '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

那么我该如何解决这个错误呢?在此先感谢您。

那个错误指向这一行

LEA R0, R3

您的程序正在尝试将寄存器 R3 用作标签,但汇编器不允许这样做。

如果要将存储在 R3 中的值移动到 R0 中,则需要执行如下操作:

AND R3, R3, #0    ; clear R3
ADD R3, R3, R0    ; store the value in R0 into R3