LC3模拟器继续结束?

时间:2012-11-11 00:55:05

标签: assembly lc3

我正在使用McGraw-Hill的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

1 个答案:

答案 0 :(得分:1)

首先确保您的模拟器已加载操作系统代码。 HALT是系统陷阱,因此需要操作系统。此外,这也意味着OS处理程序将更改您的寄存器。如果你不能忍受,你可以在用户模式(STOP: BR STOP

中进行无限循环

.END仅表示源文件的结尾,它对执行没有影响。