2015-12-08 82 views
0

那麼首先這是該程序的描述:該程序將模擬一個簡單的猜謎遊戲。猜謎遊戲的答案將始終爲6. 程序將不斷要求用戶猜測0至9之間的數字。用戶通過鍵盤輸入猜測。 如果猜測大於6;程序應輸出: 太大。 如果猜測小於6;程序應輸出: 太小。 當用戶最終猜測正確時,程序將輸出: 正確!你採取了#猜測。 其中#是用戶所花費的猜測次數。 如果經過9次猜測,用戶沒有正確猜出數字,程序應輸出:遊戲結束。正確的答案是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 

所以,我怎麼能修復這個錯誤在此先感謝?

回答

1

該錯誤是指向該行

LEA R0, R3

你的程序正試圖使用​​註冊R3就像一個標籤,彙編器將不會允許它。

如果要移動存儲在R3到R0值,你將需要做類似如下:

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