English
Language : 

DS89C420-QCL Datasheet, PDF (77/139 Pages) Maxim Integrated Products – Ultra-High-Speed Flash Microcontroller User’s Guide
Ultra-High-Speed Flash
Microcontroller User’s Guide
to account for potential page misses. The sample code listings have been marked accordingly with ‘+D’ to indicate a data access
page-miss and ‘+C’ to indicate a code-fetch page-miss. Thus, in the case of back-to-back MOVX operations, the second MOVX oper-
ation has two clock cycles added (‘+CD’), one associated with the code fetch and one associated with the data access.
Table 6-9. Enhanced Data Pointer Speed Improvement
DATA POINTER OPERATION
Single Data Pointer
Dual Data Pointer
Dual Data Pointer w/AID
Dual Data Pointer w/TSL
Dual Data Pointer w/AID,TSL
DS80C320 HIGH SPEED
CLOCK CYCLES
(4CLKS/MCLK)
EXECUTION TIME
(AT 33MHZ)
1869 x 4
227µs
1098 x 4
—
133µs
—
—
—
—
—
DS89C420 ULTRA-HIGH SPEED
CLOCK CYCLES
EXECUTION TIME
(AT 33MHZ)
1933
59µs
1291
1169
39µs
35µs
910
28µs
782
24µs
The sample code listings for these programs appear on the following pages.
Program 1 listed below is original code written for an 8051 and utilizes a single data pointer.
Program 2 uses the dual data pointer feature.
Program 3 uses the dual data pointer with autoincrement enhancement.
Program 4 uses the dual data pointer with autotoggle enhancement.
Program 5 uses the dual data pointer with autoincrement and autotoggle enhancements.
The relevant register and bit locations are summarized as follows:
DPL 82h Low-byte original DPTR
DPH 83h High-byte original DPTR
DPL1 84h Low-byte new DPTR
DPH1 85h High-byte new DPTR
DPS 86h SEL bit = DPS.0
AID bit = DPS.4
TSL bit = DPS.5
PROGRAM 1: 64-BYTE BLOCK MOVE (WITHOUT DUAL DATA POINTER)
; SH and SL are high and low byte source address.
; DH and DL are high and low byte of destination address.
; For cycle counts:
; HSM = High-Speed Microcontroller
; UHSM = ultra-high-speed microcontroller
MOV
R5, #64
; NUMBER OF BYTES TO MOVE
MOV
DPTR, #SHSL
; LOAD SOURCE ADDRESS
MOV
R1, #SL
; SAVE LOW BYTE OF SOURCE
MOV
R2, #SH
; SAVE HIGH BYTE OF SOURCE
MOV
R3, #DL
; SAVE LOW BYTE OF DESTINATION
MOV
R4, #DH
; SAVE HIGH BYTE OF DESTINATION
MOVE:
; THIS LOOP IS PERFORMED R5 TIMES, IN THIS EXAMPLE 64
MOVX
A, @DPTR
; READ SOURCE DATA BYTE
MOV
R1, DPL
; SAVE NEW SOURCE POINTER
MOV
R2, DPH
;
MOV
DPL, R3
; LOAD NEW DESTINATION
MOV
DPH, R4
;
# HSM/UHSM CYCLES
2/2
3/3
2/2
2/2
2/2
2/2
2/3 +D
2/3 +C
2/2
2/2
2/2
77 _____________________________________________________________________________________________