HT37B90/HT37B70/HT37B50/HT37B30
Indirect Addressing Register - IAR0, IAR1
pointer registers MP0, MP1and MP2, where MP1/MP2
can deal with all banks of data memory but MP0 deal
with Bank0 data memory only.
The Indirect Addressing Registers, IAR0 and IAR1, al-
though having their locations in normal RAM register
space, do not actually physically exist as normal regis-
ters. The method of indirect addressing for RAM data
manipulation uses these Indirect Addressing Registers
and Memory Pointers, in contrast to direct memory ad-
dressing, where the actual memory address is speci-
fied. Actions on the IAR0 and IAR1 registers will result in
no actual read or write operation to these registers but
rather to the memory location specified by their corre-
sponding Memory Pointer, MP0 or MP1/MP2. Acting as
a pair, IAR0 and MP0 can together only access data
from Bank 0, while the IAR1 and MP1/MP2 register can
access data form Bank 0 to Bank 7. Using MP1 or MP2
are selected by DACC.7. As the Indirect Addressing
Registers are not physically implemented, reading the
Indirect Addressing Registers indirectly will return a re-
sult of ²00H² and writing to the registers indirectly will re-
sult in no operation.
General Purpose Data Memory
All microcontroller programs require an area of
read/write memory where temporary data can be stored
and retrieved for use later. It is this area of RAM memory
that is known as General Purpose Data Memory. This
area of Data Memory is fully accessible by the user pro-
gram for both read and write operations. The bank 0
data memory areas can handle arithmetic, logic, incre-
ment, decrement and rotate operations directly. By us-
ing the ²SET [m].i² and ²CLR [m].i² instructions
individual bits can be set or reset under program control
giving the user a large range of flexibility for bit manipu-
lation in the Data Memory.
Special Purpose Data Memory
This area of Data Memory is where registers, necessary
for the correct operation of the microcontroller, are
stored. such as timers, interrupts, etc., as well as exter-
nal functions such as I/O data control and A/D converter
operation. Most of the registers are both readable and
writable but some are protected and are readable only,
the details of which are located under the relevant Spe-
cial Function Register section. Note that for locations
that are unused, any read instruction to these addresses
will return the value ²00H². Although the Special Pur-
pose Data Memory registers are located in Bank 0, they
will still be accessible even if the Bank Pointer has se-
lected Bank 1.
Memory Pointer - MP0, MP1, MP2
Three Memory Pointers, known as MP0, MP1 and MP2
are provided. These Memory Pointers are physically im-
plemented in the Data Memory and can be manipulated
in the same way as normal registers providing a conve-
nient way with which to address and track data. When
any operation to the relevant Indirect Addressing Regis-
ters is carried out, the actual address that the
microcontroller is directed to, is the address specified by
the related Memory Pointer. MP0, together with Indirect
Addressing Register, IAR0, are used to access data
from Bank 0 only, while MP1/MP2 and IAR1 are used to
access data form Bank 0 to Bank 7. Using MP1 or MP2
are selected by DACC.7.
Special Function Registers
To ensure successful operation of the microcontroller,
certain internal registers are implemented in the RAM
Data Memory area. These registers ensure correct op-
eration of internal functions such as timers, interrupts,
watchdog, etc., as well as external functions such as I/O
data control. The location of these registers within the
RAM Data Memory begins at the address ²00H².
Rev. 1.00
16
June 22, 2017