微机原理数字方阵课程设计.docx

上传人:b****6 文档编号:8654044 上传时间:2023-02-01 格式:DOCX 页数:14 大小:62KB
下载 相关 举报
微机原理数字方阵课程设计.docx_第1页
第1页 / 共14页
微机原理数字方阵课程设计.docx_第2页
第2页 / 共14页
微机原理数字方阵课程设计.docx_第3页
第3页 / 共14页
微机原理数字方阵课程设计.docx_第4页
第4页 / 共14页
微机原理数字方阵课程设计.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

微机原理数字方阵课程设计.docx

《微机原理数字方阵课程设计.docx》由会员分享,可在线阅读,更多相关《微机原理数字方阵课程设计.docx(14页珍藏版)》请在冰豆网上搜索。

微机原理数字方阵课程设计.docx

微机原理数字方阵课程设计

信息工程学院

 

课程设计报告

 

设计题目:

数字方阵

名称:

微机原理与接口课程设计

班级:

通信1101班

姓名:

学号:

设计时间:

2013.12.8至2013.12.21

指导教师:

徐明鹃王本有

 

评语:

评阅成绩:

评阅教师:

一、课程设计的性质和目的

《微机原理与接口技术》这门课以Intel微处理器为背景,围绕“基础”、“主线”和“关键技术”展开。

使我们掌握微型计算机的基本概念,介绍CPU、汇编程序设计及32位汇编程序设计简介、存储器、I/O接口;结合微处理器的发展历程,使我们了解微型计算机在不断克服瓶颈效应,提高性能和速度方面,采用的技术和方法,如Cache、虚拟存储、超标量流水线,将微型计算机的技术发展作为贯穿教材的主线;将微型计算机的关键技术如存储管理、中断、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

调用子程序S

Y

判断输入字符是否为4?

并设置为4时输出格式

N

调用子程序S

Y

判断输入字符是否为5?

并设置为5时输出格式

NN

显示关于输入错误的提示语

2、子程序S流程图

开始

从主程序得到输出的数据和格式(输出的行数N和列数B)

设置输出数据的首地址指针SI和数据缓冲区首地址DI

将要输出的数据付到数据缓冲区执行SI+1和DI+1

执行列数N-1

N

判断N是否为0

在字符结尾加字符结束符$,

Y

设置输出光标的位置并用9号功能输出,行数加1

N

循环次数-1=0?

Y

 

六、程序主要代码与分析

源程序及分析如下:

DATASEGMENT

BUF1DB'123894765';n=3时输出的数据

BUF2DB'12341213145111615610987';n=4时输出的数据

BUF3DB'12345161718196152425207142322218131211109';n=5时输出的数据

DBUFDB14DUP(?

);用于存放每行输出的数据

I1DB0DH,0AH,'Thisisafangzhenprogramme!

';提示语

DB0DH,0AH,'Inputqtoexit'

DB0DH,0AH,'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;键盘输入并回显

INT21H

CMPAL,'q';输入字符如果是q,则退出

JZQUIT

LEASI,BUF1;设置缓冲区指针

MOVN,7;设置每行输出的字符数(包括空格)

MOVCL,3;设置循环次数

CALLCLEAR;清屏

CMPAL,'3';输入的字符如果是3则跳转到S

JZS

LEASI,BUF2;设置缓冲区指针

MOVN,10;设置每行输出的字符数(包括空格)

MOVCL,4;设置循环次数

CMPAL,'4';输入的字符如果是4则跳转到S

JZS

LEASI,BUF3;设置缓冲区指针

MOVCL,5;设置循环次数

MOVN,13;设置每行输出的字符数(包括空格)

CMPAL,'5';输入的字符如果是5则跳转到S

JZS

MOVAH,2;调用2号功能,设置光标的位置

MOVDH,1

MOVDL,0

INT10H

LEADX,I2;设置提示语字符的首地址指针

MOVAH,9;调用9号功能,将提示语从所设的光标位置输出

INT21H

JMPLOP

S:

MOVBL,N

LEADI,DBUF;设置存放输出数据的缓冲区的地址指针

L:

MOVAL,[SI];以下六句的功能为:

将所要输

MOV[DI],AL;出数据缓冲区数据的前N个字

INCSI;符存到缓冲区DBUF

INCDI

DECBL

JNEL

MOV[DI],BYTEPTR'$';在数据缓冲区DBUF末尾加$

MOVAH,2;调用2号功能设置输出位置

MOVDH,B;光标的位置

MOVDL,0

INT10H

LEADX,DBUF;调用9号功能将缓冲

MOVAH,9;的数据输出

INT21H

INCB

LOOPS

JMPLOP

QUIT:

MOVAH,4CH;退出程序

INT21H

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

INT10H

MOVAH,2;2号系统功能调用-显示输出

MOVDH,0;列号

MOVDL,0;行号

INT21H

POPDX;将DX、CX、BX、AX出栈

POPCX

POPBX

POPAX

RET

CLEARENDP

CODEENDS

ENDMAIN

 

七、实验结果截图

运行界面

输入字符不是3、4、5时的界面:

输入3时的结果:

输入4时的运行结果:

输入5时的运行结果:

 

八、心得体会

课程设计是将课本上所学的理论知识运用与解决实际的问题,对松散的理论知识的一个集合式运用,也是综合知识,综合运用能力的一个过程。

对知识的掌握和灵活运用是一个很好的考察。

由于汇编是大二时所学,那么长时间没有运用,忘了好大一部分。

当要做课程设计时,又把整本书又复习了一遍,而且我们那本课本是入门级教材。

对诸如DOS和BIOS中断的介绍也只是一个简单的叙述,当真正要使用某一功能时,我们的课本就捉襟见肘了。

因此在课程设计的过程中,图书馆和丰富的网络资源得到了充分的应用。

本次课程设计,一方面让我们再次熟悉汇编指令,再次对算法的设计有一定的理解和掌握。

另一方面让我们对较大汇编程序的编写有一个清晰的过程,学习把一个较大问题分解成若干个小问题,即子程序编写。

养成一个良好的编程习惯。

通过本次课程设计让大家掌握常用的基本汇编指令,提高了将学习的理论知识应用于解决实际问题的能力。

通过一周的课程设计使我对汇编语言有了更深的理解,对以前学习中不明白的,不理解的都有了进一步的理解。

在实际操作中遇到了很多困难,但通过找资料,请教同学和老师,使我的动手能力和沟通能力都有了提高。

在整个课程设计中总是在编写程序中发生错误,有时会很没耐性,但都被我一一克服了。

通过本次课程设计,我更加理解了书本上的理论知识,也进一步培养了将理论运用于实践,以解决实际问题的能力。

这样的经验也告诉我,学习更重要的是动手能力,只要通过动手实践才能更好的掌握所学知识,才能学以致用,更好发挥知识的优越性,体现学习的价值。

在做完这个课程设计时,心里有种说不出来的高兴,自己动手完成的设计有一种成就感,增强了自己的自信心,我相信在今后的学习中,我会保持这种良好的心情投入到各科的学习中,不断提升自己的学习能力。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 商业计划

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

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