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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

《汇编语言》课程设计报告判断闰年程序Word文件下载.docx

1、(5)在计算机上汇编、链接所设计的程序;(6)按照要求调试程序,记录程序运行结果;(7)写出设计总结报告。2 设计方案判断某年是否为闰年具体算法为如果该年份的数值正整数若能被400整除,或者不能被100整除,却能被4整除,则该数值代表的年份为闰年。判断结果的显示符号可用值来实现。流程图如下:4 子程序设计4.1 输入判断子程序该模块是对输入的年份的范围的判断,若是输入不在2000-9999之内,则显示错误Error,若是输入在范围内,则进行下面的操作。4.2数字转换子程序将数字字符串转换成数字,以便进行下面的程序操作。4.3 判断闰年子程序判断输入的年份是否为闰年,若是则输出,若不是则输出,然

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

3、不少问题,但通过调试明白程序中存在的问题并改正。通过本次实验,以后的学习奠定了良好的基础,是对自己综合能力的一种提高。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 stack db 200 dup(0)stack endscode segment assume ds:data,ss:stack,cs:code start:mo

4、v ax,data mov ds,ax lea dx,infon ;在屏幕上显示提示信息 mov ah,9 ;显示字符串 int 21h lea dx,buf ;从键盘输入年份字符串 mov ah,0Ah ;0AH功能调用从键盘接受字符串到内存的输入缓存区 mov cl, buf+1 ;把输入的字符的个数保存在cl中 lea di,buf+2 ;把从键盘输入字符的首地址存放到di中 push ax a0: mov al,di cmp al,0dh jz a1 cmp al,9 jg a32 jl a3 inc di a00:0 inc di jmp a00 a1: pop ax call da

5、tacate ;调用datacate子程序 call ifyears ;调用ifyears子程序 jc a2 ;如果进位则跳转 sub AX,AX ;输出不是闰年,显示三角形 push AX mov AH,0FH int 10h mov AH,0 mov AL,2 mov CX,1 mov DX,0 MOV AH,2 int 10H mov AL,30 mov AH,0AH mov ah,9 jmp exit a2: sub AX,AX ;输出是闰年显示笑脸 call exita3: lea dx,e exit: mov ah,0 int 16h mov ah,4ch ;返回操作系统datac

6、ate proc near ;用于把表示年份的字符串转换为数值 push cx; dec cx ;让cx寄存器自减1 lea si,buf+2 ;把字符串的首地址保存在源地址寄存器SI中让si指向字符串的最低位 p1: inc si loop p1 pop cx mov dh,30h mov bl,10 mov ax,1 p2: push ax sub byte ptr si,dh;ASCII码字符,减去30H后转换十六进制数 mul byte ptr si ;计算ax乘以字符数字 add w,ax ;把计算结果累加,并保存在w中 pop ax ;出栈操作,去除上一次操作后的倍数 mul bl

7、 ;乘以bl,计算当前的倍数 dec si ;修改源地址寄存器si的值,使得si指向下一个字符(即高位) loop p2 ;循环直到所有字符处理完毕( ret ;子程序返回指令datacate endpifyears proc near ;此子程序用来判断年份是否为闰年 push bx push cx push dx mov ax,w ;把转换后的年份的数值存入AX mov 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,0 div bx cmp dx,0 ;将dx中的余数与0比较,看似否整除 jnz lab2 mov ax,cx ; mov bx,400 cmp dx,0 jz lab2 lab1: clc ;清除进位标志,即非闰年 jmp lab3 lab2: stc ;设置进位标志,即闰年 lab3: pop dx pop cx pop bx ret ; ifyears endpcode ends end start

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

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