ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:41.52KB ,
资源ID:13778449      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/13778449.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(汇编课程设计星期判断Word格式文档下载.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

汇编课程设计星期判断Word格式文档下载.docx

1、四、程序源代码stacks SEGMENT stackDB 200 DUP(0)stacks ENDSdata segmentYear dw 0Month db 0Day db 0temp 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/Noweekstr0 db Today

2、is Sundayweekstr1 db Today is Mondayweekstr2 db Today is Tuesdayweekstr3 db Today is Wednesdayweekstr4 db Today is Thursdayweekstr5 db Today is Fridayweekstr6 db Today is Saturdaya dw ?b dw ?cc dw ?d dw ?w db ?data ends ;定义了变量和信息code segmentassume cs:code,ds:data,ss:stacksstart:mov ax,datamov ds,axl

3、ea dx,str1 ;提醒你输入年月日mov ah,9h ;显示字符串int 21h call GetYearMonthDay ;调用子程序输入正确的年月日call display ;调用子程序通过计算得出星期sel: lea dx,str2 ;提醒你选择退出程序还是继续mov ah,9hint 21hmov ah,1 ;输入你的选择(键盘输入并回显)cmp al,Yje starty ;输入y或Y继续程序Nje exitn输入n或N退出程序jmp selexit:mov ah,4chint 21h ;退出;主程序GetYearMonthDay proc near ;子程序输入正确的年月日p

4、ush axpush cxpush sipush di ;压栈inputagain:mov Year,0mov Month,0mov Day,0mov si,0 ;把年月日重新归零repeatY:输入年cmp al,0dh ;换行je EndY ;回车结束年的输入cmp al,20h ;判断是否是是空格键SP空格结束年的输入cmp al,1bh ;判断是否是退出ESCje ExitDos0 ;退出键则退出程序cmp al,30h ;和0比较jb Err ;小于0转到错误提示cmp al,39h ;和9比较ja Err ;大于9转到错误提示sub al,30h ;把读入的数据转化为二进制保存到t

5、empsi中mov tempsi,alinc si ;si加1jmp repeatYErr: ;出错调用lea dx,ErrMsg ;提示错误mov ah,2 ;显示输出mov dl,0dhmov dl,0ah回车jmp inputagain ;跳回到inputagain重新输入年月日EndY:mov bx,10 ;把10存入bxmov di,si ;把si的值传给di再把si清零NextYBit:mov ah,0mov al,tempsi ;再把存在tempsi中的数据存入almov count,di ;把di中的转到countsub count,si ; count=count-sidec

6、 count ; count-1mov cx,count ;把自减后的count存入cxjcxz skipY ;cx为0转移lopmul:mul bx ; *10,主要实现把年按千位,百位,十位,各位存放loop lopmul ;cx-1循环skipY:add Year,ax ;把ax中存入的年的值赋给year si自加1cmp si,di ; 比较si和dijne NextYBit ; 不相等转移主要实现把年按千位,百位,十位,各位存放push dxmov ah,2mov dl,0dh ;mov dl,0ah ;pop dxjmp skiplap ; 跳到月的输入ExitDos0:jmp E

7、xitDos ;skiplap:si清零repeatM:输入月数cmp al,0dhje EndMon ;cmp al,20h空格结束输入cmp al,1bhje ExitDos1 ;ESC退出程序cmp al,30hjb Err1 ;小于0报错cmp al,39hja Err1 ;大于9报错转为二进制存贮mov tempsi,al ;jmp repeat ;重新输入下一个字符Err1: jmp ErrExitDos1: jmp ExitDosEndMon:mov bl,10 ;把10存入blNextMBit:mov al,tempsimov count,disub count,sidec c

8、ountmov cx,countjcxz skipMlpmul:mul blloop lpmulskipM:add Month,alinc sicmp si,dijne NextMBitcmp Month,12 ;大于12报错把月按十位,各位存贮jmp skiplap1skiplap1:mov si,0repeatD:mov ah,1je EndDay ;je ExitDos ;jb Err2 ;ja Err2jmp repeatD ;Err2 : jmp Err1EndDay:NextDBit:jcxz skipDlpmul1:loop lpmul1skipD:add Day,aljne N

9、extDBitcall Getrightday ;调用子程序确定每个月的最大天数mov al,si ;把寄存器si中的值存入alcmp Day,al ;用输入的day和al 比较ja Err2 ;若day大于al则报错把日按十位,各位存贮pop dipop sipop cxpop axretExitDos:GetYearMonthDay endp*闰年*Getrightday proc near ;此子程序用来判断年份是否为闰年push bx ;保存寄存器状态mov si,offset wmov ax,Yearmov cx,ax ;把转换后的年份的数值存入cxmov dx,0 ;计算年份是否为4的整数倍mov bx,4div bxmov b,dx ;把此刻的余数赋给b,便于后面天数计算cmp dx,0jnz lab1 ;不能被4整除,不为闰年mov ax,cx ;接着判断年份是否为100的倍数mov bx,100mov cc,dx ;把此刻的余数赋给cc,便于后面天数计算jnz lab2 ;不为100的倍数,则为闰年再判断是否为400的倍数mov bx,400mov

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1