TS80C54X2YYY-MICD Atmel Corporation, TS80C54X2YYY-MICD Datasheet - Page 12

no-image

TS80C54X2YYY-MICD

Manufacturer Part Number
TS80C54X2YYY-MICD
Description
8-bit CMOS Microcontroller 16/32 Kbytes ROM/OTP
Manufacturer
Atmel Corporation
Datasheet
TS80C54X2/C58X2
TS87C54X2/C58X2
ASSEMBLY LANGUAGE
; Block move using dual data pointers
; Destroys DPTR0, DPTR1, A and PSW
; note: DPS exits opposite of entry state
; unless an extra INC AUXR1 is added
;
00A2
;
0000 909000MOV DPTR,#SOURCE
0003 05A2 INC AUXR1
0005 90A000 MOV DPTR,#DEST
0008
0008 05A2 INC AUXR1
000A E0
000B A3
000C 05A2 INC AUXR1
000E F0
000F A3
0010 70F6 JNZ LOOP
0012 05A2 INC AUXR1
INC is a short (2 bytes) and fast (12 clocks) way to manipulate the DPS bit in the AUXR1 SFR. However,
note that the INC instruction does not directly force the DPS bit to a particular state, but simply toggles it.
In simple routines, such as the block move example, only the fact that DPS is toggled in the proper sequence
matters, not its actual value. In other words, the block move routine works the same whether DPS is '0' or '1'
on entry. Observe that without the last instruction (INC AUXR1), the routine will exit with DPS in the
opposite state.
12
LOOP:
MOVX A,@DPTR
INC DPTR
MOVX @DPTR,A
INC DPTR
AUXR1 EQU 0A2H
; address of SOURCE
; switch data pointers
; address of DEST
; switch data pointers
; get a byte from SOURCE
; increment SOURCE address
; switch data pointers
; write the byte to DEST
; increment DEST address
; check for 0 terminator
; (optional) restore DPS
Rev. C - 15 January, 2001

Related parts for TS80C54X2YYY-MICD