微机原理课程设计汇本_第1页
微机原理课程设计汇本_第2页
微机原理课程设计汇本_第3页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

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

2、机的表示方法,并学习如何进展转换, 编写程序,承受键盘字符,并将其中的小写字母转变为大写字母,然后显示在屏 幕上。工 作 量查阅相关材料,完成设计,完成设计报告工 作 计 划1.综合论证,确定设计方案。2.查阅资料,完成设计。3.完成设计报告。参 考 资 料1燕南,薛钧义主编.?微型计算机原理?第四版M.电子科技大学.2峰主编.?微型计算机原理与汇编语言?第三版M.电子工业.3雏逢兴编著.?计算机硬件技术根底?M,高等教育.指导教师签字教研室主任签字理工大学课程设计论文成绩评定表学生: 立才学号:2013305188专业班级:应物13-1课程设计题目:数制转换实验指导教师评语:成绩:指导教师:

3、年 月曰目录1. 课程设计实验目的与要求 11.1 从键盘输入数据并显示 11.2 将键盘输入的小写字母转换成大写字母 12. 课程设计实验容 12.1 从键盘输入数据并显示 12.2 将键盘输入的小写字母转换成大写字母 23. 课程设计实验流程图 23.1 从键盘输入数据并显示 23.2 将键盘输入的小写字母转换成大写字母 34. 课程设计实验程序 44.1 从键盘输入数据并显示 44.2 将键盘输入的小写字母转换成大写字母 85. 课程设计实验运行结果 125.1 从键盘输入数据并显示 125.2 将键盘输入的小写字母转换成大写字母 136. 课程设计实验心得 141. 课程设计实验目的与

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

5、能的调用方法2. 课程设计实验容2.1 从键盘输入数据并显示为了解小写字母和大写字母在计算机的表示方法,并学习如何进展转换, 编写程序, 承受键盘字符, 并将其中的小写字母转变为大写字母, 然后显示在屏 幕上。课程设计要求进展小写字母到大写字母的转换。其实字母大小写的区别在 于他们的 ASCII 码围,它们之间的转换其实就是加减相应的 ASCII 码值。在判断 输入的字母是大写的还是小写的即判断输入符号ASCII码在41H5AH还是在61H7AH之后,决定判断是加上还是减去 ASCII码值2.2将键盘输入的小写字母转换成大写字母第一步是实现小写字母向大写字母的转换,主要利用小写字母比大写字母

6、大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 stack; 堆栈区定义开场db 100 dup(?); 堆栈区定义完毕stack en

7、dscode 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,0ahmov ah,02h int 21h 换行mov dl,0dhmov ah,02h int 21h 回车next: rol bx,1; 把 BX

8、所存字符的二进制的最高位移到最低位 mov dl,bland dl,01h; 获取最低位add dl,30h; 将最低位转成数字,即字符 '0' 或 '1'mov ah,02hint 21h; 即将之前 BX 的最高位输出到屏幕loop next; 循环,将 BX 的每一位都输出来mov ah,4ch int 21h 完成; 功能:承受四个字符,必须输入 0-9 A-F ,否那么提示错要重输 ; 假设先后输入 1 2 3 4 ,那么最后 BX 为 0x1234 getnum proc near子过程 getnum 开场again: push cx mov cl,

9、4 shl bx,cl; 把 BX 左移四位,空出了低四位again1: call newline; 转到新行lea dx,strrmov ah,09hint 21h; 输出 "please input hexadecimal number:"mov ah,01hint 21h 承受输入字符cmp al,46hja done如果字符比 'F' 大那么转到 done小那么转到 next1cmp al,41h next1 如果字符比 'A'sub al,07h; 如果字符在 'A' 和 'F' 间,那么减七; 提示

10、:数字 1-9 为 0x31-0x39 ,字符 A-F 处理后为 0x3A-0x3F ,正好接 在数字后jmp ttnext1: cmp al,39h ja done如果字符比 '9' 大那么转到 donett: cmp al,30h done; 如果字符比 '0' 小那么转到 donesub al,30h0x0-0xF; 减 0x30 ,于是原字符 0-9 A-F 变成相应的十六进制数mov ah,00h add bx,ax; 把 0x0-0xF 存到 bx 的低四位pop cx inc cx cmp cx,04h ; 是否循环了四次 je tt2; 是的话就

11、跳到 tt2 完毕jmp again; 否那么跳到 again 再来一次done: call newline lea dx,errr mov ah,09h int 21h; 如果输入的字符不符合要求,输出错误提示 jmp again1; 转到 again1 再次承受输入tt2: ret; 子过程 getnum 完毕 getnum endp; 功能:输出回车换行符,即转到新行 newline proc near; 子过程 newline 开场mov dl,0ah; 设输出字符为 0x0A ,即换行符 mov ah,02h int 21hmov dl,0dh; 设输出字符为 0x0D ,即回车符

