English
Language : 

ATAR862-8_06 Datasheet, PDF (16/112 Pages) ATMEL Corporation – Microcontroller with UHF ASK/FSK Transmitter
16.1 ROM
The program memory (ROM) is mask programmed with the customer application program dur-
ing the fabrication of the microcontroller. The ROM is addressed by a 12-bit wide program
counter, thus predefining a maximum program bank size of 4 Kbytes. An additional 1-Kbyte of
ROM exists, which is reserved for quality control self-test software The lowest user ROM
address segment is taken up by a 512-byte Zero page which con-tains predefined start
addresses for interrupt service routines and special subroutines accessible with single byte
instructions (SCALL).
The corresponding memory map is shown in Figure 16-1. Look-up tables of constants can also
be held in ROM and are accessed via the MARC4’s built-in table instruction.
Figure 16-1. ROM Map of the Microcontroller Block
FFFh
ROM
1 F8 h
1F0h
1E8h
1E0h
7FFh
(4 K x 8 bit)
Zero
page
1FFh
000h
Zero page
020h
018h
010h
008h
000h
1E0h
1C0h
180h
140h
100h
0C0h
080h
040h
008h
000h
INT7
INT6
INT5
INT4
INT3
INT2
INT1
INT0
$RESET
$AUTOSLEEP
16.2 RAM
The microcontroller block contains 256 × 4-bit wide static random access memory (RAM), which
is used for the expression stack. The return stack and data memory are used for variables and
arrays. The RAM is addressed by any of the four 8-bit wide RAM address registers SP, RP, X
and Y.
16.2.1
Expression Stack
The 4-bit wide expression stack is addressed with the expression stack pointer (SP). All arith-
metic, I/O and memory reference operations take their operands, and return their results to the
expression stack. The MARC4 performs the operations with the top of stack items (TOS and
TOS-1). The TOS register contains the top element of the expression stack and works in the
same way as an accumulator. This stack is also used for passing parameters between subrou-
tines and as a scratch pad area for temporary storage of data.
16.2.2
Return Stack
The 12-bit wide return stack is addressed by the return stack pointer (RP). It is used for storing
return addresses of subroutines, interrupt routines and for keeping loop index counts. The return
stack can also be used as a temporary storage area.
The MARC4 instruction set supports the exchange of data between the top elements of the
expression stack and the return stack. The two stacks within the RAM have a user definable
location and maximum depth.
16 ATAR862-8
4589G–4BMCU–09/06