English
Language : 

W77E058A40DL Datasheet, PDF (39/87 Pages) Nuvotem Talema – GENERAL DESCRIPTION
W77E058A
8.2 MOVX Instruction
The W77E058, like the standard 8032, uses the MOVX instruction to access external Data Memory.
This Data Memory includes both off-chip memory as well as memory mapped peripherals. While the
results of the MOVX instruction are the same as in the standard 8032, the operation and the timing of
the strobe signals have been modified in order to give the user much greater flexibility.
The MOVX instruction is of two types, the MOVX @Ri and MOVX @DPTR. In the MOVX @Ri, the
address of the external data comes from two sources. The lower 8-bits of the address are stored in the
Ri register of the selected working register bank. The upper 8-bits of the address come from the port 2
SFR. In the MOVX @DPTR type, the full 16-bit address is supplied by the Data Pointer.
Since the W77E058 has two Data Pointers, DPTR and DPTR1, the user has to select between the two
by setting or clearing the DPS bit. The Data Pointer Select bit (DPS) is the LSB of the DPS SFR, which
exists at location 86h. No other bits in this SFR have any effect, and they are set to 0. When DPS is 0,
then DPTR is selected, and when set to 1, DPTR1 is selected. The user can switch between DPTR
and DPTR1 by toggling the DPS bit. The quickest way to do this is by the INC instruction. The
advantage of having two Data Pointers is most obvious while performing block move operations. The
accompanying code shows how the use of two separate Data Pointers speeds up the execution time
for code performing the same task.
Block Move with single Data Pointer:
; 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
MOV
MOV
MOV
MOV
R2, #CNT
R3, #SL
R4, #SH
R5, #DL
R6, #DH
; Load R2 with the count value
; Save low byte of Source Address in R3
; Save high byte of Source address in R4
; Save low byte of Destination Address in R5
; Save high byte of Destination address in R6
Machine Cycles of
W77E058
#
2
2
2
2
2
LOOP:
MOV DPL, R3
MOV DPH, R4
MOVX A, @DPTR
INC DPTR
MOV R3, DPL
MOV R4, DPH
MOV DPL, R5
MOV DPH, R6
MOVX @DPTR, A
INC DPTR
MOV DPL, R5
MOV DPH, R6
DJNZ R2, LOOP
; Load DPL with low byte of Source address
2
; Load DPH with high byte of Source address
2
; Get byte from Source to Accumulator
2
; Increment Source Address to next byte
2
; Save low byte of Source address in R3
2
; Save high byte of Source Address in R4
2
; Load low byte of Destination Address in DPL
2
; Load high byte of Destination Address in DPH
2
; Write data to destination
2
; Increment Destination Address
2
; Save low byte of new destination address in R5
2
; Save high byte of new destination address in R6
2
; Decrement count and do LOOP again if count <> 0 2
- 39 -
Publication Release Date: April 17, 2007
Revision A10