Relative jump to an address within PC - 2K +1 and PC + 2K (words). In the assembler, labels are used instead of relative operands. For AVR microcontrollers with program memory not exceeding 4K words (8K bytes) this instruction can address the entire memory from every address location.AVR(ATmega8515的)RJMP不跳相對
基於http://www.atmel.com/webdoc/avrassembler/avrassembler.wb_RJMP.html,在rjmp
命令應相對改變PC寄存器。但低於我的代碼是跳躍的確切地址(在這種情況下,與地址爲0x00 ldi temp, low(RAMEND)
命令)
.include "m8515def.inc"
.def temp = r16
STACK_INIT:
; init stack pointer
ldi temp, low(RAMEND)
out SPL, temp
ldi temp, high(RAMEND)
out SPH, temp
TES:
rjmp 0x00
END:
rjmp END
我試圖改變rjmp
命令jmp
但ATmega8515的不支持該命令
我不知道這是因爲配置什麼的。我正在使用AVR Studio 4構建並運行我的程序。有人可以解釋一下嗎?
這是發生在所有彙編語言還是隻是AVR具體? 'rjmp $ + 2'給了我'錯誤:語法錯誤,意外$ undefined' –
我無法對所有彙編語言做任何絕對聲明。 –