我得到的代码是这样的:
140后退:jmp前进
142添加
143添加
。
。总共有80条这样的添加指令
。
222 lds
224名
226名
。
。这样总共有300条lds指令
。
822前进:rjmp返回
哪个存储位置的地址将存储在第140行的jmp指令中以及第822行的rjmp指令中? rjmp将存储地址822-140 = 682 或823-140 = 683 (假设PC + 1)。
答案 0 :(得分: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 。