微机设计报告.doc

上传人:仙人指路1688 文档编号:2882065 上传时间:2023-03-01 格式:DOC 页数:9 大小:550KB
返回 下载 相关 举报
微机设计报告.doc_第1页
第1页 / 共9页
微机设计报告.doc_第2页
第2页 / 共9页
微机设计报告.doc_第3页
第3页 / 共9页
微机设计报告.doc_第4页
第4页 / 共9页
微机设计报告.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《微机设计报告.doc》由会员分享,可在线阅读,更多相关《微机设计报告.doc(9页珍藏版)》请在三一办公上搜索。

1、微型计算机原理课程设计报告学院:电气信息工程学院 班级: 自动化1001 姓名:学号: 3100504046 日期:2013/01/072013/01/10一、 目的:结合微型计算机原理课程的学习,进一步巩固已经学习的知识,同时针对微型计算机原理知识的具体应用,学习对系统DOS和BIOS的使用。学会使用全屏编辑程序-PE,弄懂汇编程序的上机过程以及如何使用DEBUG软件进行汇编程序的调试。二、 内容:1、 字符串匹配设计为掌握提示信息的设置的方法及读取键入信息的方法。编写程序实现两个字符串的比较。如果相同,则显示“MATCH”,否则,显示“NO MATCH”。运行结果显示:2、 从键盘输入数据

2、并显示的设计为掌握从键盘接收数据的方法,并了解将键盘数据显示时转换为ASCII码的原理。编写程序,将键盘接收到四位十六进制数据转换为等值二进制数,在显示在终端上。运行结果显示:3、 字符和数据的显示设计为掌握字符和数据的显示方法。编写程序,先显示信息:INPUT STRING,THE END IS $,再接收字符。如为09,则计数器加1,并显示数据;如为非数字,则直接显示,但不计数。运行结果显示: 4、 响铃设计为掌握响铃的使用方法。编写程序,从键盘接收输入的字符,如是数字N,则响铃N次;如不是数字,则不响。运行结果显示:5、 接受年、月、日信息并显示的设计为掌握响铃的使用方法,并掌握年、月、

3、日输入方法。编写程序,先显示“WHAT IN THE DATA(MM/DD/YY)?”并响铃一次,然后接收键盘输入的月/日/年信息,并显示。运行结果显示:6、 将键盘输入的小写字母转换成大写字母的设计为了解小写字母和大写字母在计算机内的表示方法,并学习如何进行转换。编写程序,接受键盘字符,并将其中的小写字母转变成大写字母,然后显示在屏幕上。运行结果显示:7、 排序设计:为掌握用汇编语言编写排序程序的思路与方法。编写程序,从首地址1000H开始存放50个数,要求设计程序将这些数由小到大排序,排序后的数,仍存放在该区域中。运行结果显示:三、 实例(程序代码):为掌握从键盘接收数据的方法,并了解将键

4、盘数据显示时转换为ASCII码的原理。编写程序,将键盘接收到四位十六进制数据转换为等值二进制数,在显示在终端上。1、流程图 2、 编写程序如下data segment /;数据段定义s1 db please input four datas:,0dh,oah, $ /;输出提示信息buff db 5 /;从键盘输入字符串,第1个字节为容纳最大字 db ? /;符数目,第2个字节为实际收入字符数,从第 db 5 dup(?) /;三个字节开始存放从键盘输入的字符。s2 db 0ah,$ /;输出换行字符data ends /;数据段结束code segment /;代码段定义 assume cs

5、:code,ds:data /;段分配start: mov ax,data /;把数据段的段基址赋给DS mov ds,ax mov dx,offset s1 /;使用字符串显示功能输出字符串 mov ah,9h /;s1 int 21h mov dx,offset buff /;使用字符串输入功能输入需要转 mov ah,0ah /;换的四位十六进制数。 int 21h mov dx,offset s2 /;输出换行字符 mov ah,9 int 21h mov si,offset buff /;把buff的偏移地址赋给si mov ch,si+1 /;把实际输入的数据数目赋给chlp1:

6、mov bl,si+2 /;把第一个数据赋给bl cmp bl,41h /;把bl中的数据与41h比较,如果 jb lp2 /;小于,则跳到lp2;否则继续。 sub bl,37h /;把bl与37h相减结果赋给bl jmp lp3 /;跳转到lp3lp2: sub bl,30h /;把bl与37h相减结果赋给bllp3: mov cl,4 /;把4赋给cl sal bl,cl /;将cl中的数据非循环算术左移四位 mov dh,4 /;把4赋给dhlp4: mov dl,0 /;将dl清零 sal bl,1 /;将bl非循环左移1位,高位进CF rcl dl,1 /;将dl带进位循环左移1位

7、 add dl,30h /;将dl+30h赋给dl mov ah,2 /;使用单字符显示功能,将dl中的字 int 21h /;符显示出来。 dec dh /;将dh-1的值赋给dh jnz lp4 /;若ZF为0,则跳转到lp4;否则继续 inc si /;将si+1的值赋给si dec ch /;将ch-1的值赋给ch jnz lp1 /;若ZF为0,则跳转到lp1;否则继续next: mov ah,4ch /;带返回的程序结束指令调用 int 21hcode ends /;代码段结束 end start /;从标号start开始执行程序四、 心得体会: 经过这一周的微机原理课程设计的磨练

8、,首先让我认识到自己的不足,对编程的生疏,思路的限制,知道自己还有很多不懂的地方,还有很大的发展的余地,当然正因为如此我也成为了一名受益者,让自己得到了一个星期的锻炼,对汇编语言编程有了更多的认识。 在这一个星期中,可以说是苦大于甜,这些程序题目都像一座座大山在我的前面,我必须很努力的去克服这些困难,通过在网上搜集资料以及去询问同学,我也渐渐的克服了这些。下面我就几个程序的来叙述一下我这个星期的成果吧。 第一个程序是字符串的匹配设计,思路是:字符串的输入是用9号功能调用,但是要注意的是必须以$作为结束符,否则运行结果是乱码,我就是遇到乱码的,后来询问同学以及查看书籍知道了这个是很重要的一点,然

9、后既然是匹配,那肯定是两个相等长度的字符串的比较了,如果是两个长度不等的字符串那么就可以直接输出NO MATCH,然后一个一个的字符进行比较,如果相等则比较下一个,如果不相等,则直接输出 NO MATCH,反之输出 MATCH。则可以通过编写程序得到结果。要求是:1、两个字符串长度必须相等2、相对应的每一个字符都必须相等。第二个程序是从键盘输入四位十六进制数转换成等值的二进制数并显示。大概思路:从键盘接受到四位十六进制,首先要判断接收到的字符是不是符合要求,即是不是在0-F中,则要先判断。如果是则进行下面的步骤,否则结束程序。其次输出二进制是一位一位的显示,我们可以把四位十六进制数放在BX中,

10、让它循环左移一位,并且取二进制的第八位,让高七位置零,显示最低位加上30H的对应ASCII表中的数字,如此循环16次,就可以把四位十六进制对应的16位二进制输出。当然在期间遇到了困难,比如最初没有想到要判断输入是否正确,整个重心只在如何输出,所以在运行时出现了困难,还有不懂2号功能调用后键入的值去哪里了,不知道下面应该怎么写,后来知道是赋给了AL了,所以问题就迎刃而解了。第三个程序是字符和数据的显示设计,大概思路是:首先从键盘输入一个字符,采用1号功能调用。然后用CMP比较输入的字符与30H和39H的大小,若在它们之间,则CL加1,并输出数据;否则直接输出字符。第四个程序是响铃设计,大概的思路

11、是:首先要键入一个数,用的是1号功能调用,我们采用的是输入一个数的ASCII码,因为这样方便比较,则如果在30H-39H则可以运行下面的程序,否则退出程序。然后是将ASCII码减去30H则作为响铃的次数,响铃中比较重要的一点是延时,在两次响铃中间有延时,这样才能更加的清楚,为此我们采用在每两次响铃之间进行CX的自循环,设CX=0FFFFH,然后让它循环减1直到为0了则可以进行第二次响铃了,则完成了两次响铃之间的一个延时,响铃的次数由键入的数决定。在程序设计过程中也遇到了困难,比如刚开始我不知道响铃是用什么来实现的,后来询问同学和查询资料后知道响铃是用MOV AH,02H,MOV DL,07H

12、,INT 21H 来实现的,增长了我的知识。其次不知道延时是什么东西,后来在参考资料时时发现了原来是用CX的自循环来实现的,很巧妙的一种方法。第五个程序是接受年、月、日的信息并显示的设计。大概的思路是:首先使用10号功能调用从键盘输入年、月、日的信息,并存储在以BUFF为首地址的存储空间中。然后响铃一次,然后将BUFF中的字符循环送给DL并使用2号输出,直到DL=0DH是退出循环。第六个程序是将键盘输入的小写字母转换为大写字母。大概的思路是:首先用10号功能调用接受从键盘输入字符串,然后要判断是否是小写字母,如果不是小写字母,则直接采用2号功能输出。如果是小写字母,则将小写字母的ASCII码减

13、去20H,转换为对应大写字母的ASCII码,然后用2号功能输出。第七个程序是排序设计。大概的思路是:首先从键盘输入N个数据,以空格为间隔,当输入两个空格时则退出输入。然后比较N个数据中相邻两个数据的大小,若第一个大于第二个,则将它们交换;否则继续循环。接着比较N-1个数据中相邻两个数据的大小,若第一个大于第二个,则将它们交换;否则继续循环。最后采用2号功能调用将字符输出。 通过这次微机原理课程设计,不仅培养了我独立思考、动手操作的能力,在其它各种能力上也都有了提高。更重要的是,在这次课程设计课上,我们学会了很多学习的方法,而这是日后最实用的,真的是受益匪浅。要面对社会的挑战,只有不断的学习、实践,再学习、再实践。这对于我们的将来也有很大的帮助。以后,不管有多苦,我想我们都能变苦为乐,找寻有趣的事情,发现其中珍贵的事情。就像提倡的艰苦奋斗一样,我们都可以在实验结束之后变的更加成熟,坦然面对需要面对的事情。

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

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号