English
Language : 

W77LE516 Datasheet, PDF (37/89 Pages) Winbond – 8-BIT MICROCONTROLLER
W77LE516/W77L516A
Machine cycles in standard 8032 = 10 + (26 * CNT)
Machine cycles in W77L516A = 10 + (26 * CNT)
If CNT = 50
Clock cycles in standard 8032= ((10 + (26 *50)) * 12 = (10 + 1300) * 12 = 15720
Clock cycles in W77L516A = ((10 + (26 * 50)) * 4 = (10 + 1300) * 4 = 5240
Block Move with Two Data Pointers in W77L516A:
; SH and SL are the high and low bytes of Source Address
; DH and DL are the high and low bytes of Destination Address
; CNT is the number of bytes to be moved
MOV R2, #CNT
; Load R2 with the count value
MOV DPS, #00h ; Clear DPS to point to DPTR
MOV DPTR, #DHDL ; Load DPTR with Destination address
INC DPS
; Set DPS to point to DPTR1
MOV DPTR, #SHSL ; Load DPTR1 with Source address
LOOP:
MOVX A, @DPTR ; Get data from Source block
INC DPTR
; Increment source address
DEC DPS
; Clear DPS to point to DPTR
MOVX @DPTR, A ; Write data to Destination
INC DPTR
; Increment destination address
INC DPS
; Set DPS to point to DPTR1
DJNZ R2, LOOP ; Check if all done
Machine cycles of W77L516A
#
2
2
3
2
3
2
2
2
2
2
2
3
Machine cycles in W77L516A = 12 + (15 * CNT)
If CNT = 50
Clock cycles in W77L516A = (12 + (15 * 50)) * 4 = (12 + 750) * 4 = 3048
We can see that in the first program the standard 8032 takes 15720 cycles, while the W77L516A
takes only 5240 cycles for the same code. In the second program, written for the W77L516A, program
execution requires only 3048 clock cycles. If the size of the block is increased then the saving is even
greater.
- 37 -
Publication Release Date: February 1, 2007
Revision A6