微机原理课程设计_第1页
微机原理课程设计_第2页
微机原理课程设计_第3页
免费预览已结束,剩余28页可下载查看

下载本文档

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

文档简介

1、.课程设计说明书课程名称 : 微机原理课程设计题目 : 数制转换实验院系:理学院专业班级:应用物理13-1学号: 2013305188学生姓名:李立才指导教师:李声2016年6月17日;.安徽理工大学课程设计(论文)任务书理学院院系信计教研室学 号2013305188学生姓名李立才专业(班级)应物 13-1设计题目数制转换实验,小写转大写实验设计在 masm for windows 上经 debug 调试可运行;可满足设计要求。技术参数为掌握键盘接受数据的方法,并了解将键盘数据显示时必须转换为ASCII码的原理,编写程序,将键盘接受到的四位十六进制数据转换为等值的二进制数设显示。计为了解小写字

2、母和大写字母在计算机内的表示方法,并学习如何进行转换,要编写程序,接受键盘字符,并将其中的小写字母转变为大写字母,然后显示在屏求幕上。工作查阅相关材料,完成设计,完成设计报告量工1. 综合论证,确定设计方案。2. 查阅资料,完成设计。3. 完成设计报告。作计划1 姚燕南 , 薛钧义主编 . 微型计算机原理第四版 M. 西安电子科技大学出版参社 .考M. 电子工业出版社 .2 潘峰主编 . 微型计算机原理与汇编语言第三版资料3 雏逢兴编著 . 计算机硬件技术基础 M, 高等教育出版社 .指导教师签字教研室主任签字年月日;.安徽理工大学课程设计(论文)成绩评定表学生姓名:李立才学号:2013305

3、188专业班级:应物 13-1课程设计题目:数制转换实验指导教师评语:成绩:指导教师:年月日;.目 录1.课程设计实验目的与要求 .11.1从键盘输入数据并显示 .11.2将键盘输入的小写字母转换成大写字母 .12. 课程设计实验内容 .12.1从键盘输入数据并显示 .12.2将键盘输入的小写字母转换成大写字母 .23.课程设计实验流程图 .23.1从键盘输入数据并显示 .23.2 将键盘输入的小写字母转换成大写字母 .34. 课程设计实验程序 .44.1从键盘输入数据并显示 .44.2将键盘输入的小写字母转换成大写字母 .85.课程设计实验运行结果 .125.1从键盘输入数据并显示 .125

4、.2将键盘输入的小写字母转换成大写字母 .136. 课程设计实验心得 .14;.1. 课程设计实验目的与要求1.1 从键盘输入数据并显示1. 掌握键盘接受数据的方法,并了解将键盘数据显示时必须转换为 ASCII 码的原理,编写程序,将键盘接受到的四位十六进制数据转换为等值的二进制数显示。2. 掌握子程序定义和调用的方法。3. 掌握循环移位指令的用法和无符号数比较大小的方法。1.2 将键盘输入的小写字母转换成大写字母1. 了解小写字母和大写字母在计算机内的表示方法,并学习如何进行转换,编写程序,接受键盘字符,并将其中的小写字母转变为大写字母,然后显示在屏幕上。2. 熟练掌握汇编语言程序设计的方法

5、及上机步骤3. 掌握将小写字母转换为相应的大写字母的方法4. 掌握子程序的设计方法5. 掌握 DOS功能的调用方法2. 课程设计实验内容2.1从键盘输入数据并显示为了解小写字母和大写字母在计算机内的表示方法,并学习如何进行转换,编写程序,接受键盘字符, 并将其中的小写字母转变为大写字母,然后显示在屏幕上。课程设计要求进行小写字母到大写字母的转换。其实字母大小写的区别在于他们的 ASCII 码范围,它们之间的转换其实就是加减相应的ASCII 码值。在判断输入的字母是大写的还是小写的 (即判断输入符号ASCII 码在 41H5AH还是在61H7AH内)之后,决定判断是加上还是减去ASCII 码值;

