SN8P1600
8-bit micro-controller
SONiX TECHNOLOGY CO., LTD
Page 28
Revision 1.94
ACCUMULATOR
The ACC is an 8-bit data register responsible for transferring or manipulating data between ALU and data memory. If
the result of operating is zero (Z) or there is carry (C or DC) occurrence, then these flags will be set to PFLAG register.
ACC is not in data memory (RAM), so ACC can’t be access by “B0MOV” instruction during the instant addressing
mode.
Example: Read and write ACC value.
; Read ACC data and store in BUF data memory
MOV
BUF, A
.
.
; Write a immediate data into ACC
MOV
A, #0FH
; Write ACC data from BUF data memory
MOV
A, BUF
The system doesn’t store ACC and PFLAG value when interrupt executed. ACC and PFLAG data must be exchanged
to other data memories defined by users. Thus, once interrupt occurs, these data must be stored in the data memory
based on the user’s program as follows.
Example: Protect ACC and working registers.
ACCBUF
EQU
00H
; ACCBUF is ACC data buffer.
PFLAGBUF
EQU
01H
; PFLAGBUF is PFLAG data buffer.
INT_SERVICE:
B0XCH
A, ACCBUF
; Store ACC value
B0MOV
A, PFLAG
; Store PFLAG value
B0MOV
PFLAGBUF,A
.
.
.
.
B0MOV
A, PFLAGBUF
; Re-load PFLAG value
B0MOV
PFLAG,A
B0XCH
A, ACCBUF
; Re-load ACC
RETI
; Exit interrupt service vector
Note: To save and re-load ACC data must be used “B0XCH” instruction, or the PFLAG value maybe
modified by ACC.