万年历51汇编语言源程序

来源:百度知道 编辑:UC知道 时间:2024/05/21 11:37:07

SJ DATA 30H ; 世纪 BCD 00 TO 99
NH DATA 31H ; 年号 BCD 00 TO 99 0000 TO 9999 年
YF DATA 32H ; 月份 BCD 01 TO 12

org 000h
MOV SP, #40H
MOV SJ, #21H ;2004-05
MOV NH, #01H
MOV YF, #4H
ACALL SUB_WNL
SJMP $

;===============SUB_WNL===================
; 入口:
; SJ DATA 30H ; 世纪 BCD 00 TO 99
; NH DATA 31H ; 年号 BCD 00 TO 99 0000 TO 9999 年
; YF DATA 32H ; 月份 BCD 01 TO 12
; 出口
; ACC -- 本月天数 BCD 28 to 31
; B -- 本月1日的星期数 1 to 6 == 星期1 to 星期6
; 0 -- 星期日
; 使用: ACC, B, R5, R6
; STACK: 3 bytes (不包括调用)
ORG 50H

SUB_WNL:
PUSH PSW
MOV A, SJ
ACALL BCD2BIN_MOD4
; x 400年: (大周期)
; =146097天 = 7 *