
M44C092–V
M44C092–V
Rev. A2, 08-Nov-01
7 (80)
2.2
Components of MARC4 Core
ROM
(4 K x 8 bit)
Zero page
FFFh
7FFh
1FFh
000h
1F0h
1F8 h
010h
018h
000h
00 8h
020h
1E8h
1E0h
SCALL
addresses
14 0h
18 0h
04 0h
0C0h
00 8h
$AUTO SLEEP
$RESET
INT0
INT1
INT2
INT3
INT4
INT5
INT6
INT7
1E0h
1C0h
100h
080h
Zero
pag e
000h
13362
Figure 4. ROM map of M44C092–V
The core contains ROM, RAM, ALU, program counter,
RAM address registers, instruction decoder and interrupt
controller.
The
following
sections
describe
each
functional block in more detail:
2.2.1
ROM
The program memory (ROM) is mask programmed with
the customer application program during 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 contains predefined
start addresses for interrupt service routines and special
subroutines accessible with single byte instructions
(SCALL).
The corresponding memory map is shown in figure 4.
Look-up tables of constants can also be held in ROM and
are
accessed via the MARC4’s
built-in
TABLE
instruction.
2.2.2
RAM
The M44C092–V and M44C092–V contain 256 x 4-bit
wide static random access memory (RAM). It is used for
the expression stack, the return stack and data memory for
variables and arrays. The RAM is addressed by any of the
four 8-bit wide RAM address registers SP, RP, X and Y.
Expression Stack
The 4-bit wide expression stack is addressed with the
expression stack pointer (SP). All arithmetic, I/O and
memory reference operations take their operands from,
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 subroutines and as a scratch pad area
for temporary storage of data.
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.