📄 万年历.asm
字号:
MOV A,R1 ;R2减4月天数,够减
MOV R2,A
AJMP MM4
M42: CJNE R3,#00H,M43 ;R2减4月天数
LJMP Y4 ;不够减,判断R3为0否
M43: MOV A,R2 ;不为0,R3加到R2中
ADD A,R3 ;再让4月减
MOV R2,A ;还不够,则转Y4
MOV R3,#00H
AJMP M4
MM4: LCALL CHECKRE ;查4月,如果不为闰月
CJNE A,#04H,M5 ;转5月
RM4: MOV A,R4
ANL A,#0FH ;R2减闰4月天数
JNZ RM41
MOV A,R2
CLR C
SUBB A,#30
MOV R1,A
AJMP RM42
RM41: MOV A,R2
CLR C
SUBB A,#29
MOV R1,A
RM42: JC RM43
MOV A,R1 ;R2减闰4月天数,够减
MOV R2,A ;转5月
AJMP M5
RM43: CJNE R3,#00H,RM44
LJMP RY4 ;R2减润4月天数
RM44: MOV A,R2 ;不够减,判断R3为0否
ADD A,R3 ;不为0,R3加到R2中
MOV R2,A ;再让闰4月减
MOV R3,#00H ;还不够转RY4
AJMP RM4
M5: MOV A,R2 ;R2减5月天数
CLR C
SUBB A,#29
MOV R1,A
MOV A,R6
JB ACC.1,M51
MOV A,R2
CLR C
SUBB A,#30
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
AJMP M5
MM5: LCALL CHECKRE ;查5月,如果不为闰月
CJNE A,#05H,M6 ;转6月
RM5: MOV A,R4
ANL A,#0FH ;R2减闰5月天数
JNZ RM51
MOV A,R2
CLR C
SUBB A,#30
MOV R1,A
AJMP 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
LJMP RY5 ;R2减润5月天数
RM54: MOV A,R2 ;不够减,判断R3为0否
ADD A,R3 ;不为0,R3加到R2中
MOV R2,A ;再让闰5月减
MOV R3,#00H ;还不够转RY5
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
AJMP 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
AJMP 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
AJMP 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
LJMP RY6 ;R2减润6月天数
RM64: MOV A,R2 ;不够减,判断R3为0否
ADD A,R3 ;不为0,R3加到R2中
MOV R2,A ;再让闰6月减
MOV R3,#00H ;还不够转RY6
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
AJMP MM7
M72: CJNE R3,#00H,M73 ;R2减7月天数
LJMP Y7 ;不够减,判断R3为0否
M73: MOV A,R2 ;不为0,R3加到R2中
ADD A,R3 ;再让7月减
MOV R2,A ;还不够,则转Y7
MOV R3,#00H
AJMP 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
AJMP 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
LJMP RY7 ;R2减润5月天数
RM74: MOV A,R2 ;不够减,判断R3为0否
ADD A,R3 ;不为0,R3加到R2中
MOV R2,A ;再让闰7月减
MOV R3,#00H ;还不够转RY7
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
AJMP MM9 ;转9月
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月天数,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -