1
我似乎對LC3組件有問題。JSRR不會去LC3的外部程序
我試圖跳轉到一個子程序(在另一個程序中,否則我只是使用JSR),但它只是通過下一個命令。
我已經試過:
LD R0, Subpgm
JSRR R0
,並在底部,這條線來定義Subpgm。
Subpgm .FILL x4000
我預計跳轉到PC X4000,而是在PC只是通過正常的1
任何幫助增加將是超級感謝!
我似乎對LC3組件有問題。JSRR不會去LC3的外部程序
我試圖跳轉到一個子程序(在另一個程序中,否則我只是使用JSR),但它只是通過下一個命令。
我已經試過:
LD R0, Subpgm
JSRR R0
,並在底部,這條線來定義Subpgm。
Subpgm .FILL x4000
我預計跳轉到PC X4000,而是在PC只是通過正常的1
任何幫助增加將是超級感謝!
下面是使用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
感謝您的回答! 當我嘗試使用LEA而不是加載x4000時,它加載了該標籤的地址......我將嘗試將子程序移近,但這是一個課程項目,並且他們告訴我們要使用的位置。 .FILL不會將地址設置爲x4000,它只是填充內容x4000的內存點,所以LEA將無法正常工作。是否有另一個命令我應該使用,而不是.FILL? 我很欣賞答案,也許你可以進一步幫助! – 2015-04-05 21:56:30
@NaomiSheehan由於x4000是'JSRR R0'的內部編碼,因此任何跳轉到標籤_Subpgm_(使用R0)都將導致無限循環!我認爲最好是發佈你的作業的完整描述。 – 2015-04-06 14:59:56