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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(《汇编语言》课程设计报告判断闰年程序.doc)为本站会员(精品资料)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

《汇编语言》课程设计报告判断闰年程序.doc

1、汇编语言课程设计报告题 目: 判断闰年程序 院 (系): 计算机与信息工程学院 班 级: 姓 名: 学 号: 指导教师: 1设计主要任务通过完成闰年判别程序设计掌握字符输入及、调试过程。1.1设计任务与目标软件所实现的任务与目标主要包括:(1)由键盘输入任意年份,判断输入年份是否在限制区间 2000-9999 内;(2)若程序判别输入年份为闰年,显示,不是闰年显示;(3)根据要求确定解决问题的编程方法;(4)画出程序框图、设计源程序;(5)在计算机上汇编、链接所设计的程序;(6)按照要求调试程序,记录程序运行结果;(7)写出设计总结报告。2 设计方案判断某年是否为闰年具体算法为如果该年份的数值

2、正整数若能被 400 整除,或者不能被 100 整除,却能被 4 整除,则该数值代表的年份为闰年。判断结果的显示符号可用值来实现。流程图如下:开始显示提示信息输入年份到 BUF 缓冲区CX=BUF+1,即输入年份的实际长度将年份数值转换为 ASCII 字符判断是否为闰年CF=1显示是闰年的信息结束输出范围出错判断输入范围显示非闰年信息4 子程序设计4.1 输入判断子程序该模块是对输入的年份的范围的判断,若是输入不在 2000-9999 之内,则显示错误 Error,若是输入在范围内,则进行下面的操作。4.2数字转换子程序将数字字符串转换成数字,以便进行下面的程序操作。4.3 判断闰年子程序判断

3、输入的年份是否为闰年,若是则输出,若不是则输出,然后退出。5 调试程序调试主要使用宏汇编程序 MASM.EXE、连接程序 LINK.EXE、系统操作界面当输出年份时显示结果当输入为闰年时显示笑脸并返回操作界面:6 设计总结通过这几天的汇编课程设计,基本掌握闰年判别程序设计,首先是根据题目要求确定思路,然后根据思路按照题目要求编写相应汇编程序,最后用软件调试结果是否正确。在此次课程设计中,虽然课本上也讲过年份的判别,但是比较分散,所以刚开始设计时思路不是太清,通过查阅相关资料,清楚了程序设计的基本框架,进而能编写出相应程序,设计中又一个难题是最后屏幕显示的问题,通过查阅相应 ASCII 值,使最

4、后显示出结果。一周的课程设计让我收获颇多,虽然调试中遇到不少问题,但通过调试明白程序中存在的问题并改正。通过本次实验,以后的学习奠定了良好的基础,是对自己综合能力的一种提高。7 程序清单data segment infon db 0dh,0ah, input a year: $ E db 0dh,0ah,Error! $ w dw 0 ;保存年份的数值,因年份是字符串 ,需要转换数 buf db 8 ;定义输入缓冲区db ? db 8 dup(?)data endsstack segment stackdb 200 dup(0)stack endscode segmentassume ds:d

5、ata,ss:stack,cs:codestart:mov ax,datamov ds,axlea dx,infon ;在屏幕上显示提示信息mov ah,9 ;显示字符串int 21hlea dx,buf ;从键盘输入年份字符串mov ah,0Ah ;0AH 功能调用从键盘接受字符串到内存的输入缓存区int 21hmov cl, buf+1 ;把输入的字符的个数保存在 cl 中lea di,buf+2 ;把从键盘输入字符的首地址存放到 di 中push axa0:mov al,dicmp al,0dhjz a1 cmp al,9jg a3cmp al,2jl a3inc di a00:mov

6、al,dicmp al,0dhjz a1 cmp al,9jg a3cmp al,0jl a3inc dijmp a00a1:pop axcall datacate ;调用 datacate 子程序call ifyears ;调用 ifyears 子程序jc a2 ;如果进位则跳转sub AX,AX ;输出不是闰年,显示三角形push AXmov AH,0FHint 10hmov AH,0mov AL,2int 10hmov CX,1mov DX,0MOV AH,2int 10Hmov AL,30mov AH,0AH int 10Hmov ah,9int 21hjmp exita2: sub

7、AX,AX ;输出是闰年显示笑脸push AXmov AH,0FHint 10hmov AH,0mov AL,2int 10hmov CX,1mov DX,0MOV AH,2int 10Hmov AL,2mov AH,0AH int 10Hmov ah,9int 21hcall exita3: lea dx,emov ah,9int 21hexit: mov ah,0int 16hmov ah,4ch ;返回操作系统int 21hdatacate proc near ;用于把表示年份的字符串转换为数值push cx;dec cx ;让 cx 寄存器自减 1lea si,buf+2 ;把字符串的

8、首地址保存在源地址寄存器 SI 中让 si 指向字符串的最低位p1: inc siloop p1 pop cx mov dh,30hmov bl,10mov ax,1p2: push ax sub byte ptr si,dh;ASCII 码字符,减去 30H 后转换十六进制数mul byte ptr si ;计算 ax 乘以字符数字add w,ax ;把计算结果累加,并保存在 w 中pop ax ;出栈操作,去除上一次操作后的倍数mul bl ;乘以 bl,计算当前的倍数dec si ;修改源地址寄存器 si 的值,使得 si 指向下一个字符(即高位)loop p2 ;循环直到所有字符处理完

9、毕(ret ;子程序返回指令datacate endpifyears proc near ;此子程序用来判断年份是否为闰年push bxpush cxpush dxmov ax,w ;把转换后的年份的数值存入 AXmov cx,ax mov dx,0 ;将 dx 清零mov bx,4 ;把 4 存放到寄存器 bx 中(除数)div bx ;除法指令cmp dx,0 ;将 dx 的余数与 0 进行比较,看似否整除jnz lab1 ;若不相等跳转mov ax,cx ;判断年份是否位 400 的整数倍mov bx,100 ;将 100 赋给 bx 寄存器 ,做 div 的源操作数mov dx,0div bxcmp dx,0 ;将 dx 中的余数与 0 比较,看似否整除jnz lab2mov ax,cx ;判断年份是否位 400 的整数倍mov bx,400mov dx,0div bxcmp dx,0jz lab2lab1: clc ;清除进位标志,即非闰年jmp lab3lab2: stc ;设置进位标志,即闰年lab3: pop dxpop cxpop bxret ;子程序返回指令ifyears endpcode endsend start

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报