SN8P2714X_2715
8-bit micro-controller build-in 12-bit ADC
SONiX TECHNOLOGY CO., LTD
Page 27
V1.4
3.5 ACCUMULATOR
The ACC is an 8-bits 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 ACC value don’t store in any interrupt service executed. ACC must be exchanged to another data memory 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: ACC and working registers protection.
ACCBUF
EQU
00H
; ACCBUF is ACC data buffer in bank 0.
INT_SERVICE:
B0XCH
A,
ACCBUF
; B0XCH doesn’t change C, Z flag
B0MOV A,
PFLAG
B0MOV PFLAGBUF,
A
; Save PFLAG register in a buffer
.
.
B0MOV A,
PFLAGBUF
B0MOV PFLAG,
A
; Restore PFLAG register from buffer
B0XCH
A, ACCBUF
; Re-load ACC
RETI
; Exit interrupt service vector
¾
Notice: To save and re-load ACC data must be used “B0XCH” instruction, or the PLAGE value maybe
modified by ACC.