汇编语言课程设计-数字方阵(共16页).doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《汇编语言课程设计-数字方阵(共16页).doc》由会员分享,可在线阅读,更多相关《汇编语言课程设计-数字方阵(共16页).doc(16页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上摘 要 汇编语言编程不仅具有计算机提供给用户的最快而又最有效的语言的优势,也可以在不很了解计算机硬件的前提下使用它。在对于程序的空间和时间要求很高的场合,使用汇编语言是必不可少,甚至对于很多需要直接控制硬件的应用场合,用保护模式下的汇编语言编程也提供给了对硬件不了解的初学者一种方法。本次课程设计,是使用汇编作为开发语言完成数字方阵程序设计,即用户输入数字n,程序输出n阶方阵。本文主要分为问题描述、程序设计、代码实现、运行结果分析和课程设计总结几个部分。完整的表述了程序设计的全部过程及所涉及的基本思路和功能模块的代码实现。在代码编写中,还附加有文字说明,增加程序可读性。
2、各个部分紧密联系,相互贯通,保证最终程序设计得以完整并正确的实现。其中,问题描述阐述所要解决的问题、实现的功能;程序设计绘制程序流程图,作为程序编写的依据;代码实现主要列出本程序设计中涉及的主要模块的代码;运行结果分析为程序初步完成基础上的程序调试和功能测试,确保程序设计正确,能实现所要求的功能;通过课程设计总结对本次课程设计得失进行总结。总结遇到的问题、解决途径以及学到的知识,新掌握的编程技巧等。最后,附上源程序清单及参考文献。关键词:汇编语言,数字方阵,编程技巧,课程设计专心-专注-专业目录1 问题描述本程序设计主要要求用汇编语言实现数字方阵的创建。程序提示用户输入任一数字n,系统接收该数
3、字,并返回一个n阶数字方阵。要求将n2个自然数按螺旋纹路填入这个n阶方阵(顺时针,由外向内)。本程序设计中,系统提示输入一个3-9的数字,根据输入的数字显示方阵,如输入4,输出:12341213145111615610987 要实现该功能要求,需要显示提示字符串,接受用户输入,调用中断2,按要求显示方阵。2 程序设计2.1题目基本内容具体要求: (1)输出提示输入,接受在一定范围内的指定数字(本程序为3到9之间),否则重新输入,如果是ESC键,则推出程序(2)对接受的数字进行运算,将n2个自然数按螺旋纹路填入n阶方阵并显示该方阵。2.2系统流程框图2.2.1 主程序流程图设置BIOS中断 设置
4、文本显示方式输出显示提示接受输入n 保存al中ESC键?调用EIXT子程序退出程序介于3到9 ?Teletype 模式求得n*n 保存到si中NEXT 调用SHOW子程序,完成一次循环显示BP SI ?显示完成YNNYNY开始2.2.2 子程序工作流程SHOW循环显示子程序: CRT子程序调整AL值取得BP中的值向右输出n数每输出一个自加向下输出n-1个数每输出一个自加向左输出n-1个数每输出一个自加向右输出n-2每输出一个自加子程序返回 分别得到二位十进制个位、十位的值N十位是否为0 Y此位输出空格输出其值输出个位值子程序返回 2.3程序设计分析算法实现并不是件简单的事情。高级语言可以设置二
5、维数组实现,不必考虑其位数,输出也仅是一个元素值。而用汇编则遇到定位鼠标,才是显示,根据程序要求,想要达到程序要求,必须对鼠标位置做精确定位3。汇编一次只能输出一个字符,对于二位十进制数据时,必须作出处理分别输出5。如果对于一位二进制数不做处理,输出时的样子非常难看。处理方案是:当输出一位十进制数时,在十位位置填充空格,显示效果良好1。根据课题的要求,主要完成一下几方面的设计:1显示提示输入,提示输入 ,并保证输入大于3小于9,否则重新输入2编写子程序,用算法实现每次形如矩形的输出,直至输出完毕3在输出时,如果是两位十进制数,使用设计子程序分别输出个位,十位值,若是一位十进制数,十位填充空格,
6、输出。3 主要代码实现3.1 主模块代码 主模块主要完成的功能有:在屏幕显示提示字符串、准备接收用户输入的字符,若为Esc键,则推出程序;若为数字字符,则将其转换成数字,并判断数字是否在规定范围内,然后根据数字大小调用相应子模块,显示方阵。该模块主要使用了进栈、出栈,基本加减运算,赋值运算,比较运算以及流程跳转控制。 PUSH CS POP DS MOV AX,3 INT 10H ;BIOS中断,置文本显示模式 MOV AX,0B800H MOV ES,AX ;定位显存 MOV DX,OFFSET MSG MOV AH,9 INT 21H ;提示 T0: MOV AH,0 INT 16H ;接
7、收数据 CMP AL,1BH ;Esc键结束程序 esc(ascii=1Bh) JZ QUIT CMP AL,3 ;数据校验,保证输入3al9 JB T0 CMP AL,9 JA T0 MOV AH,0EH ;在Teletype模式下显示字符 INT 10H ;显示有效数 SUB AL,30H ;得到十进制数字 PUSH AX MUL AL ;al*al MOV SI,AX ;保存矩阵最大数到si中 POP AX CBW ;chang byte to word MOV BP,1 ;第一个元素值 MOV DI,3*80*2 NEXT: MOV CNT1,AX ;输入数据保存到cnt1 DEC A
8、X ;n-1 MOV CNT2,AX MOV CNT3,AX DEC AX ;(n-1)-1 MOV CNT4,AX ADD DI,3*2 CALL SHOW ;输出矩阵 MOV AX,CNT1 SUB AX,2 SUB DI,3*2 CMP BP,SI JBE NEXT ;bpsi,则继续执行 MOV AH,0 INT 16H ;等待 JNZ START QUIT: MOV AX,4C00H INT 21H3.2 显示方阵模块代码 显示方阵模块主要用于控制数字及其显示位置4,以达到题目要求的数字按照螺旋纹路填入n阶方阵中。该模块主要运用了赋值运算,循环控制,比较运算及流程控制。SHOW: ;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 课程设计 数字 方阵 16
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内