【发布时间】:2014-11-22 18:39:18
【问题描述】:
根据 doc1022, p. 17(AVR 汇编器用户指南):
用户定义的标签,它们在它们所在的位置被赋予位置计数器的值 出现。
我的问题是,当在jmp 和rjmp 指令中使用标签时,操作码会包含什么内容,因为标签实际上是标签出现位置的位置计数器的值?其次,如果存在回答我问题的官方(或非官方)文件,你知道我在哪里可以找到它吗?
谢谢
【问题讨论】:
-
我不确定你的问题是什么。您是在问
jmp指令是如何编码的,还是在问jmp指令跳转到哪里? -
[1] 在“8 位 AVR 指令集”文档中,在 RJMP 下,执行的操作表示为:“PC ← PC + k + 1”,并说明了该操作的语法如:“RJMP k”。现在,如果我们认为标签为:
== ,RJMP 应该总是失败,因为在这种情况下,跳转的绝对地址被提供给 RJMP,而不是相对地址。所以我要问:在使用标签作为操作数的 rjmp 操作中,我猜不是提供它的实际值,而是完成了一些相对值(类似于“PC - someLabel”)。如果是这样,我在哪里可以获得相关的 -
【2】官方文档?