6、.2.2 将键盘输入的小写字母转换成大写字母第一步是实现小写字母向大写字母的转换,主要利用小写字母比大写字母大 20H的关系。第二部要键盘输入,显示输出。3.课程设计实验流程图3.1 从键盘输入数据并显示图 3-1实验流程图;.3.2 将键盘输入的小写字母转换成大写字母图 3-2 实验流程图;.4. 课程设计实验程序4.1从键盘输入数据并显示data segment; 数据区定义开始strr db please input hexadecimal number:$errr db this is an error number!$; 数据区定义结束data endsstack segment s

7、tack; 堆栈区定义开始 db 100 dup(?); 堆栈区定义结束stack endscode segment; 代码区定义开始assume cs:code,ds:data,ss:stackstart: mov ax,datamov ds,axmov ax,stackmov ss,ax; 设定区址mov cx,00hxor bx,bxcall getnum; 按提示输入四个字符,存入 BX 中mov cx,10h;用于下面的 loop next处,因为 BX 共有 16 位;.call newline; 转到新行 mov dl,0ah mov ah,02h int 21h; 换行mov

8、dl,0dhmov ah,02hint 21h; 回车next:rol bx,1; 把 BX 所存字符的二进制的最高位移到最低位 mov dl,bland dl,01h; 获取最低位add dl,30h; 将最低位转成数字,即字符 0 或 1 mov ah,02hint 21h; 即将之前 BX 的最高位输出到屏幕 loop next; 循环,将 BX 的每一位都输出来mov ah,4chint 21h; 完成; -;功能:接受四个字符,必须输入0-9 A-F ,否则提示错要重输; 假设先后输入 1 2 3 4 ,则最后 BX 为 0x1234 getnum proc near;.;子过程 g

9、etnum 开始again: push cxmov cl,4shl bx,cl; 把 BX 左移四位,空出了低四位again1: call newline; 转到新行 lea dx,strr mov ah,09h int 21h; 输出 please input hexadecimal number:mov ah,01hint 21h; 接受输入字符cmp al,46hja done; 如果字符比 F 大则转到 donecmp al,41hjb next1; 如果字符比 A 小则转到 next1sub al,07h;如果字符在 A和 F间,则减七; 提示:数字 1-9 为 0x31-0x39

10、,字符 A-F 处理后为 0x3A-0x3F ,正好接在数字后jmp ttnext1: cmp al,39hja done;.; 如果字符比 9 大则转到 donett: cmp al,30h jb done; 如果字符比 0 小则转到 donesub al,30h;减 0x30 ,于是原字符 0-9 A-F变成相应的十六进制数0x0-0xFmov ah,00hadd bx,ax;把 0x0-0xF存到 bx的低四位pop cxinc cxcmp cx,04h; 是否循环了四次 je tt2; 是的话就跳到 tt2 结束 jmp again; 否则跳到 again 再来一次done:call

11、newlinelea dx,errrmov ah,09hint 21h; 如果输入的字符不符合要求,输出错误提示 jmp again1; 转到 again1 再次接受输入tt2:ret;子过程 getnum 结束getnum endp;.; -; 功能:输出回车换行符,即转到新行newline proc near; 子过程 newline 开始 mov dl,0ah; 设输出字符为 0x0A ,即换行符 mov ah,02hint 21hmov dl,0dh; 设输出字符为 0x0D,即回车符 mov ah,02hint 21hret;子过程 newline结束newline endp; -;

12、 代码区定义结束code ends; 指定执行起点 end start4.2 将键盘输入的小写字母转换成大写字母DATAS SEGMENTMESSAGE DB Welcome to the system!,13,10,13,10DB The function of the program is changing small letters to capital letters.,13,10DBIfyou entercapitallettersor numbers therewill benochanges.,13,10,13,10DB Please enter a string.,13,10,

