单片机汇编程序,哪位帮忙把注释写上

来源:百度知道 编辑:UC知道 时间:2024/06/15 16:55:34
ORG 0000H
AJMP MAIN
ORG 0003H
AJMP INT
MAIN: MOV SP,#6OH
MOV P2,#00H
MOV P1,#00H
MOV P0,#00H
MOV A,,#01
SETB IT0
SETB EX0
SETB EA

LOOP1: LCALL DY
MOV P0,A
RL A
SJMP LOOP1
ORG 0100H
DY: MOV R6,#250
DLP1: MOV R7,#250
DLP2: DJN2 R7,DLP2
DJN2 R6,DLP1
RET

ORG 0150H
INT: CLR EA
PUSH ACC
SETB RSO
MOV A,#1
MOV R7,#8
LOOP2: MOV P1,A
RL A
DJNZ R7,LOOP2
MOV P1,#00H
POP ACC
SETB EA
RETI
END

ORG 0000H ;主函数的入口地址
AJMP MAIN
ORG 0003H ;子程序的入口地址
AJMP INT
MAIN: MOV SP,#6OH ;指针指向地址为60H的存储单元
MOV P2,#00H ;P2口清零
MOV P1,#00H ;P1口清零
MOV P0,#00H ;P0口清零
MOV A,,#01 ;立即数01放入寄存器A中
SETB IT0 ;标志位IT0=1
SETB EX0 ;标志位EX0=1
SETB EA ;标志位EA=1

LOOP1: LCALL DY ;长调用子程序DY
MOV P0,A ;寄存器A中的数送到P0口
RL A ;寄存器A中的数逻辑右移一位
SJMP LOOP1 ;短跳转至LOOP1处
ORG 0100H ;子程序的入口地址为0100H
DY: MOV R6,#250 ;R6=250
DLP1: MOV R7,#250 ;R7=250
DLP2: DJN2 R7,DLP2 ;R7中的数自减1,若不等于0则跳转到DLP2,等于0往下
;走
DJN2 R6,DLP1 ;R6中的数自减1,若不等于0则跳转到DLP1
RET ;由以上可以看出DY为延时子程序

ORG 0150H ;子程序INT的入口地址为0150H
INT: CLR EA ;标志位EA=0
PUSH ACC ;ACC中的数据入栈
SETB RSO ;RS0=0
MOV A,#1 ;A=1
MOV R7,#8 ;