星期判别参考源程序.doc

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
星期判别参考源程序星期判别参考源程序

闰年判断主要代码 Getrightday proc near ;此子程序用来判断年份是否为闰年 push bx ;保存寄存器状态 push cx push dx mov si,offset w mov ax,Year mov cx,ax ;把转换后的年份的数值存入cx mov dx,0 ;计算年份是否为4的整数倍 mov bx,4 div bx mov b,dx ;把此刻的余数赋给b,便于后面天数计算 cmp dx,0 jnz lab1 ;不能被4整除,不为闰年 mov ax,cx ;接着判断年份是否为100的倍数 mov bx,100 div bx mov cc,dx ;把此刻的余数赋给cc,便于后面天数计算 cmp dx,0 jnz lab2 ;不为100的倍数,则为闰年 mov ax,cx ;再判断是否为400的倍数 mov bx,400 div bx mov d,dx ;把此刻的余数赋给d,便于后面天数计算 cmp dx,0 jz lab2 ;为400的倍数,则为闰年 闰年判断流程图 蔡勒(Zeller)公式主要代码 dec year mov ax,year mov cx,ax ;year自减1再存入cx mov dx,0 mov bl,4 div bx add cx,ax ;把[Y-1]/4的商加入cx xor ax,ax xor bx,bx mov ax,year mov dx,0 mov bl,100 div bx sub cx,ax ;用cx中的值减去[Y-1]/100的商 xor ax,ax xor bx,bx xor dx,dx mov ax,year mov bx,400 div bx add cx,ax ;把[Y-1]/400的商加入cx xor ax,ax mov dx,0 mov bx,0 inc month mov al,month mov bl,13 mul bl ;月加1后乘以13 xor bx,bx mov bl,5 div bx add cx,ax ;把上面得到的月除以5取整加入cx 蔡勒(Zeller)公式运用流程图 说明: 是只把前面得出的结果赋值给后者 a的值和星期的对应关系 a的值 0 1 2 3 4 5 6 星期 星期日 星期一 星期二 星期三 星期四 星期五 星期六 五、程序源代码 stack SEGMENT stack DB 200 DUP(0) stack ENDS data segment Year dw 0 Month db 0 Day db 0 temp db 10 dup(0) count dw ? ErrMsg db 0dh,0ah,Input wrong!please input again!, $ str1 db 0dh,0ah,please input year month day:0dh,0ah,$ str2 db 0dh,0ah,Whether or not to continue inquiries Yes/No,0dh,0ah,$ weekstr0 db Today is Sunday,$ weekstr1 db Today is Monday,$ weekstr2 db Today is Tuesday,$ weekstr3 db Today is Wednesday,$ weekstr4 db Today is Thursday,$ weekstr5 db Today is Friday,$ weekstr6 db Today is Saturday,$ a dw ? b???????? dw ? cc dw ? d dw ? w db ? data ends ;定义了变量和信息 code segment assume cs:code,ds:data,ss:stack start: mov ax,data mov ds,ax lea dx,str1 ;提醒你输入年月日 mov ah,9h int 21h ;显示字符串 call GetYearMonthDay ;调用子程序输入正确的年月日 call display ;调用子程序通过计算得出星期 sel: lea dx,str2 ;提醒你选择退出程序还是继续 mov ah,9h int 21h mov ah,1 ;输入你的选择(键盘输入并回显) int 21h cmp al,Y je start cmp al,y ;输入y或Y继续程序 je start cmp al,N je exit cmp al,n ;输入n或N退出程序 je exit jmp sel exit: mov ah,4ch int 21h ;退出 ;******************************************

文档评论(0)

enxyuio + 关注
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档