12、mov ah,02h int 21hret; 子过程 newline 完毕newline endp; 代码区定义完毕code ends; 指定执行起点end start4.2 将键盘输入的小写字母转换成大写字母DATAS SEGMENT MESSAGE DB 'Wele to the system!',13,10,13,10tonoDB 'The function of the program is changing small letters capital letters.',13,10DB 'If you enter capital letters

13、 or numbers there will be changes.',13,10,13,10DB 'Please enter a string.',13,10,'$'CR DB 13,10,'$' ; 回车换行STRING DB 100 DB 0DB 80 DUP(0) ; 定义缓冲区AGAIN DB 'Do you want to try again?(Y or N)',13,10,'$'rightERROR DB 'ERROR!',13,10,'Please enter the

14、 momds.',13,10,'$' ; 错误提示DATAS ENDSSTACKS SEGMENTDB 200 DUP(?)STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:HEAD:MOV AX,DATASMOV DS,AXLEA DX,MESSAGE ; 输出提示语MOV AH,09HINT 21HLEA DX,STRINGMOV AH,0AHINT 21H ;把字符串输入到 BUF区LEA DX,CRMOV AH,09HINT 21H; 以上为回车换行LEA SI,STRING+2 ;

15、把字符串首地址存入 BXMOV CL,STRING+1 ; 把字符个数存 CXMOV CH,0NEXT1:MOV DL,SICMP DL,'a'NEXT2CMP DL,'z'JA NEXT2 ;ASCII 码小于 a 和大于 z 的跳过,其余的减 32 SUB DL,20H ; 大小写字母的 ASCII 码差 32NEXT2:MOV AH,02HINT 21HINC SI ;BX 自加,判断下一个字符DEC CX ;CX 自减,最终将是 0 JNE NEXT1 ;CX 非零时,跳回 NEXT1 MOV DX,OFFSET CR ; 输出回车换行MOV AH,09

16、HINT 21HJMP EXITOVERFLOW: ; 错误提示LEA DX,CRMOV AH,09HINT 21HLEA DX,ERRORMOV AH,09HINT 21HEXIT:LEA DX,CRMOV AH,09HINT 21HLEA DX,AGAIN ; 提示是否再试一次MOV AH,09HINT 21HMOV AH,01HINT 21HPUSH AXLEA DX,CRMOV AH,09HINT 21HPOP AXCMP AL,'Y'JZ HEADCMP AL,'y'JZ HEADCMP AL,'N'JZ OVERCMP AL,'

17、;n'JZ OVERJMP OVERFLOWOVER:MOV AH,4CHINT 21HCODES ENDSEND START5. 课程设计实验运行结果5.1从键盘输入数据并显示DQSBqk 0,74.匚pu speeds3000 cycles. Frameskip 0, Program: DOSBOKplease pleaseDpleasei input input inpu t inpwthexa deci ma 1 Mxadgima 1 hexadec inM 1 hexddecinKilmumLer!2 number:3 nvmlier: 1 numLer:3001000110

18、0010011Press anij key to comt inuc图5-1实验运行结果5.2 将键盘输入的小写字母转换成大写字母DOSEqx 074, Cpu speed: 3000 cycles. Frameskip 0, Program: TEMPFILEpelconne to the system!FThe function of the prog蛙已hi is changimg :small If L|OKenter capita 1 letters or numbers therelettersui 1 i becapital 1 Ettel'S. chaftg'e

19、s:.Please asdf 料SDFGG!Do youenter a string .wairt to try again7(Y or H)lcome to the system?Tlie functionIlf you enterof the program is clianifin( sma 11 capital letters or numbers therelettersuill betonacapital letters.(Please enterq string.图5-2实验运行结果6. 课程设计实验心得通过这次课程设计, 使我认识到自己理论知识掌握不够, 对于许多指令和一 些根本的编程方法都掌握不清晰。 为了顺利完成课程设计, 我重新拿起课本, 用 心阅读,问题才一一解决。由此看来,知识只有在实践中才能真正掌握。难怪人 们说汇编语言编程必须在使用中慢慢理解。本学期做了许多微机原理的实验,开场以为这次课程设计会像前几次实验 简单。直到要编写程序实现的时候,才发现自己对汇编程序的了解确实还不够, 尤其是编程方面的能力有待提高。 在不断地再次学习和理解过程中, 我慢慢掌握 了更多汇编语言的应用知识,最终写出了大小写字母转换的程序。把编写好的程序输入软件时候

温馨提示

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

评论

0/150

提交评论