微机原理数字方阵课程设计Word文档格式.docx
- 文档编号:21790246
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:14
- 大小:62KB
微机原理数字方阵课程设计Word文档格式.docx
《微机原理数字方阵课程设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《微机原理数字方阵课程设计Word文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
将微型计算机的关键技术如存储管理、中断、DMA、系统总线、与外设的接口等作为的重点。
微型计算机是现代社会不可缺少的智力辅导工具,面向21世纪的学子,只有学好《微机原理与接口技术》这门课,掌握汇编语言编辑,调试技术及接口芯片的编程与使用,才能为以后应用微机解决工程实践中的各种技术问题(参数测试,数据采集处理,工程控制,生产自动化,设备改造与研制)打下良好基础。
而作为自动化专业的学生这门课更是必须掌握的,是我们学习更深层次的专业知识的基础。
比如我们以后将要接触很多的单片机,对单片机进行编程,用到的语言就是汇编语言。
二、课程设计的要求
独立的设计出汇编程序,写出设计基本思想,设计方案及程序流程图,分析过程,调试记录与分析(屏幕截图),程序源代码与运行结果(源代码附详细注释,屏幕截图或打印)
三、主要仪器设备及软件
PC机、MASM汇编软件。
四、课程设计题目及要求
显示一个数字的方阵,提示输入一个3-5的数字,根据输入的数字显示方阵,如输入4,输出
1234
1213145
1116156
10987
当输入q时,退出运行界面。
实现n值为3,4,5各阶方阵运算,将3,4,5各阶方阵的元素,按指定的次序分别存放到缓冲区buf1,buf2,buf3中,缓冲区dbuf存储从以上各缓冲区中截取的字符串和循环变量n,程序通过dos终端21H的01号功能调用接收从键盘上输入3,4,5的ASCII码,将其转换为十进制数,送给循环变量n来控制行的循环,同时设置各方阵每行输出的元素个数,送给CX寄存器,最后通过光标来定行输出的位置。
这种方案难度虽然有所降低,但仍然不太好做。
操作说明:
运行程序后,屏幕上会出现一个提示:
“pleaseinputanumber(3-5)”
当从键盘上输入3-5中的一个数时就会出现其对应的螺旋方阵
五、课题分析及设计思路
1.主程序流程图
开始
段寄存器初始,调用清屏子程序
显示提示语
退出
从键盘输入字符,并判断是否是q?
Y
N
调用子程序S
Y
判断输入字符是否为3?
并设置为3时输出格式
NN
判断输入字符是否为4?
并设置为4时输出格式
N
判断输入字符是否为5?
并设置为5时输出格式
NN
显示关于输入错误的提示语
2、子程序S流程图
从主程序得到输出的数据和格式(输出的行数N和列数B)
设置输出数据的首地址指针SI和数据缓冲区首地址DI
将要输出的数据付到数据缓冲区执行SI+1和DI+1
执行列数N-1
判断N是否为0
在字符结尾加字符结束符$,
设置输出光标的位置并用9号功能输出,行数加1
循环次数-1=0?
六、程序主要代码与分析
源程序及分析如下:
DATASEGMENT
BUF1DB'
123894765'
;
n=3时输出的数据
BUF2DB'
12341213145111615610987'
n=4时输出的数据
BUF3DB'
12345161718196152425207142322218131211109'
;
n=5时输出的数据
DBUFDB14DUP(?
);
用于存放每行输出的数据
I1DB0DH,0AH,'
Thisisafangzhenprogramme!
'
提示语
DB0DH,0AH,'
Inputqtoexit'
pleaseinputanumber(3--5):
'
$'
I2DB0DH,0AH,'
Inputerror,pleasereinput!
NDB?
用于控制输出列数(包括空格)
BDB1;
用于控制输出地方(即屏幕中的哪一行)
DATAENDS
STACKSEGMENTPARASTACK'
STACK'
设置堆栈段
DB100DUP(?
)
STACKENDS
CODESEGMENT;
代码段
ASSUMEDS:
DATA,CS:
CODE,SS:
STACK;
assume是设定段寄存器和段之间的关系,
在程序中必须明确段和段寄存器的关系
MAIN:
MOVAX,DATA
MOVDS,AX
CALLCLEAR;
调用子程序clear(清屏)
LOP:
MOVB,1;
将提示语从第一行输出
LEADX,I1;
目标地址传送指令将I1首地址付给DX
MOVAH,9;
调用9号功能,输出DX中的字符串
INT21H
MOVAH,1;
键盘输入并回显
CMPAL,'
q'
输入字符如果是q,则退出
JZQUIT
LEASI,BUF1;
设置缓冲区指针
MOVN,7;
设置每行输出的字符数(包括空格)
MOVCL,3;
设置循环次数
清屏
3'
输入的字符如果是3则跳转到S
JZS
LEASI,BUF2;
MOVN,10;
设置每行输出的字符数(包括空格)
MOVCL,4;
设置循环次数
4'
输入的字符如果是4则跳转到S
LEASI,BUF3;
MOVCL,5;
MOVN,13;
5'
输入的字符如果是5则跳转到S
MOVAH,2;
调用2号功能,设置光标的位置
MOVDH,1
MOVDL,0
INT10H
LEADX,I2;
设置提示语字符的首地址指针
调用9号功能,将提示语从所设的光标位置输出
JMPLOP
S:
MOVBL,N
LEADI,DBUF;
设置存放输出数据的缓冲区的地址指针
L:
MOVAL,[SI];
以下六句的功能为:
将所要输
MOV[DI],AL;
出数据缓冲区数据的前N个字
INCSI;
符存到缓冲区DBUF
INCDI
DECBL
JNEL
MOV[DI],BYTEPTR'
在数据缓冲区DBUF末尾加$
调用2号功能设置输出位置
MOVDH,B;
光标的位置
INT10H
LEADX,DBUF;
调用9号功能将缓冲
的数据输出
INCB
LOOPS
QUIT:
MOVAH,4CH;
退出程序
CLEARPROCNEAR;
子程序CLEAR的功能为清屏。
PUSHAX;
将AX、BX、CX、DX入栈,保存
PUSHBX;
里面的数据,
PUSHCX
PUSHDX
MOVAH,6;
调用6号功能,以空格充满屏幕
MOVAL,0;
达到清屏
MOVCH,0
MOVCL,0
MOVDH,24;
列号
MOVDL,79;
行号
MOVBH,7
2号系统功能调用-显示输出
MOVDH,0;
MOVDL,0;
POPDX;
将DX、CX、BX、AX出栈
POPCX
POPBX
POPAX
RET
CLEARENDP
CODEENDS
ENDMAIN
七、实验结果截图
运行界面
输入字符不是3、4、5时的界面:
输入3时的结果:
输入4时的运行结果:
输入5时的运行结果:
八、心得体会
课程设计是将课本上所学的理论知识运用与解决实际的问题,对松散的理论知识的一个集合式运用,也是综合知识,综合运用能力的一个过程。
对知识的掌握和灵活运用是一个很好的考察。
由于汇编是大二时所学,那么长时间没有运用,忘了好大一部分。
当要做课程设计时,又把整本书又复习了一遍,而且我们那本课本是入门级教材。
对诸如DOS和BIOS中断的介绍也只是一个简单的叙述,当真正要使用某一功能时,我们的课本就捉襟见肘了。
因此在课程设计的过程中,图书馆和丰富的网络资源得到了充分的应用。
本次课程设计,一方面让我们再次熟悉汇编指令,再次对算法的设计有一定的理解和掌握。
另一方面让我们对较大汇编程序的编写有一个清晰的过程,学习把一个较大问题分解成若干个小问题,即子程序编写。
养成一个良好的编程习惯。
通过本次课程设计让大家掌握常用的基本汇编指令,提高了将学习的理论知识应用于解决实际问题的能力。
通过一周的课程设计使我对汇编语言有了更深的理解,对以前学习中不明白的,不理解的都有了进一步的理解。
在实际操作中遇到了很多困难,但通过找资料,请教同学和老师,使我的动手能力和沟通能力都有了提高。
在整个课程设计中总是在编写程序中发生错误,有时会很没耐性,但都被我一一克服了。
通过本次课程设计,我更加理解了书本上的理论知识,也进一步培养了将理论运用于实践,以解决实际问题的能力。
这样的经验也告诉我,学习更重要的是动手能力,只要通过动手实践才能更好的掌握所学知识,才能学以致用,更好发挥知识的优越性,体现学习的价值。
在做完这个课程设计时,心里有种说不出来的高兴,自己动手完成的设计有一种成就感,增强了自己的自信心,我相信在今后的学习中,我会保持这种良好的心情投入到各科的学习中,不断提升自己的学习能力。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 数字 方阵 课程设计