;>>>>>>>>>>>农历计算函数原代码<<<<<<<<<<<<<<<<<
;=============检测阳历对应年份是否闰年==========
; 输入:年份
; 输出:eax = 1 是闰年,否则 eax = 0
_IsLeapYear proto dwYear:dword
;=============取阳历对应年月的天数==============
; 输入:年份,月份
; 输出:eax = 天数
_GetMonthDays proto dwYear:dword,dwMonth:dword
;=============取阳历对应星期几==================
; 输入:年份,月份,日
; 输出:eax=星期,星期日=0,星期一=1…
_GetWeekDay proto dwYear:dword,dwMonth:dword,dwDay:dword
;=============取对应阳历月的节气日==============
; 输入:年份,月份
; 输出:al =第一节气日,ah =第二节气日
_sTermOff proto dwYear:dword,dwMonth:dword
;=============取对应阳历日期的节气序号==========
; 输入:年份,月份,日
; 输出:eax=节气序号,小寒=1,大寒=2…
_GetHolDay proto dwYear:dword,dwMonth:dword,dwDay:dword
;=103f============取两个阳历日期之间的天数==========
; 输入:年份1,月份1,日1,年份2,月份2,日2(第一个为被减数)
; 输出:天数
标签归档:汇编
计算农历的函数汇编原码(2)/zz/
;===============================================
HgnMs dq 31556925.9747 ;每回归年秒数
OneDay dd 86400 ;每天秒数
sTermInfo dw 0,0,51,212,505,974,1619,2465,3485,4679,5992,7405,8847,10285,\
11651,12913,14022,14958,15703,16258,16635,16856,16956,16974
_sTermOff proc dwYear:dword,dwMonth:dword
local @Temp1:dword,@Temp2
local @Rag1:word,@Rag2:word
计算农历的函数汇编原码(4)/zz/
;===========================
Hz_NumStr db ‘一二三四五六七八九’
Hz_TenStr db ‘十’
Hz_NumHStr db ‘初十廿’
_GetLunarStr proc _lpstLunarData:dword,lpBuffer:dword
assume esi:ptr LUNARDATA
pushad
计算农历的函数汇编原码(3)/zz/
;=============================
_GetLunarYearDays proc dwYear:dword
pushad
mov edx,dwYear
cmp edx,2050
ja toerr
sub dx,1900
jb toerr
汇编版Hello
DATAS SEGMENT ;数据段开始
STRING DB ‘hello Wowrld!’,’$’ ;定义一个字符串,以$为结束标志
DATAS ENDS ; 数据段结束
CODES SEGMENT ;代码段开始
ASSUME CS:CODES,DS:DATAS ;通知汇编程序,源程序中定义的组由对应的段寄存器进行段的寻址
START:
MOV AX,DATAS ;实现段址DATAS加载到DS
MOV DS,AX
LEA DX,STRING ;取STRING的偏移地址存到DX中
MOV AH,9 ;调用9号功能号输出字符串
INT 21H
MOV AH,4CH ;实现返回MS-DOS
INT 21H
CODES ENDS ;代码段结束
END START ;源程序模块结束