[英]AVR Assembly: What will be the address in the jmp and rjmp instructions?
我得到的代碼是這樣的:
140后退:jmp前進
142添加
143添加
。
。 總共有80條這樣的添加指令
。
222 lds
224 lds
226 lds
。
。 總共有300個lds這樣的指令
。
822轉發:rjmp返回
哪個存儲單元的地址將存儲在第140行的jmp指令和第822行的rjmp指令中? rjmp將存儲地址822-140 = 682或823-140 = 683 (假設PC + 1)。
我認為該作業問題每一行開頭的編號不是行號,而是程序計數器值(即Flash中字的地址,其中每個字是兩個字節)。
jmp
指令存儲絕對地址,因此jmp Forward
指令將僅存儲數字822 。
rjmp
指令存儲一個數字k
,並使程序計數器(PC)變為PC + k + 1
。 因此,我們必須求解k,知道PC最初是822,並且必須更改為140。所以我們知道140 = 822 + k + 1,因此k = 140-822-1 = -683 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.