单片机汇编语言中断实验 可以解释一下整个代码吗

LedNumVal_1 EQU 70H
LedNumVal_2 EQU 71H
LedOut0 EQU 72H
LedOut1 EQU 73H
LedOut2 EQU 74H
LedOut3 EQU 75H
LedOut4 EQU 76H
LedOut5 EQU 77H
LedOut6 EQU 78H
LedOut7 EQU 79H

         ORG 0000H
     LJMP MAIN
     
     ORG 0003H
     SETB 00H
     RETI

     ORG 0013H
     SETB 01H
     RETI
         ORG 0030H

MAIN: MOV SP,#2FH
MOV LedOut0,#0
MOV LedOut1,#0
MOV LedOut2,#0
MOV LedOut3,#0
MOV LedOut4,#0
MOV LedOut5,#0
MOV LedOut6,#0
MOV LedOut7,#0
mov LedNumVal_1,#0
mov LedNumVal_2,#0
SETB 00H
SETB 01H
setb it0
setb it1
SETB EX0
SETB EX1
SETB EA

MAIN2: LCALL KEY1
JNB 02H,MAIN3
CLR 02H
INC LedNumVal_1
MOV R0,#LedNumVal_1
MOV R1,#LedOut1
LCALL BIN_BCD

MAIN3: LCALL KEY2
JNB 03H,MAIN4
CLR 03H
INC LedNumVal_2
MOV R0,#LedNumVal_2
MOV R1,#LedOut5
LCALL BIN_BCD

MAIN4: LCALL DISP
LJMP MAIN2

DISP: MOV DPTR,#TAB
MOV R1,#0
MOV R7,#8
MOV R0,#LedOut0
DISP1: MOV A,@R0
INC R0
MOVC A,@A+DPTR
MOV P0,A
MOV P2,R1
INC R1
LCALL DELAY
MOV P0,#00H
DJNZ R7,DISP1
RET
DELAY: MOV R5,#0
DJNZ R5,$
RET
KEY1: CLR 02H
JNB 00H,KEY10
CLR 00H
LCALL DISP
JB P3.2,KEY10
SETB 02H
KEY11: LCALL DISP
JNB P3.2,KEY11
KEY10: RET

KEY2: CLR 03H
JNB 01H,KEY20
CLR 01H
LCALL DISP
JB P3.3,KEY20
SETB 03H
KEY21: LCALL DISP
JNB P3.3,KEY21
KEY20: RET
BIN_BCD: MOV A,@R0
MOV B,#100
DIV AB
MOV @R1,A
INC R1
MOV A,B
MOV B,#10
DIV AB
MOV @R1,A
INC R1
MOV @R1,B
RET
TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7H,07H,7FH,6FH,00H

学会单步和设断点调试
代码功能归根结底不是别人帮自己看或讲解或注释出来的;而是被自己静下心来花足够长的时间和精力亲自动手单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中一步一步分析出来的。
提醒:再牛×的老师也无法代替学生自己领悟和上厕所!
单步调试和设断点调试是程序员必须掌握的技能之一。