微机原理课程设计总结

微机原理课程设计总结

以前从没有学过关于汇编语言的知识,起初学起来感觉很有难度。当知道要做课程设计的时候心里面感觉有些害怕和担心, 担心自己不会或者做不好。但是当真的要做的时候也只好进自己作大的努力去做, 做到自己最好的。

我们在这个过程中有很多自己的感受,我想很多同学都会和我有一样的感受,那就是感觉汇编语言真的是很神奇,很有意思。我们从开始的担心和害怕渐渐变成了享受,享受着汇编带给我们的快乐。看着自己做出来的东西,心里面的感觉真的很好。虽然我们做的东西都还很简单,但是毕竟是我们自己亲手,呵呵,应该是自己亲闹做出来的。很有成就感。

我想微机原理课程设计和其他课程设计有共同的地方,那就是不仅加深和巩固了我们的课本知识,而且增强了我们自己动脑,自己动手的能力。但是我想他也有它的独特指出,那就是让我们进入一个神奇的世界,那就是编程。对于很多学过汇编或者其他的类似程序的同学来说,这不算新奇,但是对于我来说真的新奇,很有趣,也是我有更多的兴趣学习微机原理和其他的汇编。

微机原理与接口技术是一门很有趣的课程,任何一个计算机系统都是一个复杂的整体,学习计算机原理是要涉及到整体的每一部分。讨论某一部分原理时又要涉及到其它部分的工作原理。这样一来,不仅不能在短时间内较深入理解计算机的工作原理,而且也很难孤立地理解某一部分的工作原理。所以,在循序渐进的课堂教学过程中,我总是处于“学会了一些新知识,弄清了一些原来保留的问题,又出现了一些新问题”的循环中,直到课程结束时,才把保留的问题基本搞清楚。

学习该门课程知识时,其思维方法也和其它课程不同,该课程偏重于工程思维,具体地说,在了解了微处理器各种芯片的功能和外部特性以后,剩下额是如何将它们用于实际系统中,其创造性劳动在于如何用计算机的有关技术和厂家提供的各种芯片,设计实用的电路和系统,再配上相应的应用程序,完成各种实际应用项目。

这次实验并不是很难,主要的困难来自对程序的理解。功夫不负有心人,经过四个人的合作和努力,我们最后对实验的原理有了清晰的认识。虽然实验台上的很多模块单元没有用到,但是就系统功能来说,我觉得我们做的还是不错的。

这次课设却让我们对实验台有了足够的了解,让我们知道了实验台上各个模块的用法;而且它还让我们对自己动手写程序来控制实验台的运作有了一定的基础。虽然实验台只是一个小型的模拟平台,但是通过对它的学习和操作,我们对有关接口的知识将会有一个更广泛的认识,而且它对我们以后的学习也会有帮助的。

实验中个人的力量是不及群体的力量的,我们四个人分工合作,做事的效率高了很多。虽然有时候会为了一些细节争论不休,但最后得出的总是最好的结论。而且实验也教会我们在团队中要善于与人相处,与人共事,不要一个人解决所有问题。

总之,这次课程设计对于我们有很大的帮助,通过课程设计,我更加深入地理解了,微机原理课程上讲到的各种芯片的功能,以及引脚的作用,同时加深了对于主要芯片的应用的认识,同时在试验室的环境里熟悉了汇编程序的编写过程和运行过程,最后还提高了自己的动手能力。感谢老师的悉心指导。

对课程设计的建议

本次课程设计的三个实验相对都比较简单,而且经过老师的讲解以及实验书上的指导,几乎把我们要用到的程序和实验台电路的接线方法都告诉我们了,所以做起来很容易。但是做完实验,我们对实验台及其上面的各个模块还是不了解。对如何编程控制实验台上各个模块和芯片的运作也没有什么清晰的认识。如果老师对我们实验报告的要求再严格一点,也许同学们会更加自觉地去认真理解程序和实验思路。

希望老师根据试验室的环境布置一些可以让我们自己去设计的题目,并给我们更多的实验时间,这样也许能够激发更多同学的创新能力。老师可以多给我们讲一讲各类芯片的实际应用,这样可以让我们对各种芯片有一个更加贴切的感受。

 

第二篇:微机原理课程设计总结

微机原理课程设计总结

以前从没有学过关于汇编语言的知识,起初学起来感觉很有难度。当知道要做课程设计的时候心里面感觉有些害怕和担心, 担心自己不会或者做不好。但是当真的要做的时候也只好进自己作大的努力去做, 做到自己最好的。

我们在这个过程中有很多自己的感受,我想很多同学都会和我有一样的感受,那就是感觉汇编语言真的是很神奇,很有意思。我们从开始的担心和害怕渐渐变成了享受,享受着汇编带给我们的快乐。看着自己做出来的东西,心里面的感觉真的很好。虽然我们做的东西都还很简单,但是毕竟是我们自己亲手,呵呵,应该是自己亲闹做出来的。很有成就感。

我想微机原理课程设计和其他课程设计有共同的地方,那就是不仅加深和巩固了我们的课本知识,而且增强了我们自己动脑,自己动手的能力。但是我想他也有它的独特指出,那就是让我们进入一个神奇的世界,那就是编程。对于很多学过汇编或者其他的类似程序的同学来说,这不算新奇,但是对于我来说真的新奇,很有趣,也是我有更多的兴趣学习微机原理和其他的汇编。

《微机原理实验与课程设计指导书》,陆红伟编,中国电力出版社,20xx年《8086微型计算机组成、原理及接口》,顾滨,机械工业出版社,20xx 《微型计算机原理及应用》,吕淑萍等,哈尔滨工程大学出版社,20xx年《微型计算机技术及应用》,戴梅萼,清华大学出版社,20xx

本次课程设计的总结与体会

微机原理与接口技术是一门很有趣的课程,任何一个计算机系统都是一个复杂的整体,学习计算机原理是要涉及到整体的每一部分。讨论某一部分原理时又要涉及到其它部分的工作原理。这样一来,不仅不能在短时间内较深入理解计算机的工作原理,而且也很难孤立地理解某一部分的工作原理。所以,在循序渐进的课堂教学过程中,我总是处于“学会了一些新知识,弄清了一些原来保留的问题,又出现了一些新问题”的循环中,直到课程结束时,才把保留的问题基本搞清楚。 学习该门课程知识时,其思维方法也和其它课程不同,该课程偏重于工程思维,具体地说,在了解了微处理器各种芯片的功能和外部特性以后,剩下额是如何将它们用于实际系统中,其创造性劳动在于如何用计算机的有关技术和厂家提供的各种芯片,设计实用的电路和系统,再配上相应的应用程序,完成各种实际应用项目。

这次实验并不是很难,主要的困难来自对程序的理解。功夫不负有心人,经过四个人的合作和努力,我们最后对实验的原理有了清晰的认识。虽然实验台上的很多模块单元没有用到,但是就系统功能来说,我觉得我们做的还是不错的。 这次课设却让我们对实验台有了足够的了解,让我们知道了实验台上各个模块的用法;而且它还让我们对自己动手写程序来控制实验台的运作有了一定的基础。虽然实验台只是一个小型的模拟平台,但是通过对它的学习和操作,我们对有关接口的知识将会有一个更广泛的认识,而且它对我们以后的学习也会有帮助的。 实验中个人的力量是不及群体的力量的,我们四个人分工合作,做事的效率高了很多。虽然有时候会为了一些细节争论不休,但最后得出的总是最好的结论。而且实验也教会我们在团队中要善于与人相处,与人共事,不要一个人解决所有问题。

总之,这次课程设计对于我们有很大的帮助,通过课程设计,我更加深入地理解了,微机原理课程上讲到的各种芯片的功能,以及引脚的作用,同时加深了对于主要芯片的应用的认识,同时在试验室的环境里熟悉了汇编程序的编写过程和运行过程,最后还提高了自己的动手能力。感谢老师的悉心指导。

对课程设计的建议

本次课程设计的三个实验相对都比较简单,而且经过老师的讲解以及实验书上的指导,几乎把我们要用到的程序和实验台电路的接线方法都告诉我们了,所以做起来很容易。但是做完实验,我们对实验台及其上面的各个模块还是不了解。对如何编程控制实验台上各个模块和芯片的运作也没有什么清晰的认识。如果老师对我们实验报告的要求再严格一点,也许同学们会更加自觉地去认真理解程序和实验思路。

希望老师根据试验室的环境布置一些可以让我们自己去设计的题目,并给我们更多的实验时间,这样也许能够激发更多同学的创新能力。

老师可以多给我们讲一讲各类芯片的实际应用,这样可以让我们对各种芯片有一个更加贴切的感受。

 

第三篇:微机原理课程设计报告

微机原理课程设计

设计报告

姓名:    朱文斋       

班级:   自动化0902    

学号:   3090502040    

教师:    张荣标       

2012 年 15

                                                                                                                                                                                                                                                                                           一、目的:

      结合微型计算机原理课程的学习,进一步巩固已学的知识,同时针对计算机原理知识的具体应用,学会对系统中DOS和BIOS的使用。学会使用屏幕编辑程序——EDIT,弄懂汇编程序的上级过程以及如何运用DEBUG软件进行汇编程序的调试。

二、内容与要求:

1、字符串匹配设计

为掌握提示信息的设置方法及读取键入信息的方法,编写程序实现两个字符串比较,如相同则显示“MATCH”,否则显示“NO MATCH”。

2、从键盘输入数据并显示的设计

为掌握键盘接受数据的方法,并了解将键盘数据显示时必须转换为ASCII码的原理,编写程序,将键盘接受到的四位十六进制数据转换为等值的二进制数显示。

3、字符和数据的显示设计

为掌握字符和数据的显示方法。编写程序,先显示信息:INPUT STRING,THE END FLAG IS $,再接收字符。如为0-9,则计数器加一,并显示数据;如为非数字,则直接显示,但不计数。

4、将键盘输入的小写字母转换成大写字母的设计

为了解小写字母和大写字母在计算机内的表示方法,并学习如何进行转换,编写程序,接受键盘字符,并将其中的小写字母转变为大写字母,然后显示在屏幕上。

5、学生成绩名次表设计

为进一步熟悉排序方法,编写程序,将100以内的30个成绩存入首址为1000H的存储区中。1000H+i表示学号为i的学生成绩。编写程序使得在2000H开始的区域排出名次表,2000H+i为学号i的学生的名次。

三、示例程序

下面着重介绍程序5——学生成绩名次表设计:

流程图:

  主程序流程图                SCAN子函数程序流程图

程序代码及注释:

CRLF  MACRO                    ;宏定义,回车换行

      MOV  AH,02H

      MOV  DL,0DH

      INT  21H

      MOV  AH,02H

      MOV  DL,0AH

      INT  21H

ENDM

DATA    SEGMENT

STUNUM  EQU  30             ;学生数

MESS1   DB   'Please input 30 score:',0DH,0AH,'$'  ;提示信息

ERROR   DB   'Input error,try again',0DH,0AH,'$'  ;报错信息

MESS2   DB   'The order is:',0DH,0AH,'$'

EMARK   DB   ?              ;报错标志

        ORG  1000H          ;存放成绩地址

SCORE   DB   30 DUP(?)      ;成绩表

        ORG  2000H          ;存放名次地址

SEQU    DB   30 DUP(?)      ;名次表

DATA    ENDS

STACK   SEGMENT

STA     DW   32 DUP(?)

TOP     DW   ?

STACK   ENDS

CODE    SEGMENT

ASSUME  CS:CODE,DS:DATA,ES:DATA,SS:STACK

START:  MOV   AX,DATA

        MOV   DS,AX

        MOV   ES,AX

        MOV   SP,TOP          

        MOV   AH,09H              ;显示提示信息

        MOV   DX,OFFSET MESS1    

        INT   21H             

        MOV   SI,OFFSET SCORE     ;成绩表首址

        MOV   CX,STUNUM      

        MOV   EMARK,0             ;报错标志清0   

UUU:    CALL  GETNUM              ;调用子函数读取成绩

        CMP   EMARK,01H           ;判断是否出错

        JE    START               ;出错则重新开始

        MOV   [SI],DL             ;没出错则存入成绩

        INC   SI                  ;指向下一个成绩单元地址

        LOOP  UUU                 ;判断30个成绩是否读取完

        MOV   CX,STUNUM       

        MOV   DI,OFFSET SEQU      ;名次表首址

VVV:    CALL  SCAN                ;调用扫描子程序

        MOV   AL,STUNUM           ;学生总数

        SUB   AL,CL               ;计算名次

        INC   AL

        MOV   BX,DX               ;学号

        PUSH  AX                  ;将名次转换成压缩BCD码方便显示

        PUSH  BX

        PUSH  CX

        XOR   AH,AH

        MOV   BH,0AH

        DIV   BH

        MOV   CL,4

        SHL   AL,CL

        ADD   AL,AH

        MOV   DH,AL

        POP   CX

        POP   BX

        POP   AX

        MOV   [DI+BX],DH           ;存入名次    

        LOOP  VVV                  ;判断是否存完

        MOV   AH,09H               ;显示名次提示信息

        LEA   DX,MESS2       

        INT   21H

        MOV   CX,STUNUM       

        MOV   SI,OFFSET SEQU 

WWW:    MOV   AL,[SI]   

        CALL  DISPI                ;调用子函数显示名次   

        PUSH  DX           

        PUSH  AX         

        MOV   AH,02                ;显示空格

        MOV   DL,20H     

        INT   21H

        POP   AX        

        POP   DX           

        INC   SI                   ;指向名次表的下一个地址

        LOOP  WWW                  ;判断是否输出所有名次

        MOV   AH,4CH               ;返回DOS

        INT   21H

            

SCAN    PROC   NEAR                ;扫面子函数,每调用一遍,找出成绩表

;中最高成绩,记录其学号,并将此成绩

;清0

PUSH   CX                 

        MOV    CX,STUNUM    

        MOV    AL,00H             

        MOV    BX,OFFSET SCORE

        MOV    SI,BX             

CCC:    CMP    AL,[SI]           

        JAE    JJJ    

        MOV    AL,[SI]           

        MOV    DX,SI            

        SUB    DX,BX            

JJJ:    INC    SI                

        LOOP   CCC          

        ADD    BX,DX          

        MOV    BYTE PTR [BX],00H 

        POP    CX          

        RET

SCAN    ENDP

DISPI   PROC  NEAR                  ;显示子程序

        PUSH  CX

        MOV   BL,AL                 ;显示高4位

        MOV   DL,BL

        MOV   CL,04      

        ROL   DL,CL

        AND   DL,0FH

        CALL  DISPL

        MOV   DL,BL                 ;显示低4位

        AND   DL,0FH   

        CALL  DISPL

        POP   CX

        RET

DISPI   ENDP

DISPL   PROC  NEAR                 ;将名次转换成对应的ASCII码值并显示

        ADD   DL,30H    

        MOV   AH,02H

        INT   21H

        RET

        DISPL ENDP                

     

GETNUM  PROC   NEAR                ;读取成绩子函数

        PUSH   CX             

        XOR    DX,DX               ;清0,用于存放成绩

GGG:    MOV    AH,01H

        INT    21H                 ;键盘字符输入

        CMP    AL,0DH             

        JZ     RRR                 ;如果是回车则结束

        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,AH         

        ADD    DX,AX               ;紧接着将数据存在DX中低四位

        JMP    GGG                 ;跳转继续读取数据

ERR:    MOV    AH,09H              ;显示报错信息

        MOV    DX,OFFSET ERROR    

        INT    21H

        MOV    EMARK,01H           ;报错标志置1

RRR:    PUSH   DX

        CRLF                       ;回车换行

        POP    DX

        POP    CX

        RET               

GETNUM  ENDP

CODE    ENDS

        END    START

四、心得体会:

做过很多课程设计,但完成了微机原理的课程设计后,我才感觉这门还是真正需要些技术含量的。需要我们同学深入的去思考,去学习查资料,我在这一周的时间里收获也是很大的,对汇编语言由略知皮毛到能运用它独立做一些小程序。这种技能都是课堂上学不到的,但对未来却有很大的帮助。当我面对一个难题,从一筹莫展到逐渐清晰明朗,调试调试再调试,而后最终完成任务。只有亲身经历过,才能感受其中的艰辛与快乐。更重要的是我们对汇编有了更进一步的理解。有了实际应用的体会,知识更加的融会贯通了。不管是从知识上还是从思维方式上,我们都得到了很大的进步。下面便是我在这一星期的实践中遇到的问题以及解决的过程。望给予评价

第一天的任务便是熟悉编程环境,掌握编程的步骤,然后编写一个范例小程序。当天便遇到了问题,怎样正确运用DOS的各个功能调用,因为课堂上讲的关于这方面的知识都很不系统,只是勉强记住其对应的功能而却不知道实际运用的方法。然后我就对照着书上的例子和指导书上的范例程序,把各个功能都调试运行了一遍。并且着重学习了一下经常用到的几个功能,像09号功能、0A号功能等。其中我发现了以前编程只知道往上写却不知道起作用的语句都在调试的过程中慢慢清晰了。这让我狠狠地高兴了一把。这天的内容很基础也很简单,但其却是为接下来的任务做铺垫的。

 从第二天开始到第四天,我们便开始了课程设计的主体部分:设计程序。我们的任务共有十三个程序题,我们需从中选出5个进行汇编。刚开始时,我曾信誓旦旦的要把十三个全部做了,但后来发现工作量着实不小,于是我放弃了自己的想法,还是好好钻透五个程序,争取做得更好一点吧!我在设计过程中遇到了不少的麻烦,前面两天一直在做几个小程序,字符串匹配设计、从键盘输入数据并显示的设计、字符数据的显示设计、大小写字母转换的设计。其中做第一个时有一个很纠结的问题就是输入的第二个字符串如包含第一个字符串是,就算不一样还是会输出显示‘MATCH’。后来我请教了老师,知道需要对所有字符进行比较,第一个字符串的结束字符跟第二个字符串的对应字符比较近可以了。最后一天我便在编写一个稍微复杂一些的程序,便是上面这个程序:学生成绩名次表设计。因为我看到它几乎包含了前面程序里所有的要点,如:单字符、字符串的输入输出,回车换行实现合理的现实,寄存器保护,宏定义及子程序调用,循环嵌套等等。但是大程序自然会有很多麻烦的问题,以前上新课时我并没有仔细地研究过宏定义和子程序调用及功能调用,也没认真注意过条件跳转。程序大,跳转语句,功能调用语句的要求就很高。经过讨论和查资料,我知道了条件跳转的范围只能在-128---+127之间,而无条件跳转JMP却不受此约束。还有,回车是回到行首,换行是换到下一行的同列处;DOS功能调用的时候会改变寄存器AX的值,故需保护;利用堆栈保护(PUSH,POP)可实现寄存器释放再利用。后来又遇到了一个问题,为什么十六进制书转换为二进制显示字母部分为什么要减“37H”而不是“31H”。差不多就那么多问题吧。
   两天的课程设计结束后,我总有种意犹未尽的感觉,感觉学的知识还是不足,汇编语言的博大精深,我还是无法很清楚的把握,但我相信本次课程设计会给我带来更大的学习动力,让我在以后的学习中更有一些方向感吧!

参考文献:

1.张荣标,机械工业出版社,《微型计算机原理与接口技术 第二版》

2.张荣标,《微型计算机原理课程设计指导书》

3.李干林,李升等,北京大学出版社《微机原理及接口技术试验指导书》

相关推荐