标签无法识别

Label not recognised

我试图在 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

这是它返回的错误:第 28 行:“.END”处或之前的无法识别的操作码或语法错误

尝试 EOP: HALT,然后在下一行尝试 .END。怀疑它是在抱怨缺少指令,但无论如何你真的应该用 HALT(陷阱)指令终止程序。


你确定要 .ORIG 在 0x300 而不是 x3000 吗?


您可以考虑将数据放在代码之后,以防止模拟器尝试执行您的数据。否则,您可以将 BR MAIN 作为第一条指令(即 before/in-front-of 数据),并将标签 MAIN: 放在程序第一条真正的指令处,这样它就会跳转您的数据以及您的程序起点。