AVR 程序必须总是以相对跳转指令开始吗?

Posted

技术标签:

【中文标题】AVR 程序必须总是以相对跳转指令开始吗?【英文标题】:Must AVR programs always start with a relative jump instruction? 【发布时间】:2009-06-05 16:29:39 【问题描述】:

我见过的所有示例 AVR 程序都以如下代码开头:

.org $0000
    rjmp Reset
    ; ...
Reset:
    ; Start of program

如果我不使用任何中断,我可以不使用rjmp 并在$0000 处启动程序吗?

【问题讨论】:

【参考方案1】:

位于 $0000 中断向量之后的程序存储器位置。我想如果你不使用任何中断,你可以在没有 rjmp 的情况下启动你的程序。来自 ATmega 128 数据表:

If the program never enables an interrupt source, the interrupt vectors are 
not used, and regular program code can be placed at these locations. This is
also the case if the Reset Vector is in the Application section while the 
interrupt vectors are in the Boot section or vice versa.

【讨论】:

以上是关于AVR 程序必须总是以相对跳转指令开始吗?的主要内容,如果未能解决你的问题,请参考以下文章

PLC编程里的JMP指令

ARM指令和THUMB指令有啥区别

汇编指令JMP是啥意思?

汇编指令JMP是啥意思?

MIPS中有关于分支指令及跳转寻址

比较条件跳转指令