繁体   English   中英

简单的猜谜游戏错误

[英]Simple guessing game error

好了,首先,这是程序的描述:该程序将模拟一个简单的猜谜游戏。 猜谜游戏的答案始终为6。程序将不断要求用户猜0到9之间的一个数字。用户从键盘输入猜谜。 如果猜测大于6; 程序应输出:太大。 如果猜测小于6; 程序应输出:太小。 当用户最终猜对时,程序将输出:正确! 您猜了#次。 其中#是花费用户的猜测次数。 如果经过9次猜测,用户仍未正确猜测数字,则程序应输出:Game over。 正确答案是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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM