1、周扬微机原理课程设计报告周扬微机原理课程设计报告江苏大学微机原理课程设计报告 姓名: 周扬 学院: 电气信息工程学院 班级: 自动化1202 学号: 3120502044 【实验目的】 结合微型计算机原理课程的学习,进一步巩固已学的知识,同时针对微型计算机原理知识的具体应用,学会对系统中DOS和BIOS的使用。学会使用对全屏幕编辑程序,弄懂汇编程序的上机过程以及如何运用DEBUG软件进行汇编程序的调试。【实验内容】1 字符串匹配设计为掌握提示信息的设置方法及读取键入信息的方法,编写程序实现两个字符串比较,如相同则显示“MATCH”,否则显示“NO MATCH”。2 从键盘输入数据并显示的设计为
2、掌握键盘接受数据的方法,并了解将键盘数据显示时必须转换为ASCII码的原理,编写程序,将键盘接受到的四位十六进制数据转换为等值的二进制数显示。 3.字符和数据的显示设计 先显示信息“INPUT STRING THE END FLAG IS $”再接受字符如为09则计数器加1并显示数据。如为非数字,则直接显示但不计数。 4. 学生成绩名次表设计为进一步熟悉排序方法,编写程序,将100以内的30个成绩存入首址为1000H的存储区中。1000H+i表示学号为i的学生成绩。编写程序使得在2000H开始的区域排出名次表,2000H+i为学号i的学生的名次。【课程设计题目详解】一 流程图设计 排学生成绩名
3、次表主程序参考流程 排学生成绩名次表SCAN子程序参考流程二 代码设计CRLF MACRO ;宏定义,回车换行 MOV AH,02H ;显示一位ASCLL码 MOV DL,0DH ;回车 INT 21H MOV AH,02H MOV DL,0AH ;换行 INT 21HENDMDATA SEGMENT STUNUM EQU 30 ;学生数 SHURUX DB PLEASE INPUT 30 SCORE,0DH,0AH,$ ;输入提示信息 ERROR DB INPUT ERROR,TRY AGAIN,0DH,0AH,$ ;错误提示信息 SHUCHU DB THE ORDER IS:,0DH,0A
4、H,$ ;输出提示信息 EMARK DB ? ;错误标志位 ORG 1000H ;存放成绩信息首址 SCORE DB 30 DUP(?) ;30个成绩 ORG 2000H ;存放名次信息地址 MC DB 30 DUP(?) ;名次表DATA ENDSSTACK SEGMENT ;设置堆栈段 STA DW 32 DUP(?) TOP DW ?STACK ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK START:MOV AX,DATA MOV DS,AX MOV ES,AX MOV SP,TOP ZY : MOV AH,09H ;
5、显示输入提示信息,显示字符串 MOV DX,OFFSET SHURUX INT 21H MOV SI,OFFSET SCORE ;成绩表首地址 MOV CX,STUNUM ;CX=30 MOV EMARK,0 ;错误标志位清零 SRCJ: CALL GETNUM ;调用子程序读成绩 CMP EMARK,01H ;判断是否出错 JE ZY ;出错则从新输入 MOV SI,DL ;DL为成绩,没出错即输入成绩 INC SI ;指向下一个成绩单元地址 LOOP SRCJ ;循环,将30个成绩读取完 MOV CX,STUNUM ;循环存30个同学的名次 MOV DI,OFFSET MC ;名次的首地址
6、FMC:CALL SCAN ;调用子程序,记住成绩最高的学号, ; 其成绩清零 MOV AL,STUNUM ;学生总数 SUB AL,CL INC AL ;计算名次 MOV BX,DX ;学号,即偏移地址 PUSH AX ;将名次转换成压缩BCD码方便显示 PUSH BX PUSH CX XOR AH,AH ;AH 清零 MOV BH,0AH ;BH=10 DIV BH ;除以10,取高位,商在AL,余数在AH MOV CL,4 SHL AL,CL ;左移4位 ADD AL,AH ;相加,AL即成绩的压缩BCD码 MOV DH,AL ;DH存放名次 POP CX POP BX POP AX M
7、OV DI+BX,DH ;存入名次 LOOP FMC ;循环存完30个名次 MOV AH,09H LEA DX,SHUCHU ;MOV DX OFFSET SHUCHU输出提示信息 INT 21H MOV CX,STUNUM MOV SI,OFFSET MC ;SI名次首地址 XSMC: MOV AL,SI ;AL放名次。这部分用于显示名次 CALL DISPP ;调用子程序显示名次,转化成ACSII,显示高低位 PUSH DX PUSH AX MOV AH,02 MOV DL,20H ;成绩之间显示空格 INT 21H POP AX POP DX INC SI ;指向名次表下一个地址 LOO
8、P XSMC ;循环显示30个名次 MOV AH,4CH ;返回DOS INT 21H SCAN PROC NEAR ;扫描子程序,每调用一遍,找出成绩表中最 ;高成绩,记录学号,将此成绩清零 PUSH CX MOV CX,STUNUM MOV AL,00H MOV BX,OFFSET SCORE MOV SI,BX ;成绩的偏移地址 BJCJ: CMP AL,SI JAE BJH ;AL=SI不交换 MOV AL,SI ;ALSI交换 MOV DX,SI ;取偏移地址 SUB DX,BX ;取学号 BJH : INC SI LOOP BJCJ ;循环与30个成绩比较,找出最高 ADD BX,
9、DX ;BX最高成绩的偏移地址 MOV BYTE PTR BX,00H ;最高成绩清零 POP CX RET SCAN ENDP DISPP PROC NEAR ;显示子程序 PUSH CX MOV BL,AL ;显示高四位 MOV DL,BL MOV CL,04 ROL DL,CL ;DL高四位转移到低四位 AND DL,0FH ;保留此时的低四位 CALL DISPL ;调用ASCII码显示子程序 MOV DL,BL ;显示低四位 AND DL,0FH CALL DISPL POP CX RET DISPP ENDP DISPL PROC NEAR ;将名次转换成对应ASCII显示 ADD
10、 DL,30H ;0-9,ASCII码30H-39H MOV AH,02H INT 21H RET DISPL ENDPGETNUM PROC NEAR ;读取成绩子程序 PUSH CX XOR DX,DX ;清零用于存放成绩 XHSR: MOV AH,01H INT 21H ;键盘输入字符 CMP AL,0DH JZ JIESU ;如果是回车就结束 SUB AL,30H JB ERR ;小于0则报错 CMP AL,09H JBE GETS ;如果在0-9之间则存成绩至DX JMP ERR ;否则报错 GETS:MOV CL,04 SHL DX,CL ;将DX中已有数值左移四位 XOR AH,
11、AH ADD DX,AX ;将数据存与DX低四位 JMP XHSR ;继续读数 ERR:MOV AH,09H ;显示报错信息 MOV DX,OFFSET ERROR INT 21H MOV EMARK,01H ;报错标志位置一 JIESU:PUSH DX CRLF ;回车换行 POP DX POP CX RETGETNUM ENDP CODE ENDS END START【实验截图】【心得体会】在短短一周的微机原理课程设计中,通过自己编程,摸索,做题,查资料,再加上同学和老师的帮助,我完成了老师布置的几个任务,学到了不少东西,感觉汇编语言还是在于多多练习,熟能生巧,这次课程设计获益良多。在这一
12、周里,应该说还是比较困难的,毕竟要求写的程序比较大,不是之前的小程序,所以一开始上手还是比较困难的。以前学到的都是课本上的基础知识,虽然也有上机课程,但是一学期就几节,而且编的只是一些小程序。而在这段时间,我们的主要任务就是编程,不仅要编出来,还要进行实际的操作运行得出正确的结果,这就让我们将平常所学的理论知识与实践相结合了起来,同时也让我们对DOS系统有了更进一步的了解。指导书上的13个程序,还是蛮多的,最开始的时候,感觉都好难,还是得从简单的做起,我认为基础打好了,才有利于写后面难的程序,所以我仔细研究了,前几个程序。特别是DOS功能调用,以前并没有用这么多,就是INT 20,结束就差不多
13、了。这次用的较多,字符输入输出,字符串的输入输出,回车换行等等,还得慢慢熟悉。基础掌握了差不多了,我就开始编写一个比较大的程序,所以我仔细写了,第九个排序成绩的程序,问题还是不少,最开始的就是一些小问题,当然最重要的就是逻辑问题,逻辑错了,程序怎么运行都不对。小问题比如0和O,编写有时候会写错,还有 n DUP(?)的对是,nDUP(?)就是错的,中间需要空格,等等都是一些小问题,这些都是因为平时没有练习的结果,多练习,这些小问题就越来越少了,当然最重要的还是逻辑问题,不能搞错。最让我头疼的就是成绩的输入,和排名的输出,汇编语言又没有数组,怎样输入输出高四位低四位,还有BCD码,ASCII码的转化等等,都需要慢慢想,还是比较困难的。 总的来讲收获颇丰,这不仅仅是一次编程,跟是一次让我们系统的训练,让我们对微机原理,汇编语言有了跟深的了解,唯一觉的不足的就是时间有点短,实际上就4天,让我们编程,要完成4到5个任务,比较急,还是希望时间能多一点。不管怎样,还是学到了很多,对我有很大的帮助。感谢老师的悉心指导。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1