beautypg.com

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

Page 91

background image

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