51单片机中,怎么才能吧2000H-3FFFH的内容送到4000H-5FFFH中去啊,请哪位大虾帮忙编个程啊,谢谢了

来源:百度知道 编辑:UC知道 时间:2024/07/03 14:33:43
要用汇编语言的,不要C语言的,跪求了啊

MOV DPTR,#2000H ;从2000H开始转移
LOOP:MOVX A,@DPTR ;将2000H里的内容暂存在A中
MOV R0,A ;将2000H里的内容暂存在R0中,把A腾出
MOV A,DPH ;将DPTR的高8位内容#20H存入A中
ADD A,#20H ;将DPTR的高8位内容加#20H
MOV DPH,A ;DPTR的高8位变为40H
MOV A,R0 ;将起初2000H里的内容再次交给A
MOVX @DPTR,A ;将2000H里的内容送给4000H
MOV A,DPH ;将DPTR还原为4000H
SUBB A,#20H
MOV DPH,A
INC DPL ;将DPTR内容加1即DPTR变为2001H
MOV R0,DPH;若DPTR还没加到4000H则准备20001H向4001H的传送
CJNE R0,#40H,LOOP
END

MOV DPTR,#2000H;
MOV R1;#40H;
KKKK0:MOV R2,#0;
KKKK1:MOV R0,#0;
MOVX A,@DPTR;
MOV P0,R1;
MOVX @R0,A;
INC DPTR;
INC R0;
DJNZ R2,KKKK1;
INC R1;
CJNE R1,#60H,KKKK0;
SJMP $