我正在使用麦格劳-希尔的LC3模拟器来编写一些LC3汇编代码。出于某些原因,无论我如何编写代码,它都会继续通过我的.END调用,并最终更改我的寄存器。我是不是遗漏了什么?
最新代码:
.ORIG x3000
BR MAIN
;;value to square
SquareVal .FILL x04
MAIN
LD R1, SquareVal
AND R0, R0, #0
ADD R0, R0, R1
AND R3, R3, #0
LD R3, SquareVal
BR SQUARE_CONT
SQUARE_VAL
ADD R0, R0, R1
BR SQUARE_CONT
SQUARE_CONT
ADD R3, R3, #-1
BRp SQUARE_VAL
HALT
.END
发布于 2012-11-11 21:43:29
首先,确保您的模拟器加载了操作系统代码。HALT
是一个系统陷阱,所以它需要操作系统。此外,这也意味着操作系统处理程序将更改您的寄存器。如果你不能做到这一点,你可以在用户模式(STOP: BR STOP
)中进行无限循环。
.END
只表示源文件的结束,它对执行没有任何影响。
https://stackoverflow.com/questions/13327624
复制相似问题