汇编程序解释

来源:百度知道 编辑:UC知道 时间:2024/09/28 12:57:00
WRITE: MOV R2,#8
WR0: CLR P3.3
MOV R3,#6
DJNZ R3,$
RRC A
MOV P3.3,C
MOV R3,#20
DJNZ R3,$
SETB P3.3
NOP
NOP
DJNZ R2,WR0
SETB P3.3
RET

请哪位高人帮我解释一下上面这段程序的意思,最好是能逐句解释
谢谢!

WRITE: MOV R2,#8 //把立即数8放入R2寄存器
WR0: CLR P3.3 //P3.3置0
MOV R3,#6 //把立即数6放入R3寄存器
DJNZ R3,$ //检测R3是否为0 等待
RRC A //A带进位位的右循环
MOV P3.3,C //把进位标志C 赋给P3.3口
MOV R3,#20 //把立即数20放入R3寄存器
DJNZ R3,$ //检测R3是否为0 等待
SETB P3.3 //P3.3置1
NOP //空操作
NOP //空操作
DJNZ R2,WR0 //R2不为0跳转 WRO
SETB P3.3 //P3.3置1
RET

WRITE: MOV R2,#8 ;设置循环次数8
WR0: CLR P3.3 ;设置 P3.3初值为0
MOV R3,#6 ;设置延时参数6
DJNZ R3,$ ;延时12us
RRC A ;累加器A内容带进位右移一位
MOV P3.3,C ;将移位后的进位C放入P3.3
MOV R3,#20 ;设置延时参数20
DJNZ R3,$ ;延时40us
SETB P3.3 ;将P3.3置1
NOP ;空操作
NOP ;空操作
DJNZ R2,WR0 ;未完成8次循环转(继续)
SETB P3.3;完成了8次循环则将P3.3置1
RET ;中断返回
因不知道你其它程序,不好说是做什么。大致是通过A的内容控制连接在P3.3上的某个设备。