13、$CRDB 13,10,$ ;回车换行;.STRING DB 100DB 0DB 80 DUP(0) ;定义缓冲区AGAIN DB Do you want to try again?(Y or N),13,10,$ERRORDBERROR!,13,10,Pleaseentertherightcommomds.,13,10,$ ;错误提示DATAS ENDSSTACKS SEGMENTDB 200 DUP(?)STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:HEAD:MOV AX,DATASMOV DS,AXLEA

14、DX,MESSAGE ; 输出提示语MOV AH,09HINT 21HLEA DX,STRINGMOV AH,0AHINT 21H;把字符串输入到 BUF区LEA DX,CRMOV AH,09HINT 21H;以上为回车换行LEA SI,STRING+2 ;把字符串首地址存入BXMOV CL,STRING+1 ; 把字符个数存 CXMOV CH,0NEXT1:MOV DL,SI;.CMP DL,aJBNEXT2CMP DL,zJANEXT2;ASCII码小于 a 和大于 z 的跳过,其余的减32SUB DL,20H;大小写字母的 ASCII 码差 32NEXT2:MOV AH,02HINT 2

15、1HINC SI;BX自加,判断下一个字符DEC CX;CX自减,最终将是0JNE NEXT1;CX非零时,跳回 NEXT1MOV DX,OFFSET CR ; 输出回车换行MOV AH,09HINT 21HJMPEXITOVERFLOW:; 错误提示LEADX,CRMOVAH,09HINT21HLEADX,ERRORMOVAH,09HINT21HEXIT:LEA DX,CRMOV AH,09HINT 21HLEADX,AGAIN ;提示是否再试一次MOVAH,09HINT21HMOVAH,01HINT21H;.PUSH AXLEA DX,CRMOV AH,09HINT 21HPOPAXCMP

16、AL,YJZHEADCMPAL,yJZHEADCMPAL,NJZOVERCMPAL,nJZOVERJMPOVERFLOWOVER:MOV AH,4CHINT 21HCODES ENDSEND START;.5. 课程设计实验运行结果5.1从键盘输入数据并显示图 5-1实验运行结果;.5.2将键盘输入的小写字母转换成大写字母图 5-2实验运行结果;.6.课程设计实验心得通过这次课程设计,使我认识到自己理论知识掌握不够,对于许多指令和一些基本的编程方法都掌握不清晰。为了顺利完成课程设计,我重新拿起课本,用心阅读,问题才一一解决。由此看来,知识只有在实践中才能真正掌握。难怪人们说汇编语言编程必须在使

17、用中慢慢理解。本学期做了许多微机原理的实验,开始以为这次课程设计会像前几次实验简单。直到要编写程序实现的时候,才发现自己对汇编程序的了解确实还不够,尤其是编程方面的能力有待提高。在不断地再次学习和理解过程中,我慢慢掌握了更多汇编语言的应用知识,最终写出了大小写字母转换的程序。把编写好的程序输入软件时候,也出现了许多小问题,比如没有定义变量等等。归纳起来都是因为编程掌握不牢固,写程序没有条理, 加上自己粗心大意的恶习依旧没改正造成的,以后需要努力改正。总的来说,这次课程设计,自己受益匪浅。不但加固了微机原理知识的理解,而且加强了对汇编语言的应用能力。 同时,非常感谢指导老师与同学给予我在编程方面的帮助,让我能够完成这次设计。;.参考文献1 姚燕南 , 薛钧义主编 . 微型计算机原理 ( 第四版 ) ,西安:西安电子科技大学出版社 ,20032 潘峰主编 . 微型计算机原理与汇编语言 ( 第三版 ) , 西安电子工业出版社 ,20033 雏逢兴编著 . 计算机硬件技术基础 ,北京:高等教育出版社 ,19984 王永山等编著 . 微型计算机原理与应用 ,西安:电子科技大学出版社,19995 舒贞权等编著 .Intel8086/8088 系列微型计算机原理 . 西安:西安交通大学出版社, 19936 Hwang S, Choi S. Ir

温馨提示

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

评论

0/150

提交评论