ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:36.98KB ,
资源ID:3724700      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3724700.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(微机原理课程设计报告li.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

微机原理课程设计报告li.docx

1、微机原理课程设计报告li江苏大学微机原理课程设计报告学院: 电气学院 班级: 姓名: 学号: 指导老师: 时间: 2014年1月15日 一课程设计目的:1.结合微型计算机原理课程的学习,进一步巩固已学的知识,同时针对计算机原理知识的具体应用,学会对系统中DOS和BIOS的使用。学会使用屏幕编辑程序EDIT,弄懂汇编程序的上级过程以及如何运用DEBUG软件进行汇编程序的调试。 2. 学会将课本上的理论知识和实际有机的结合起来,锻炼自己分析解决实际问题的能力。提高适应实际,实践编程的能力。 3. 为了进一步巩固学习的理论知识,增强学生对所学知识的实际应用能力和运用所学的知识解决实际问题的能力,开始

2、为期两周的课程设计。通过设计使学生在巩固所学知识的基础之上具有初步的单片机系统设计与应用能力。二课程设计内容: 1.接受年、月、日信息并显示的设计 为掌握响铃使用方法,并掌握年、月、日输入方法。编写程序,先显示“WHAT IS THE DATA (MM/DD/YY)?”并响铃一次,然后接受键盘输入的月/日/年信息,并显示。2. 字符串匹配设计为掌握提示信息的设置方法及读取键入信息的方法,编写程序实现两个字符串比较,如相同则显示“MATCH”,否则显示“NO MATCH”。3.从键盘输入数据并显示的设计为掌握键盘接受数据的方法,并了解将键盘数据显示时必须转换为ASCII码的原理,编写程序,将键盘

3、接受到的四位十六进制数据转换为等值的二进制数显示。4.字符和数据的显示设计为掌握字符和和数据的显示方法。编写程序,先显示信息:INPUT STRING,THE END FLAG IS$,再接受字符。如为0-9,则计数器加1,并显示数据;如为非数字,则直接显示,但不计数。三典型题目举例:1接收年月日信息并显示的设计为掌握响铃使用方法,并掌握年、月、日输入方法。编写程序,先显示“WHAT IS THE DATA (MM/DD/YY)?”并响铃一次,然后接受键盘输入的月/日/年信息,并显示。返回DOS输出响铃字符显示”WHAT IS THE DATA”段寄存器和堆栈初始化入口流程图:分3次输入月、日

4、、年 分3次显示月、日、年 程序代码及注释:DATA SEGMENT S1 DB WHAT IS THE DATA (MM/DD/YY)? ,0DH,0AH,$ ;显示字符串S2 DB MONTH,0DH,0AH,$ ;月字符串S3 DB DAY,0DH,0AH,$ ;日字符串S4 DB YEAR,0DH,0AH,$ ;年字符串S5 DB 4 ;存放接受的月 DB ? DB 4 DUP($)S6 DB 4 ;存放接受的日 DB ? DB 4 DUP($)S7 DB 6 ;存放接受的年 DB ? DB 6 DUP($)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:

5、DATA ;段寄存器初始化START:MOV AX,DATA MOV DS,AX MOV DX,OFFSET S1 ;显示提示信息 MOV AH,9 INT 21H MOV DL,07H ;响铃一次 MOV AH,2 INT 21H MOV CX,0FFFH ;延迟,用内外双重循环实现L1:PUSH CX MOV CX,0FFFFHL2: LOOP L2 POP CX LOOP L1 MOV DX,OFFSET S5 ;接受月数据,放入变量 MOV AH,0AH INT 21H MOV DX,OFFSET S6 ;接受日数据,放入变量 MOV AH,0AH INT 21H MOV DX,OFF

6、SET S7 ;接受年数据,放入变量 MOV AH,0AH INT 21H MOV DL,0DH ;显示回车 MOV AH,2 INT 21H MOV DL,0AH ;显示换行 MOV AH,2 INT 21H MOV DX,OFFSET S5 ;显示月数据 ADD DX,2 MOV AH,9 INT 21H MOV DX,OFFSET S2 ;显示月字符 MOV AH,9 INT 21H MOV DX,OFFSET S6 ;显示日数据 ADD DX,2 MOV AH,9 INT 21H MOV DX,OFFSET S3 ;显示日字符 MOV AH,9 INT 21H MOV DX,OFFSE

7、T S7 ;显示年数据 ADD DX,2 MOV AH,9 INT 21H MOV DX,OFFSET S4 ;显示年字符 MOV AH,9 INT 21H MOV AH,4CH ;返回DOS INT 21HCODE ENDS END START结果截图:2字符串的匹配设计为掌握提示信息的设置方法及读取键入信息的方法。编写程序实现两个字符串比较。如相同,则显示“MATCH”,否则,显示“NO MATCH”。程序清单:CRLF MACRO ;显示回车 MOV DL,0DH MOV AH,02H INT 21H MOV AH,02H MOV DL,0AH INT 21H ENDMDATA SEGM

8、ENTMESS1 DB MATCH,0DH,0AH,$MESS2 DB NO MATCH,0DH,0AH,$MESS3 DB INPUT STRING1!,0DH,0AH,$MESS4 DB INPUT STRING2!,0DH,0AH,$MAXLEN1 DB 100STRING1 DB 100 DUP(?)MAXLEN2 DB 100STRING2 DB 100 DUP(?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATASTART: MOV AX,DATA MOV DS,AX MOV ES,AX MOV AH,09H MOV DX,OF

9、FSET MESS3 INT 21H ;显示提示信息1 MOV AL,MAXLEN1 MOV BX,OFFSET STRING1 MOV BX,AL ;最大字符缓冲 MOV AH,0AH MOV DX,OFFSET STRING1 INT 21H ;接收键入的字符串1 CRLF MOV AH,09H MOV DX,OFFSET MESS4 INT 21H ;显示提示信息2 MOV AL,MAXLEN2 MOV BX,OFFSET STRING2 MOV BX,AL ;最大字符缓冲设置 MOV AH,0AH MOV DX,OFFSET STRING2 INT 21H ;接收键入的字符串2 CRL

10、FCLD LEA SI,STRING1 ;字符串1的地址送给SI MOV CL,SI+1 ;字符串1的字符数送给CX MOV CH,0BEING: LEA DI,STRING2 ;字符串2的地址送给DI MOV DL,DI+1 ;字符串2的字符数送给DX MOV DH,0J1: MOV AL,SI+2 ;字符串1的第一个字符在字符串2中匹配 CMP DI+2,AL JE J3 ;匹配成功则跳转J2: INC DI ;指向字符串2下一个字符 DEC DX JZ NOMAT ;字符串2完,不匹配 JMP J1 ;字符串2没完,重新匹配J3: DEC CX JZ MATCH ;字符串1完,匹配 DE

11、C DX JZ NOMAT ;字符串2完,不匹配 INC SI ;指向串1下一个字符 INC DI ;指向串2下一个字符 MOV AL,SI+2 CMP DI+2,AL JE J3 ;匹配,跳转 DEC DX JZ NOMAT ;字符串2完,不匹配 LEA SI,STRING1 ;重新从串1的第一个字符匹配 MOV CL,SI+1 MOV CH,0 JMP J1MATCH: MOV AH,09H ;输出匹配信息 MOV DX,OFFSET MESS1 INT 21H JMP NEXTNOMAT: MOV AH,09H ;输出不匹配信息 MOV DX,OFFSET MESS2 INT 21H N

12、EXT: MOV AH,4CH ;程序终止 INT 21HCODE ENDS END START 3从键盘输入数据并显示的数据为掌握接收键盘数据的方法,并了解将键盘数据显示时须转换为ASCII码的原理。编写程序,将键盘接收到的四位十六进制数据转换为等值的二进制数,再显示在终端上。程序清单:DATA SEGMENTMSG1 DB Hex:, $MSG2 DB 0DH, 0AH, Binary:, $COUNT EQU 4BUF DB 4 DUP(?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX, DATAMOV DS, AXLE

13、A DX, MSG1MOV AH, 9INT 21HMOV CX, COUNTMOV SI, 0INPUT:MOV AH, 1 ;通过四次循环从键盘读入四位十六进制数INT 21H MOV BUFSI, ALDEC CXINC SICMP CX, 0JNZ INPUTNEXT3: LEA DX, MSG2MOV AH, 9INT 21HMOV CX, COUNTMOV SI, 0NEXT2: MOV BL, BUFSICMP BL , 9 JBE OK ;读入的字符9 转向 OKSUB BL, 7 ;读入字符= 9 减7 OK: PUSH CX MOV CL ,4 SHL BL, CL ; 逻

14、辑左移4位,低4位高4位MOV CX, 4 ; 4次循环将当前处理字符的4位二进制输出NEXT1: MOV DL, 0SHL BL, 1JNC SKIP INC DLSKIP: MOV AH, 2INT 21HLOOP NEXT1POP CX ;INC SILOOP NEXT2 ; 4次循环将4位十六进制数每位转换为对应的4位二进制EXIT: MOV AH, 4CHINT 21HCODE ENDSEND START4字符和数据的显示程序为掌握字符和数据的显示方法。编写程序,先显示信息:INPUT STRING,THE END FLAG IS$,再接收字符。如为0-9,则计数器加1,并显示数据;

15、如为非数字,则直接显示,但不技计数。程序清单:CRLF MACRO MOV AH,02H MOV DL,0DH INT 21H MOV AH,02H MOV DL,0AH INT 21HENDM DATA SEGMENTMESS1 DB INPUT$MESS2 DB zifu zongshu= $MESS3 DB no zifu zongshu= $MESS4 DB shuzi zifu zongshu= $TOTAL DW ?DATA ENDSSTACK SEGMENTSTA DW 32 DUP (?)TOP DW ?STACK ENDSCODE SEGMENTASSUME CS:CODE,

16、DS:DATA,ES:DATA,SS:STACKSTART: MOV AX,DATA MOV DS,AX MOV ES,AX MOV SP,TOP ;初始化 MOV BX,0000H ;计数值清0 MOV AH,09H MOV DX,OFFSET MESS1 INT 21H CRLFXXX: MOV AH,01H INT 21H ;接收键入字符 CMP AL,20H JZ UUU ;是空格键则转UUU CMP AL,0DH JNZ III CRLF ;是回车键则转UUU JMP UUUIII: CMP AL,30H JB YYY CMP AL,39H JBE VVV ;0-9转VVVYYY:

17、INC BX ;计数值加1VVV: INC TOTAL JMP XXXUUU: CRLF MOV AH,09H LEA DX,MESS2 ;显示字符总数 INT 21H MOV AX,TOTAL CALL DISP MOV AH,02H MOV DL,H INT 21H CRLF ;回车换行 MOV AH,09H MOV DX,OFFSET MESS3 INT 21H ;显示非数字字符总数 MOV AX,BX CALL DISP MOV AH,02H MOV DL,H INT 21H ;十六进制数标志 CRLF MOV AH,09H LEA DX,MESS4 ;显示数字字符总数 INT 21H

18、 MOV AX,BX SUB TOTAL,AX MOV AX,TOTAL CALL DISP MOV AH,02H MOV DL,H INT 21H MOV AX,4C00H INT 21HDISPP PROC NEAR ;显示子程序,显示AL中的数按十六进制数方式 MOV BL,AL ;AL中数送BLKKK: MOV DL,BL MOV CL,04 ROL DL,CL AND DL,0FH CALL DISPL ;显示字节高位 MOV DL,BL AND DL,0FH CALL DISPL ;显示字节低位 RETDISPP ENDPDISPL PROC NEAR ADD DL,30H ;由数

19、值转为参应字符的ASCII码 CMP DL,3AH JB DDD ;是0-9转DDD ADD DL,27H ;是A-FDDD: MOV AH,02H INT 21H ;显示DL中字符 RET ;返回DISPL ENDP ;显示子程序,显示AX中的数按十六进制数方式DISP PROC NEAR PUSH BX PUSH CX PUSH DX PUSH AX ;入栈保存 MOV AL,AH CALL DISPP ;显示高字节 POP AX CALL DISPP POP DX POP CX POP BX RET ;出栈DISP ENDPCODE ENDS END START四心得体会: 经过这次课程

20、设计,跟加深了对汇编语言的理解和认识,尤其是DOS系统的功能调用。这次一共做了4道题目,每一道题都有其难点之处。在做第二道题字符串匹配时就遇到了一些问题。字符串的比较命令需用到DS与ES两个段,而DOS的0A功能只能给DS段,所以还需用到字符串的传送指令,这一点一开始确实忽略了,所以花了不少时间。在做第三个键盘输入数据的设计时,总的思路是不断的比较,一致时再跳入显示环节。遇到的难题是由于JZ指令的跳转范围是-128127B,而对于输入的数比较的次数较多,导致超出了范围,于是用JMP作为中转,才能实现功能。对于第三道题字符和数据的显示设计,要注意的是由于从键盘上接受的数据是以字符串形式的,所以对

21、于数字的统计需用其对应的ASCII码。对于第一个接受年月日并显示的设计,对年月日的接受还是以字符串的形式。 总的来说,这次课程设计让我复习了平时忽略的问题,更进一步掌握了DOS以及其他指令的功能调用。编程之前用框图有利于理清思路。对于编程思路,我还是坚持自顶向下的编程方法。这样可以思路清晰,知道已经做到了哪里。还有就是编程需要细心、耐心,或许编程的时候可能比较快,但调试的可能需要更多的时间、和耐心。对于调试的技巧我觉得对于找不出的问题,可以试着将程序分割成几个模块,单独编程进行调试。或许就能找出其中的问题。这次课程设计既动脑又动手,收获很多。五参考文献:1张荣标,机械工业出版社,微型计算机原理与接口技术 第二版2张荣标,微型计算机原理课程设计指导书

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

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