实验1 数据传送实验
实验指导书40页1数据传送程序
编写一个数据传送程序,使AT89C51的片内RAM的30H~3FH单元置初值10H~1FH,然后传送到片外RAM的2000H~200FH单元中,再将2000H~200FH单元中的内容传送到片内RAM 的50H~5FH单元中。
ORG 0000H
AJMP START
ORG 0030H
START:MOV A,#10H
MOV R0,#30H
MOV R7,#10H
LOOP1:MOV @R0,A
INC A
INC R0
DJNZ R7,LOOP1
MOV R0 ,#30H
MOV DPTR ,#2000H
MOV R7,#10H
LOOP2:MOV A,@R0
MOVX @DPTR,A
INC R0
INC DPTR
DJNZ R7,LOOP2
MOV DPTR,#2000H
MOV R0,#50H
MOV R7,#10H
LOOP3:MOVX A,@DPTR
MOV @R0, A
INC DPTR
INC R0
DJNZ R7,LOOP3
END
94页第三题
从片内RAM的20H单元开始,有15个数据。试编程将其中的正数,负数分别送到片内RAM 41H和61H开始的存储单元,并分别将正数,负数的个数送片内RAM 40H和60H单元ORG 0000H
AJMP START
ORG 0030H
START:MOV A,#05H
MOV R0,#20H
MOV R7,#0FH
LOOP0:MOV @R0,A
DEC A
INC R0
DJNZ R7,LOOP0
MOV R0,#20H
MOV R2,#0FH
MOV R3,#00H
MOV R4,#00H
MOV 40H,#41H
MOV 60H,#61H
LOOP1:MOV A,@R0
JB ACC.7,LOOP3
LOOP2:MOV R1,40H
MOV @R1,A
INC 40H
INC R3
AJMP LOOP4
LOOP3:MOV R1,60H
MOV @R1,A
INC 60H
INC R4
LOOP4:INC R0
DJNZ R2,LOOP1
MOV 40H,R3
MOV 60H,R4
END