微型计算机基本原理与接口技术课程设计论文-基于汇编语言的闰年判断程序设计内容摘要:
X) MOD 400 EQ 0)其中,( AX)中存放的是从键盘输入的年份值。 在本程序运行后,只要输入年份就能判断是否为闰年。 3 基于汇编语言的闰年判断 程序设计 第一章 设计 方案 一、 设计 内容 根据提示信息 输入任意年份,编写判断闰年的程序,如果是闰年,则在屏幕上显示“ Y”,否则显示“ N”。 二、 设计分析 利用 DOS 21H 中断类型的 10 号键盘功能调用,将键盘接受到的年份数值的字符串按字节存入缓冲区。 将字符串中的每个字符转换为对应的十进制数值(利用 09这 10个数的 ASCⅡ 码值比其本身大 30H 的关系),利用判断某年是否为闰年的表达式,输入该年是否为闰年的信息。 三、 算法分析 闰年计算是一个非常经典的问题,在学习各种语言时都会遇到这个问题,用来判断某年是否为闰年。 具体算法为如果该年份的数值正整数若能被 100 整除,又能被 400 整除,或者不能被 100 整除,却能被 4 整除,则该数值代表的年份为闰年。 四、 程序流程图 本框图列出了此次课程设计的总流程,显示信息,输入数据,判断格式,判断闰年和结束程序。 客观显示了设计的顺序结构,循环结构及分支结构。 4 图 21 程序流程图 第二章 程序设计 一、 程序分析 主程序 : 显示提示输入年份以及输入的字符内容,和最后输出的判断。 5 子程序 : 1. 判断输入:该模块是对输入的年份的格式的判断,若是错误则显示错误Error,正确则进行下面的操作。 2. 字符串转换格式:将数字字符串转换成数字,以便进行下面的程序操作。 3. 判断闰年:判断输入的年份是否为闰年,若是则输出“ This is a leap year!”,若不是则输出“ This is not a leap year!”,然后退出。 二、 汇编程序 data segment inbuff db 5,?,5 dup(?) prompt db 39。 Please input the year:39。 ,39。 $39。 errmsg db 39。 Input illegal!39。 ,39。 $39。 yes db 39。 is a leap year39。 ,39。 $39。 no db 39。 is not a leap year39。 ,39。 $39。 mess db 39。 Continue?(y/n):39。 ,39。 $39。 newline db 13,10,39。 $39。 回车换行 data ends code segment main proc far assume cs:code,ds:data start: push ds sub ax,ax push ax mov ax,data mov ds,ax lop0: call input call judge lea dx,mess mov ah,09h int 21h。 是否继续输入年份的判断 mov ah,01h int 21h cmp al,39。 n39。 je exit continue: lea dx,newline mov ah,09h int 21h jmp lop0 exit: ret 6 main endp。 输入一个具体的年份 ,并转换成 10进制。 返 回 :。 (ax)=输入的年份 input proc near push bx push cx push dx s1: lea dx,prompt mov ah,09h。微型计算机基本原理与接口技术课程设计论文-基于汇编语言的闰年判断程序设计
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。