DS_6612_001
78M6612 Data Sheet
Accumulator (ACC,
A): ACC
is the accumulator register. Most instructions use the accumulator to hold
the operand. The mnemonics for accumulator-specific instructions refer to accumulator as “A”, not
ACC.
B
Register:
The
B
register is used during multiply and divide instructions. It can also be used as a
scratch-pad register to hold temporary data.
Program Status Word (
PSW
)
Table 8:
PSW
Register
MSB
CV
Bit
PSW[7]
PSW[6]
PSW[5]
AC
F0
Function
Carry flag.
Auxiliary Carry flag for BCD operations.
General purpose Flag 0 available for user.
F0
is not to be confused with the
F0
flag in the CE
STATUS
register.
PSW[4]
RS1
Register bank select control bits. The contents of
RS1
and
RS0
select the
working register bank:
RS1/RS0
PSW[3]
RS0
00
01
10
11
PSW[2]
PSW[1]
PSW[0]
OV
–
P
Overflow flag.
User defined flag.
Parity flag, affected by hardware to indicate odd / even number of “one” bits
in the Accumulator, i.e. even parity.
Bank Selected
Bank 0
Bank 1
Bank 2
Bank 3
Location
(0x00 – 0x07)
(0x08 – 0x0F)
(0x10 – 0x17)
(0x18 – 0x1F)
RS1
RS
OV
–
P
LSB
Symbol
CV
AC
F0
Stack Pointer (SP):
The stack pointer is a 1-byte register initialized to 0x07 after reset. This register is
incremented before PUSH and CALL instructions, causing the stack to begin at location 0x08.
Data Pointer:
The data pointer
(
DPTR) is 2 bytes wide. The lower part is
DPL,
and the highest is
DPH
.
It can be loaded as two registers (e.g. MOV DPL,#data8). It is generally used to access external code or
data space (e.g. MOVC A,@A+DPTR or MOVX A,@DPTR respectively).
Program Counter:
The program counter (
PC)
is 2 bytes wide and initialized to 0x0000 after reset. This
register is incremented when fetching operation code or when operating on data from program memory.
Rev. 1.2
21