在程序集中编写程序以从输入中打印两个字符,首先比较它们并首先使用较大的ASCII代码打印一个字符。我写了对我有意义的东西,但是汇编程序给了我错误“Duplicate label(R2)”。有谁知道为什么这不起作用?
.orig 3000
GETC
LD R1,R0
GETC
LD R2,R0
NOT R0,R2
ADD R0,R0,#1
ADD R0,R1,R0
BRN #3
OUT R1
OUT R2
BRNZP #2
OUT R2
OUT R1
HALT
.end
还要补充一点,当我破坏代码并且只取出R2的行时,它会为其他寄存器吐出错误。这就像汇编程序将寄存器识别为标签。
答案 0 :(得分:1)
LD R2,R0
你不要这样使用LD。
语法为LD DR, Label
或LD DR, PCOffset9
另外
OUT R1
OUT是一个陷阱,它打印出R0中的字符,只打印出R0
也许汇编程序有一个错误,没有将这些错误标记为语法错误?