⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1302.asm

📁 万年历程序 从1302中读出的数据放在67H(高两位年)66H(低两位年)65H(月)64H(星期)63H(日) 62H(小时)61H(分钟)60H(秒)57H(农历月)56H(农历日) 显示
💻 ASM
📖 第 1 页 / 共 5 页
字号:
                           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 + -