Program 2: 64-byte block move (dual data pointer) – Maxim Integrated Ultra-High-Speed Flash Microcontroller User Manual
Page 91

6-24
Ultra-High-Speed Flash
Microcontroller User’s Guide
; THIS LOOP IS PERFORMED R5 TIMES, IN THIS EXAMPLE 64
MOVX
A, @DPTR
; READ SOURCE DATA BYTE
2/3 +D
MOV
R1, DPL
; SAVE NEW SOURCE POINTER
2/3 +C
MOV R2,
DPH
;
2/2
MOV
DPL, R3
; LOAD NEW DESTINATION
2/2
MOV DPH,
R4
;
2/2
# HSM/UHSM CYCLES
MOVX
@DPTR, A
; WRITE DATA TO DESTINATION
2/3 +D
INC
DPTR
; NEXT DESTINATION ADDRESS
3/2 +C
MOV
R3, DPL
; SAVE NEW DESTINATION POINTER
2/2
MOV R4,
DPH
;
2/2
MOV
DPL, R1
; GET NEW SOURCE POINTER
2/2
MOV
DPH, R2
;
2/2
INC
DPTR
; NEXT SOURCE ADDRESS
3/1
DJNZ
R5, MOVE
; FINISHED WITH TABLE?
3/4
PROGRAM 2: 64-BYTE BLOCK MOVE (DUAL DATA POINTER)
; SH and SL are high and low byte source address.
; DH and DL are high and low byte of destination address.
; DPS is the data pointer select. Reset condition DPTR0.
; For cycle counts:
; HSM = High-Speed Microcontroller
; UHSM = ultra-high-speed microcontroller
# HSM/UHSM CYCLES
DPS
EQU 86h
; TELL ASSEMBLER ABOUT DPS
MOV
R5, #64
; NUMBER OF BYTES TO MOVE
2/2
MOV
DPTR, #DHDL
; LOAD DESTINATION ADDRESS
3/3
INC
DPS
; CHANGE ACTIVE DPTR
2/3
MOV
DPTR, #SHSL
; LOAD SOURCE ADDRESS
3/3
MOVE:
; THIS LOOP IS PERFORMED R5 TIMES, IN THIS EXAMPLE 64
MOVX
A, @DPTR
; READ SOURCE DATA BYTE
2/3 +D
INC
DPS
; CHANGE DPTR TO DESTINATION
2/4 +C
MOVX
@DPTR, A
; WRITE DATA TO DESTINATION
2/3 +D
INC
DPTR
; NEXT DESTINATION ADDRESS
3/2 +C
INC
DPS
; CHANGE DATA POINTER TO SOURCE
2/3
INC
DPTR
; NEXT SOURCE ADDRESS
3/1
DJNZ
R5, MOVE
; FINISHED WITH TABLE?
3/4
PROGRAM 3: 64-BYTE BLOCK MOVE (DUAL DATA POINTER, AID)
; SH and SL are high and low byte source address.
; DH and DL are high and low byte of destination address.
; DPS is the data pointer select. Reset condition DPTR0.
# UHSM CYCLES
DPS
EQU 86h
; TELL ASSEMBLER ABOUT DPS
MOV
R5, #64
; NUMBER OF BYTES TO MOVE
2
ORL
DPS, #10h
; SET AUTO-INC/DEC (AID)
3
MOV
DPTR, #DHDL
; LOAD DESTINATION ADDRESS
3
INC
DPS
; CHANGE ACTIVE DPTR
3
MOV
DPTR, #SHSL
; LOAD SOURCE ADDRESS
3
MOVE:
Maxim Integrated