📄 1302.asm
字号:
MOV R1,A
M51: JC M52
MOV A,R1 ;R2减5月天数,够减
MOV R2,A
AJMP MM5
M52: CJNE R3,#00H,M53 ;R2减5月天数
LJMP Y5 ;不够减,判,R3为0否
M53: MOV A,R2 ;不为0,R3加到R2中
ADD A,R3 ;再让5月减
MOV R2,A ;还不够,则转Y5
MOV R3,#00H
LJMP M5
MM5: LCALL CHECKRE ;查5月,如果不为闰月
CJNE A,#05H,M6 ;转6月
RM5: MOV A,R4 ;R2减闰5月天数
ANL A,#0FH
JNZ RM51
MOV A,R2
CLR C
SUBB A,#30
MOV R1,A
LJMP RM52
RM51:MOV A,R2
CLR C
SUBB A,#29
MOV R1,A
RM52:JC RM53
MOV A,R1 ;R2减闰5月天数,够减
MOV R2,A ;转6月
LJMP M6
RM53:CJNE R3,#00H,RM54 ;R2减闰5月天数
LJMP RY5 ;不够减,判,R3为0否
RM54:MOV A,R2 ;不为0,R3加到R2中
ADD A,R3 ;再让5月减
MOV R2,A ;还不够,则转RY5
MOV R3,#00H
LJMP RM5
M6: MOV A,R2 ;R2减6月天数
CLR C
SUBB A,#29
MOV R1,A
MOV A,R6
JB ACC.0,M61
MOV A,R2
CLR C
SUBB A,#30
MOV R1,A
M61: JC M62
MOV A,R1 ;R2减6月天数,够减
MOV R2,A
LJMP MM6
M62: CJNE R3,#00H,M63 ;R2减6月天数
LJMP Y6 ;不够减,判,R3为0否
M63: MOV A,R2 ;不为0,R3加到R2中
ADD A,R3 ;再让6月减
MOV R2,A ;还不够,则转Y6
MOV R3,#00H
LJMP M6
MM6: LCALL CHECKRE ;查6月,如果不为闰月
CJNE A,#06H,M7 ;转7月
RM6:MOV A,R4
ANL A,#0FH ;R2减闰6月天数
JNZ RM61
MOV A,R2
CLR C
SUBB A,#30
MOV R1,A
LJMP RM62
RM61: MOV A,R2
CLR C
SUBB A,#29
MOV R1,A
RM62: JC RM63
MOV A,R1 ;R2减闰6月天数,够减
MOV R2,A ;转7月
LJMP M7
RM63: CJNE R3,#00H,RM64 ;R2减闰6月天数
LJMP RY6 ;不够减,判,R3为0否
RM64: MOV A,R2 ;不为0,R3加到R2中
ADD A,R3 ;再让闰6月减
MOV R2,A ;还不够,则转RY6
MOV R3,#00H
LJMP RM6
M7: MOV A,R2 ;R2减7月天数
CLR C
SUBB A,#29
MOV R1,A
MOV A,R5
JB ACC.6,M71
MOV A,R2
CLR C
SUBB A,#30
MOV R1,A
M71: JC M72
MOV A,R1 ;R2减7月天数,够减
MOV R2,A
LJMP MM7
M72: CJNE R3,#00H,M73 ;R2减7月天数
LJMP Y7 ;不够减,判,R3为0否
M73: MOV A,R2 ;不为0,R3加到R2中
ADD A,R3 ;再让6月减
MOV R2,A ;还不够,则转Y7
MOV R3,#00H
LJMP M7
MM7: LCALL CHECKRE ;查7月,如果不为闰月
CJNE A,#07H,M8 ;转8月
RM7: MOV A,R4
ANL A,#0FH ;R2减闰7月天数
JNZ RM71
MOV A,R2
CLR C
SUBB A,#30
MOV R1,A
LJMP RM72
RM71: MOV A,R2
CLR C
SUBB A,#29
MOV R1,A
RM72: JC RM73
MOV A,R1 ;R2减闰7月天数,够减
MOV R2,A ;转8月
LJMP M8
RM73: CJNE R3,#00H,RM74 ;R2减闰7月天数
LJMP RY7 ;不够减,判,R3为0否
RM74: MOV A,R2 ;不为0,R3加到R2中
ADD A,R3 ;再让闰7月减
MOV R2,A ;还不够,则转RY7
MOV R3,#00H
LJMP RM7
M8: MOV A,R2 ;R2减8月天数
CLR C
SUBB A,#29
MOV R1,A
MOV A,R5
JB ACC.5,M81
MOV A,R2
CLR C
SUBB A,#30
MOV R1,A
M81: JC M82
MOV A,R1 ;R2减8月天数,够减
MOV R2,A ;转9月
LJMP M9
M82: CJNE R3,#00H,M83 ;R2减8月天数
LJMP Y8 ;不够减,判,R3为0否
M83: MOV A,R2 ;不为0,R3加到R2中
ADD A,R3 ;再让8月减
MOV R2,A ;还不够,则转Y8
MOV R3,#00H
LJMP M8
M9: MOV A,R2 ;R2减9月天数
CLR C
SUBB A,#29
MOV R1,A
MOV A,R5
JB ACC.4,M91
MOV A,R2
CLR C
SUBB A,#30
MOV R1,A
M91: JC M92
MOV A,R1 ;R2减9月天数,够减
MOV R2,A
LJMP MM9
M92: CJNE R3,#00H,M93 ;R2减9月天数
LJMP Y9 ;不够减,判,R3为0否
M93: MOV A,R2 ;不为0,R3加到R2中
ADD A,R3 ;再让9月减
MOV R2,A ;还不够,则转Y9
MOV R3,#00H
LJMP M9
MM9: LCALL CHECKRE ;查9月,如果不为闰月
CJNE A,#09H,M10 ;转10月
RM9: MOV A,R4 ;R2减闰9月天数
ANL A,#0FH
JNZ RM91
MOV A,R2
CLR C
SUBB A,#30
MOV R1,A
LJMP RM92
RM91: MOV A,R2
CLR C
SUBB A,#29
MOV R1,A
RM92: JC RM93
MOV A,R1 ;R2减闰9月天数,够减
MOV R2,A ;转10月
LJMP M10
RM93: CJNE R3,#00H,RM94 ;R2减闰9月天数
LJMP RY9 ;不够减,判,R3为0否
RM94: MOV A,R2 ;不为0,R3加到R2中
ADD A,R3 ;再让闰9月减
MOV R2,A ;还不够,则转RY9
MOV R3,#00H
LJMP RM9
M10: MOV A,R2 ;R2减10月天数
CLR C
SUBB A,#29
MOV R1,A
MOV A,R5
JB ACC.2,M101
MOV A,R2
CLR C
SUBB A,#30
MOV R1,A
M101: JC M102
MOV A,R1 ;R2减10月天数,够减
MOV R2,A ;转11月
LJMP M11
M102: CJNE R3,#00H,M103 ;R2减10月天数
LJMP Y10 ;不够减,判,R3为0否
M103: MOV A,R2 ;不为0,R3加到R2中
ADD A,R3 ;再让10月减
MOV R2,A ;还不够,则转Y10
MOV R3,#00H
LJMP M10
M11: MOV A,R2 ;R2减11月天数
CLR C
SUBB A,#29
MOV R1,A
MOV A,R5
JB ACC.1,M111
MOV A,R2
CLR C
SUBB A,#30
MOV R1,A
M111: JC M112
MOV A,R1 ;R2减11月天数,够减
MOV R2,A ;转12月
LJMP M12
M112: CJNE R3,#00H,M113 ;R2减11月天数
LJMP Y11 ;不够减,判,R3为0否
M113: MOV A,R2 ;不为0,R3加到R2中
ADD A,R3 ;再让11月减
MOV R2,A ;还不够,则转Y11
MOV R3,#00H
LJMP M11
M12: MOV A,R2 ;R2减12月天数
CLR C
SUBB A,#29
MOV R1,A
MOV A,R5
JB ACC.0,M121
CLR C
MOV A,R2
SUBB A,#30
MOV R1,A
M121: CJNE R3,#00H,M122 ;R2减12月天数
LJMP Y12 ;不够减,判,R3为0否
M122: MOV A,R2 ;不为0,R3加到R2中
ADD A,R3 ;再让12月减
MOV R2,A ;还不够,则转Y12
MOV R3,#00H
LJMP M12
Y1: MOV A,R2
MOV R0,A ;R2中为日的值
LCALL D_BCD
MOV 56H,A
MOV 57H,#01H
CLR F0 ;非闰月
LJMP S_PLAY
Y2: CJNE R2,#00H,Y21
MOV A,R6 ;R2中为0,则为前一个月
MOV 56H,#29H ;的的最后一天
JB ACC.6,Y22
MOV 56H,#30H
Y22: MOV 57H,#01H
CLR F0
LJMP S_PLAY
Y21: MOV A,R2
MOV R0,A ;R2中为日的值
LCALL D_BCD
MOV 56H,A
MOV 57H,#02H
CLR F0
LJMP S_PLAY
RY2: CJNE R2,#00H,RY21
MOV 56H,#29H ;R2中为0,则为前一个月
MOV A,R6 ;的的最后一天
JB ACC.5,RY22
MOV 56H,#30H
RY22:MOV 57H,#02H
CLR F0
LJMP S_PLAY
RY21:MOV A,R2 ;R2中为日的值
MOV R0,A
LCALL D_BCD
MOV 56H,A
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -