1
试编程将内部RAM40H~60H单元中的内容传送到外部RAM以2000H为首地址的存储区中。
ORG 0600H
MOV R0,#40H
MOV DPTR,#2000H
MOV R7,#21H
LOOP: MOV A,@R0
MOVX @DPTR,A
INC R0
INC DPTR
DJNZ R7,LOOP
END
2
在外部RAM首地址为DATA的存储器中,有10个字节的数据。试编程将每个字节的最高位无条件地置1。
ORG 0700H
MOV DPTR,#DATA
MOV R7,#10
LOOP: MOVX A,@DPTR
ORL A,#80H
MOVX @DPTR,A
INC DPTR
DJNZ R7,LOOP
END
3
编写程序将外部RAM3000H开始的13个单元中的数据隔一个传送到内部RAM30H开始的区域。
ORG 0800H
MOV DPTR,#3000H
MOV R0,#30H
MOV R7,#7
LOOP: MOVX A,@DPTR
MOV @R0,A
INC DPTR
INC DPTR
INC R0
DJNZ R7,LOOP
END
4
编程将外部RAM地址为1000H~1030H的数据块,全部搬迁到内部RAM30H~60H中,并将原数据区全部清零。
ORG 0900H
MOV DPTR,#1000H
MOV R1,#30H
MOV R7,#31H
LOOP: MOVX A,@DPTR
MOV @R1,A
CLR A
MOVX @DPTR,A
INC DPTR
INC R1
DJNZ R7,LOOP
END
5
设在外部RAM2000H~2004H单元中,存放有5个压缩BCD码,试编程将它们转换成ASCII码,存放到以外部RAM2005H单元为首地址的存储区中。
ORG 1200H
MOV DPTR,#2000H
MOV R0,#30H
MOV R7,#5
LOP1: MOVX A,@DPTR
ANL A,#0FH
ADD A,#30H
MOV @R0,A
INC R0
MOVX A,@DPTR
ANL A,#0F0H
SWAP A
ADD A,#30H
MOV @R0,A
INC R0
INC DPTR
DJNZ R7,LOP1
MOV DPTR,#2005H
MOV R0,#30H
MOV R7,#10
LOP2: MOV A,@R0
MOVX @DPTR,A
INC R0
INC DPTR
DJNZ R7,LOP2
END