好的,首先这是程序的描述:该程序将模拟一个简单的猜谜游戏。猜谜游戏的答案永远是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
关于java - 简单的猜谜游戏错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34166989/