编写程序实现将存储区2000H-20FFH中的数据传送到 4000H-40FFH中 5
1个回答
2020-06-05
展开全部
ORG 0000H
LJMP MAIN
ORG 0080H
MAIN: MOV R0,#00H
MOV DPTR,#2000H ;将2000H地址送DPTR
LOO1: MOV A,#01H
MOVX @DPTR,A ;将数值0送(DPTR)里的地址空间
INC DPTR ;DPTR+1
INC R0 ;字节数+1
CJNE R0,#00H,LOO1 ;不到FF个字节在清0
MOV R2,#20H ;源首地址
MOV R3,#00H
MOV R4,#40H ;目的地址
MOV R5,#00H
MOV R6,#1FH ;字节数
MOV R7,#0FFH
SE22: MOV DPL,R3
MOV DPH,R2 ;建立源地址首址
MOVX A,@DPTR ;取数
MOV DPL,R5
MOV DPH,R4 ;目的地首址
MOVX @DPTR,A ;传送
CJNE R3,#0FFH,LO42
INC R2
LO42: INC R3 ;源地址加1
CJNE R5,#0FFH,LO43
INC R4
LO43: INC R5 ;目的地址加1
CJNE R7,#00H,LO44
CJNE R6,#00H,LO45 ;字节数减1
LOOP: SJMP LOOP
NOP
LO44: DEC R7
SJMP SE22
LO45: DEC R7
DEC R6
SJMP SE22
END
LJMP MAIN
ORG 0080H
MAIN: MOV R0,#00H
MOV DPTR,#2000H ;将2000H地址送DPTR
LOO1: MOV A,#01H
MOVX @DPTR,A ;将数值0送(DPTR)里的地址空间
INC DPTR ;DPTR+1
INC R0 ;字节数+1
CJNE R0,#00H,LOO1 ;不到FF个字节在清0
MOV R2,#20H ;源首地址
MOV R3,#00H
MOV R4,#40H ;目的地址
MOV R5,#00H
MOV R6,#1FH ;字节数
MOV R7,#0FFH
SE22: MOV DPL,R3
MOV DPH,R2 ;建立源地址首址
MOVX A,@DPTR ;取数
MOV DPL,R5
MOV DPH,R4 ;目的地首址
MOVX @DPTR,A ;传送
CJNE R3,#0FFH,LO42
INC R2
LO42: INC R3 ;源地址加1
CJNE R5,#0FFH,LO43
INC R4
LO43: INC R5 ;目的地址加1
CJNE R7,#00H,LO44
CJNE R6,#00H,LO45 ;字节数减1
LOOP: SJMP LOOP
NOP
LO44: DEC R7
SJMP SE22
LO45: DEC R7
DEC R6
SJMP SE22
END
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询