微机原理课程设计——汇编输出杨辉三角.docx
《微机原理课程设计——汇编输出杨辉三角.docx》由会员分享,可在线阅读,更多相关《微机原理课程设计——汇编输出杨辉三角.docx(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、微机原理课程设计汇编输出杨辉三角 目录 第一章绪论 (1) 第二章分析与设计 (2) 2.1 题目 (2) 2.2 要求 (2) 2.3 方案设计与论证 (3) 2.3.1 整体设计思路 (3) 2.3.2 方案选择 (3) 2.4 结构框图 (4) 3.1 宏定义换行 (5) 3.2 阶数输入过程 (5) 3.3 数据判断功能 (6) 3.4 询问继续模块 (7) 3.5 数值计算模块 (7) 3.6 显示模块 (9) 3.6.1 数据显示 (9) 3.6.2 空格显示 (10) 第四章实验结果及问题处理 (12) 4.1 实验结果 (12) 4.2出现的问题以及解决的方案 (13) 4.2
2、.1 数据输入问题 (13) 4.2.2 除法溢出问题 (13) 4.2.3 数据计算问题 (14) 第五章总结与体会 (15) 参考文献 (17) 附录 (18) 第一章绪论 随着电子计算机技术的不断发展,微型计算机系统的功能越来越强,而关于计算机的程序设计语言也经历了一个发展的过程。从最基本的机器语言到汇编语言,并发展到高级的智能化语言,如visual C+、Visual Basic等。 汇编语言(Assembly Language)是一种采用助记符表示的程序设计语言,即用助记符来表示指令的操作码和操作数,用符号或标号代表地址、常量或变量。助记符一般都是英文单词的缩写,便于识别和记忆。使用
3、汇编语言编写的程序称为汇编语言源程序。汇编语言源程序不能由机器直接执行,而必须翻译成有机器代码组成的目标程序,这个翻译的过程称为汇编。把汇编语言源程序翻译成目标程序的软件称为汇编程序。 汇编语言与机器语言密切相关,它们之间有明显的对应关系。一条汇编语言指令对应一条机器语言代码,所以汇编语言和机器语言一样都是面向机器的语言。使用汇编语言进行程序设计能充分利用机器的硬件功能和结构特点,从而有效地加快程序的执行速度,减少程序占用的存储空间。所以汇编语言大量用于编写计算机系统程序、实时通信程序和实时控制程序等。 汇编语言作为最基本的编程语言之一,汇编语言虽然应用的范围不算很广,但重要性却勿庸置疑,因为
4、它能够完成许多其它语言所无法完成的功能。就拿Linux内核来讲,虽然绝大部分代码是用C语言编写的,但仍然不可避免地在某些关键地方使用了汇编代码,其中主要是在Linux的启动部分。由于这部分代码与硬件的关系非常密切,即使是C语言也会有些力不从心,而汇编语言则能够很好扬长避短,最大限度地发挥硬件的性能。 第二章分析与设计 2.1 题目 汇编显示杨辉三角 2.2 要求 基本内容:在提示信息下,从计算机键盘输入一个满足要求的数据,在输出提示信息后显示相应的杨辉三角。 具体要求如下: (1)要有提示信息的输出显示,例如程序执行时直接显示输出提示信息“Please input a number:”然后等待
5、用户从计算机键盘输入具体数值,例如输入“4”,然后换行显示下一步提示信息,例如“The YangHui triangle:”最后显示通过程序获得的杨辉三角如下: (2)分析杨辉三角具体算法,计算结果要求正确。输出的杨辉三角要求上下左右对称显示,上下分别为两个等腰三角形的形式,即要求分析总结每行行首空格数量,及三角中各个数之间空格的安排方法; (3)要求最少要能够输出10阶的杨辉三角; (4)提高要求:增大阶数(最少到20阶),可任意选择正反三角显示。 2.3 方案设计与论证 2.3.1 整体设计思路 本课题要求用汇编显示杨辉三角形,首先得了解什么是杨辉三角形。杨辉三角形,又称贾宪三角形,帕斯卡
6、三角形,是二项式系数在三角形中的一种几何排列。其每一行的数据都有其特定的规律,杨辉三角形又有其独特的性质:1、每行数字左右对称,由1开始逐渐变大,然后变小,最后回到1。2、第n行的数字个数为n个。3、第n行数字和为2(n 1)。4、每个数字等于上一行的左右两个数字之和,故可用此性质写出整个帕斯卡三角形。 5、第n行的第1个数为1,第二个数为1(n-1),第三个数为1(n-1)(n-2)/2,第四个数为1(n-1)(n-2)/2(n-3)/3依此类推。 在熟悉了杨辉三角形的产生原理,杨辉三角形内各数据的计算方法之后,再在掌握了相关汇编知识以及一定编程能力的基础上,我们对课题进行了相关分析,总体来
7、说,这个课题的关键点分为以下部分,厘清这些关键点也是作为明确整体设计思路的重要过程: (1)、提示信息的显示。题目明确要求显示中要有提示信息,实际上,根据需要,在本课题中我们又加了一些功能,当然也必须要增加额外的提示信息。 (2)、阶数的输入功能。通过DOS系统功能调用,确定需要显示杨辉三角形的行数与大小,能够实现简单的人机交互。 (3)、编程得到需要在杨辉三角中显示的数。基于以下思想:第n行的第1个数为1,第二个数为1(n-1),第三个数为1(n-1)(n-2)/2,第四个数为1(n-1)(n-2)/2(n-3)/3依此类推。 (4)、某数的显示及换行。为了显示的规范和美观,必须考虑到数与数
8、之间的空格数,当然,某数的显示是能够完整输出杨辉三角形的基础和前提。 (5)、新增功能,判断输入数据是否满足条件,判断是否继续执行。考虑到本程序的使用范围及使用者能连续使用显示杨辉三角形的方便性,特增加了数据判断和询问继续功能,使用者想要继续执行即输入“Y”,程序自动从头开始执行,若输入“N”,则退出。 2.3.2 方案选择 1. 对于阶数输入功能,我们想到两种方案。 方案(1):参考相关文献上得知,可以通过DOS系统功能调用:键盘输入单字符1 号系统功能调用,同时实现字符的输入与显示。 调用格式:MOV AH,1 INT 21H 说明:1号功能调用无入口参数,执行时系统首先等待键盘输入,待程
9、序员按下任何一键,系统先检查是否是Ctrl-Break键。如果是则退出,否则将键入的字符的ASCII码置入AL 寄存器,并在屏幕上显示该字符。 方案(2):同样是DOS系统功能调用,键盘输入字符串0AH号系统功能调用。 说明:其功能是将键盘输入的字符串写入到内存缓冲区,因此调用之前必须事先定义一个缓冲区。缓冲区的第一个字节给出用来存放键入的字符数,第二个留给系统填写实际键入的字符个数,从第三字节开始用来存放键入的字符串,最后键入回车( )键表示字符结束。 对于方案(1),格式简单,使用方便,易于理解,但是对于输入多位数,相对有点复杂。对于方案(2),从实际编程水平出发,不太能够娴熟的使用该系统
10、功能,调用格式复杂,而且鉴于该程序输入的位数不超过两位,所以我们最后选择了方案(1)。 2.4 结构框图 在编写程序之前,明确其整个思路的流程图是相当重要的,所以我们花了一些时间来画出流程图,根据流程图来写实际程序。如图2.4.1为本程序的总体汇编思路图。 图2.4.1 程序总体流程图 第三章实验程序及分析 3.1 宏定义换行 为了简化汇编语言源程序,可以把一些频繁出现的程序段定义为“宏指令”,当遇到这段程序时,只要按宏指令名调用即可,不必重复写许多指令,汇编程序在遇到宏指令时将其期待成相应的代码,这样就有效地缩短汇编语言源程序的长度,使源程序易读,也减少了由于重复书写而引起的错误。在本课题中
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 课程设计 汇编 输出 三角
限制150内