AVR汇编:jmp和rjmp指令中的地址是什么?

时间:2018-10-12 04:52:30

标签: assembly binary hex avr

我得到的代码是这样的:

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)。

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