Datasheet
71M6521DE/DH/FE Data Sheet 
Rev 3    Page: 21 of 107 
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): 
MSB  LSB 
CV  AC  F0  RS1  RS  OV  -  P 
Table 9: PSW Register Flags 
Bit 
Symbol 
Function 
PSW.7  CV 
Carry flag 
PSW.6  AC 
Auxiliary Carry flag for BCD operations 
PSW.5  F0 
General purpose Flag 0 available for user. 
F0 is not to be confused with the F0 flag in the CESTATUS register. 
PSW.4  RS1  Register bank select control bits. The contents of RS1 and RS0 select the working 
register bank: 
RS1/RS0 
Bank selected 
Location 
00  Bank 0  (0x00 – 0x07) 
01  Bank 1  (0x08 – 0x0F) 
10  Bank 2  (0x10 – 0x17) 
11  Bank 3  (0x18 – 0x1F) 
PSW.3  RS0 
PSW.2  OV 
Overflow flag 
PSW.1  - 
User defined flag 
PSW.0  P 
Parity flag, affected by hardware to indicate odd / even number of “one” bits in the 
Accumulator, i.e. even parity. 
Table 10: PSW Bit Functions 
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 initialized to 0x0000 after reset. This register is 
incremented when fetching operation code or when operating on data from program memory.  
Port Registers: The I/O ports are controlled by Special Function Registers P0, P1, and P2. The contents of the SFR 
can be observed on corresponding pins on the chip. Writing a ‘1’ to any of the ports (see Table  11) causes the 
corresponding pin to be at high level (V3P3), and writing a ‘0’ causes the corresponding pin to be held at low level 
(GND). The data direction registers DIR0, DIR1, and DIR2 define individual pins as input or output pins (see section 
Digital I/O for details).  










