![](http://datasheet.mmic.net.cn/380000/-PD784928Y_datasheet_16744934/-PD784928Y_106.png)
106
CHAPTER 2 MEMORY SPACE
2.3.1 Vector table area
The 64-byte area from 00000H to 0003FH is reserved as the vector table area. The vector table area holds the
program start addresses used when a jump is performed as the result of RESET input or generation of an interrupt
request. When context switching is used by an interrupt, the number of the register bank to be switched to is stored
here.
Any portion not used by the vector table can be used as program memory or data memory.
16-bit values can be written to the vector table. Therefore, branches can only be made within the base area.
Table 2-2. Vector Table
Vector Table Address
Interrupts
00000H
Reset (RESET input)
00002H
NMI
Note
00004H
WDT
Note
00006H
to
0003AH
Differs for each product
0003CH
Operand error interrupt
0003EH
BRK
Note
Not used by some products.
2.3.2 CALLT instruction table area
The 1-byte call instruction (CALLT) subroutine entry addresses can be stored in the 64-byte area from 00040H
to 0007FH.
The CALLT instruction references this table, and branches to a base area address written in the table as a
subroutine. As the CALLT instruction is one byte in length, use of the CALLT instruction for subroutine calls written
frequently throughout the program enables the program object size to be reduced. The table can contain up to 32
subroutine entry addresses, and therefore it is recommended that they be recorded in order of frequency.
If this area is not used as the CALLT instruction table, it can be used as ordinary program memory or data memory.
Values that can be written to the CALLT instruction table are 16-bit values. Therefore, a branch can only be made
within the base area.
2.3.3 CALLF instruction entry area
A subroutine call can be made directly to the area from 00800H to 00FFFH with the 2-byte call instruction (CALLF).
As the CALLF instruction is a two-byte call instruction, it enables the object size to be reduced compared with use
of the direct subroutine call CALL instruction (3 bytes).
Writing subroutines directly in this area is an effective means of exploiting the high-speed capability of the device.
If you wish to reduce the object size, writing an unconditional branch (BR) instruction in this area and locating the
subroutine itself outside this area will result in a reduced object size for subroutines that are called from five or more
points. In this case, only the 4 bytes of the BR instruction are occupied in the CALLF entry area, enabling the object
size to be reduced with a large number of subroutines.