小弟刚学习单片机,很多地方不了解,这里有两个程序,高手帮写下注释,看得清楚一点~谢谢!
题目:把R2 R3源RAM 区首地址内的R6 R7字节数据传送到R4 R5目的地址的RAM。
程序: ORG 00H
AJMP MAIN
MAIN:MOV SP,#5FH
S1: MOV DPL,R3
MOV DPH,R2
MOVX A,@DPTR
MOV DPL,R5
MOV DPH,R4
MOVX @DPTR,A
CJNE R3,#0FFH,L1
INC R2
L1: INC R3
CJNE R5,#0FFH,L2
INC R4
L2: INC R5
CJNE R7,#00H,L3
CJNE R6,#00H,L4
SJMP $
NOP
L3: DEC R7
SJMP S1
L4: DEC R7
DEC R6
SJMP S1
END
程序: ORG 00H ;程序: 定义当前位置为,00H
AJMP MAIN ;绝对转移 MAIN,
MAIN:MOV SP,#5FH ;传送 SP,立即数5FH
S1: MOV DPL,R3 ;传送 DPL,R3
MOV DPH,R2 ;传送 DPH,R2
MOVX A,@DPTR ;外部RAM-读/写 寄存器A,DPTR 指向的单元的内容
MOV DPL,R5 ;传送 DPL,R5
MOV DPH,R4 ;传送 DPH,R4
MOVX @DPTR,A ;外部RAM-读/写 DPTR,指向的单元的内容A
CJNE R3,#0FFH,L1 ;比较-不等转移 通用寄存器3,立即数0FFH,
INC R2 ;加1 通用寄存器2,
L1: INC R3 ;加1 通用寄存器3,
CJNE R5,#0FFH,L2 ;比较-不等转移 通用寄存器5,立即数0FFH,
INC R4 ;加1 通用寄存器4,
L2: INC R5 ;加1 通用寄存器5,
CJNE R7,#00H,L3 ;比较-不等转移 通用寄存器7,立即数00H,
CJNE R6,#00H,L4 ;比较-不等转移 通用寄存器6,立即数00H,
SJMP $ ;短转移到 到本行,
NOP ;空操作
L3: DEC R7 ;减1 通用寄存器7,
SJMP S1 ;短转移到 S1,
L4: DEC R7 ;减1 通用寄存器7,
DEC R6 ;减1 通用寄存器6,
SJMP S1 ;短转移到 S1,
END ;END
阅读模式无法加载下一章,请退出