微机设计报告.doc_第1页
微机设计报告.doc_第2页
微机设计报告.doc_第3页
微机设计报告.doc_第4页
微机设计报告.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

微型计算机原理课程设计报告学院:电气信息工程学院 班级: 自动化1001 姓名:学号: 3100504046 日期:2013/01/072013/01/10一、 目的:结合微型计算机原理课程的学习,进一步巩固已经学习的知识,同时针对微型计算机原理知识的具体应用,学习对系统dos和bios的使用。学会使用全屏编辑程序-pe,弄懂汇编程序的上机过程以及如何使用debug软件进行汇编程序的调试。二、 内容:1、 字符串匹配设计为掌握提示信息的设置的方法及读取键入信息的方法。编写程序实现两个字符串的比较。如果相同,则显示“match”,否则,显示“no match”。运行结果显示:2、 从键盘输入数据并显示的设计为掌握从键盘接收数据的方法,并了解将键盘数据显示时转换为ascii码的原理。编写程序,将键盘接收到四位十六进制数据转换为等值二进制数,在显示在终端上。运行结果显示:3、 字符和数据的显示设计为掌握字符和数据的显示方法。编写程序,先显示信息:input string,the end is $,再接收字符。如为09,则计数器加1,并显示数据;如为非数字,则直接显示,但不计数。运行结果显示: 4、 响铃设计为掌握响铃的使用方法。编写程序,从键盘接收输入的字符,如是数字n,则响铃n次;如不是数字,则不响。运行结果显示:5、 接受年、月、日信息并显示的设计为掌握响铃的使用方法,并掌握年、月、日输入方法。编写程序,先显示“what in the data(mm/dd/yy)?”并响铃一次,然后接收键盘输入的月/日/年信息,并显示。运行结果显示:6、 将键盘输入的小写字母转换成大写字母的设计为了解小写字母和大写字母在计算机内的表示方法,并学习如何进行转换。编写程序,接受键盘字符,并将其中的小写字母转变成大写字母,然后显示在屏幕上。运行结果显示:7、 排序设计:为掌握用汇编语言编写排序程序的思路与方法。编写程序,从首地址1000h开始存放50个数,要求设计程序将这些数由小到大排序,排序后的数,仍存放在该区域中。运行结果显示:三、 实例(程序代码):为掌握从键盘接收数据的方法,并了解将键盘数据显示时转换为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: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: 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位 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开始执行程序四、 心得体会: 经过这一周的微机原理课程设计的磨练,首先让我认识到自己的不足,对编程的生疏,思路的限制,知道自己还有很多不懂的地方,还有很大的发展的余地,当然正因为如此我也成为了一名受益者,让自己得到了一个星期的锻炼,对汇编语言编程有了更多的认识。 在这一个星期中,可以说是苦大于甜,这些程序题目都像一座座大山在我的前面,我必须很努力的去克服这些困难,通过在网上搜集资料以及去询问同学,我也渐渐的克服了这些。下面我就几个程序的来叙述一下我这个星期的成果吧。 第一个程序是字符串的匹配设计,思路是:字符串的输入是用9号功能调用,但是要注意的是必须以$作为结束符,否则运行结果是乱码,我就是遇到乱码的,后来询问同学以及查看书籍知道了这个是很重要的一点,然后既然是匹配,那肯定是两个相等长度的字符串的比较了,如果是两个长度不等的字符串那么就可以直接输出no match,然后一个一个的字符进行比较,如果相等则比较下一个,如果不相等,则直接输出 no match,反之输出 match。则可以通过编写程序得到结果。要求是:1、两个字符串长度必须相等2、相对应的每一个字符都必须相等。第二个程序是从键盘输入四位十六进制数转换成等值的二进制数并显示。大概思路:从键盘接受到四位十六进制,首先要判断接收到的字符是不是符合要求,即是不是在0-f中,则要先判断。如果是则进行下面的步骤,否则结束程序。其次输出二进制是一位一位的显示,我们可以把四位十六进制数放在bx中,让它循环左移一位,并且取二进制的第八位,让高七位置零,显示最低位加上30h的对应ascii表中的数字,如此循环16次,就可以把四位十六进制对应的16位二进制输出。当然在期间遇到了困难,比如最初没有想到要判断输入是否正确,整个重心只在如何输出,所以在运行时出现了困难,还有不懂2号功能调用后键入的值去哪里了,不知道下面应该怎么写,后来知道是赋给了al了,所以问题就迎刃而解了。第三个程序是字符和数据的显示设计,大概思路是:首先从键盘输入一个字符,采用1号功能调用。然后用cmp比较输入的字符与30h和39h的大小,若在它们之间,则cl加1,并输出数据;否则直接输出字符。第四个程序是响铃设计,大概的思路是:首先要键入一个数,用的是1号功能调用,我们采用的是输入一个数的ascii码,因为这样方便比较,则如果在30h-39h则可以运行下面的程序,否则退出程序。然后是将ascii码减去30h则作为响铃的次数,响铃中比较重要的一点是延时,在两次响铃中间有延时,这样才能更加的清楚,为此我们采用在每两次响铃之间进行cx的自循环,设cx=0ffffh,然后让它循环减1直到为0了则可以进行第二次响铃了,则完成了两次响铃之间的一个延时,响铃的次数由键入的数决定。在程序设计过程中也遇到了困难,比如刚开始我不知道响铃是用什么来实现的,后来询问同学和查询资料后知道响铃是用mov ah,02h,mov dl,07h ,int 21h 来实现的,增长了我的知识。其次不知道延时是什么东西,后来在参考资料时时发现了原来是用cx的自循环来实现的,很巧妙的一种方法。第五个程序是接受年、月、日的信息并显示的设计。大概的思路是:首先使用10号功能调用从键盘输入年、月、日的信息,并存储在以buff为首地址的存储空间中。然后响铃一次,然后将buff中的字符循环送给dl并使用2号输出,直到dl=0dh是退出循环。第六个程序是将键盘输入的小写字母转换为大写字母。大概的思路是:首先用10号功能调用接受从键盘输入字符串,然后要判断是否是小写字母,如果不是小写字母,则直接采用2号功能输出。如果是小写字母,则将小写字母的ascii码减去20h,转换为对应大写字母的ascii码,然后用2号功能输出。第七个程序是排序设计。大概的思路是:首先从键盘输入n个数据,以空格为间隔,当输入两个空格时则退出输入。然后比较n个数据中相邻两个数据的大小,若第一个大于第二个,则将它们交换;否则继续循环。接着比较n-1个数据中相邻两个数据的大小,若第一个大于第二个,则将它们交换;否则继续循环。最后采用2号功能调用将字符输出。 通过这次微机原理课程设计,不仅培养了我

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论