小弟刚学习单片机,很多地方不了解,这里有两个程序,高手帮写下注释,看得清楚一点~谢谢!
题目:把R2R3源RAM区首地址内的R6R7字节数据传送到R4R5目的地址的RAM。
程序:ORG00H
AJMPMAIN
MAIN:MOVSP,#5FH
S1:MOVDPL,R3
MOVDPH,R2
MOVXA,@DPTR
MOVDPL,R5
MOVDPH,R4
MOVX@DPTR,A
CJNER3,#0FFH,L1
INCR2
L1:INCR3
CJNER5,#0FFH,L2
INCR4
L2:INCR5
CJNER7,#00H,L3
CJNER6,#00H,L4
SJMP$
NOP
L3:DECR7
SJMPS1
L4:DECR7
DECR6
SJMPS1
END
程序:ORG00H;程序:定义当前位置为,00H
AJMPMAIN;绝对转移MAIN,
MAIN:MOVSP,#5FH;传送SP,立即数5FH
S1:MOVDPL,R3;传送DPL,R3
MOVDPH,R2;传送DPH,R2
MOVXA,@DPTR;外部RAM-读/写寄存器A,DPTR指向的单元的内容
MOVDPL,R5;传送DPL,R5
MOVDPH,R4;传送DPH,R4
MOVX@DPTR,A;外部RAM-读/写DPTR,指向的单元的内容A
CJNER3,#0FFH,L1;比较-不等转移通用寄存器3,立即数0FFH,
INCR2;加1通用寄存器2,
L1:INCR3;加1通用寄存器3,
CJNER5,#0FFH,L2;比较-不等转移通用寄存器5,立即数0FFH,
INCR4;加1通用寄存器4,
L2:INCR5;加1通用寄存器5,
CJNER7,#00H,L3;比较-不等转移通用寄存器7,立即数00H,
CJNER6,#00H,L4;比较-不等转移通用寄存器6,立即数00H,
SJMP$;短转移到到本行,
NOP;空操作
L3:DECR7;减1通用寄存器7,
SJMPS1;短转移到S1,
L4:DECR7;减1通用寄存器7,
DECR6;减1通用寄存器6,
SJMPS1;短转移到S1,
END;END
读书三件事:阅读,收藏,加打赏!