我正在嘗試在 LC3 程式集中實作一個基本程式,但匯編程式似乎無法識別其中一個標簽。我想知道為什么它不能識別最后一個:
.ORIG 0x300
NUMBER: .FILL x0006
NUMBER2: .FILL x0003
R1MAGG: .FILL x0999
UGUALI: .FILL 0x500
R1MIN: .FILL x0001
LD R1, NUMBER
LD R2, NUMBER2
;I stored in R1 and R2 2 numbers
;Now I compare them
NOT R2, R2
ADD R2, R2, #1
ADD R3, R1, R2
BRp R1MAGGIORE
BRn R1MINORE
LD R4, UGUALI
JSR EOP
R1MAGGIORE:
LD R4, R1MAGG
JSR EOP
R1MINORE:
LD R4, R1MIN
JSR EOP
EOP:
.END
這是它回傳的錯誤:LINE 28: Unrecognized opcode or syntax error at or before '.END'
uj5u.com熱心網友回復:
嘗試EOP: HALT然后.END在下一行,因為你有它。懷疑它在抱怨缺少指令,但HALT無論如何你真的應該用(陷阱)指令終止程式。
你確定你想要.ORIG0x300 而不是 x3000?
您可以考慮將資料放在代碼之后,以防止模擬器嘗試執行您的資料。否則,您可以將 aBR MAIN作為第一條指令(即在資料之前/前面),并MAIN:在您擁有程式第一條真正指令的地方放置一個標簽,以便它會繞過您的資料并跳轉到您的程式起點。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/369161.html
上一篇:如何解決錯誤:代碼中的分段錯誤(核心轉儲)?AT&T語法
下一篇:在陣列中存盤整數的MIPS問題
