由于涉及到16位数据的读写,需要对DPTR进行保存
;将片外8000H的后的20个字节数据,送入8100H开始的内存单元中
ORG 0000H
MOV DPTR, #8000H
MOV R7, #14H
MOV A, #0FFH
MOVX @DPTR, A
LOOP1:
INC DPTR
MOVX @DPTR, A
DJNZ R7, LOOP1
;为便于观察结果,先向源地址段写入数据
MOV DPTR, #8000H
PUSH DPL
PUSH DPH;存源地址
MOV DPTR, #8100H
MOV R0, DPL
MOV R1, DPH;存目标地址
MOV R7, #14H;设置次数
TRANSMIT:
POP DPH
POP DPL;取出源地址
MOVX A, @DPTR;取出数据
INC DPTR
PUSH DPL
PUSH DPH;放回源地址
MOV DPL, R0
MOV DPH, R1;取目标地址
MOVX @DPTR, A;写入数据
INC DPTR
MOV R0, DPL
MOV R1, DPH;存目标地址
DJNZ R7, TRANSMIT
SJMP $