2015-04-05 31 views
1

我似乎對LC3組件有問題。JSRR不會去LC3的外部程序

我試圖跳轉到一個子程序(在另一個程序中,否則我只是使用JSR),但它只是通過下一個命令。

我已經試過:

LD R0, Subpgm 
    JSRR R0 

,並在底部,這條線來定義Subpgm。

Subpgm .FILL x4000 

我預計跳轉到PC X4000,而是在PC只是通過正常的1

任何幫助增加將是超級感謝!

回答

0

下面是使用JSRR指令的示例程序。

 .ORIG X3000 
     LD R0, Subpgm ; => R0=X4000 
     JSRR R0  ; => R7=X3002 PC=X4000 
Done HALT   ; This is at X3002 
Subpgm .FILL X4000 ; Address of the 'external' program 
     .BLKW X0FFC ; Fill up the gap between programs 
     RET   ; This is at X4000 
     .END 
+0

感謝您的回答! 當我嘗試使用LEA而不是加載x4000時,它加載了該標籤的地址......我將嘗試將子程序移近,但這是一個課程項目,並且他們告訴我們要使用的位置。 .FILL不會將地址設置爲x4000,它只是填充內容x4000的內存點,所以LEA將無法正常工作。是否有另一個命令我應該使用,而不是.FILL? 我很欣賞答案,也許你可以進一步幫助! – 2015-04-05 21:56:30

+0

@NaomiSheehan由於x4000是'JSRR R0'的內部編碼,因此任何跳轉到標籤_Subpgm_(使用R0)都將導致無限循環!我認爲最好是發佈你的作業的完整描述。 – 2015-04-06 14:59:56