avr-gcc-list
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [avr-gcc-list] rjmp confusion


From: Richard Urwin
Subject: Re: [avr-gcc-list] rjmp confusion
Date: Wed, 11 Feb 2004 20:17:30 +0000
User-agent: KMail/1.5.3

On Wednesday 11 Feb 2004 7:19 pm, Simon Han wrote:
> Hello,
>       Based on AVR instruction set documentation, rjmp is defined to be
> "relative jump to an address within PC - 2K + 1 and PC + 2K (words)".
> Then it says that "for AVR microcontrollers with Program memory not
> exceeding 4K words this instruction can address the entire memory
> from EVERY address location".  I capitalize the word I am confused
> about. How can a rjmp instruction located at flash memory 3.5K jump
> back to flash memory location at 0.5K?  This will require rjmp (-3K).
> Does avr-gcc generate code at some middle point (say flash memory
> location at 2K) to solve this problem?

No. The program memory is self-contained, so jumps off the end of the 
address space will wrap around to the other end.

0xfff + 1 = 0x000

3.5K + 1K = 0.5K   QED

in fact:

3.5K = 0x0e00
1K = 0x0400
0.5K = 0x0200

0x0200 - 0x0e00 = 0xf400

0xf400 has obviously overflowed, but to twelve bits it is 0x400, ie +1K.

-- 
Richard Urwin


reply via email to

[Prev in Thread] Current Thread [Next in Thread]