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
LSB
CV
AC
F0
RS1
RS
OV
–
P
Bit
Symbol Function
PSW[7]
PSW[6]
PSW[5]
CV
AC
F0
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]
PSW[3]
RS1
RS0
Register bank select control bits. The contents of RS1 and RS0 select the
working register bank:
RS1/RS0
00
Bank Selected
Bank 0
Location
(0x00 – 0x07)
(0x08 – 0x0F)
(0x10 – 0x17)
(0x18 – 0x1F)
01
Bank 1
10
Bank 2
11
Bank 3
PSW[2]
PSW[1]
PSW[0]
OV
–
Overflow flag.
User defined flag.
P
Parity flag, affected by hardware to indicate odd / even number of “one” bits
in the Accumulator, i.e. even parity.
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