一、引言
《微机原理》是电气信息类的专业基础课,通过学习该课程,建立起微型计算机系统的基本概念和结构;了解微处理器指令集和指令系统的概念、功能及机内编码格式,熟悉计算机系统内部指令的执行过程;掌握程序的基本概念和利用指令构成程序的方法,利用汇编语言助记符设计汇编语言程序的基本方法;掌握微型计算机接口的基本概念和接口的硬件设计方法。程序的执行过程一定要建立起存储程序的工作原理的概念、指令及程序在机器内部的表示方法。实验是对理论知识的运用和检验理论知识是否扎实,根据微机原理实验教学现状和存在的不足,探讨了提高微机原理实验教学的教学方法和实验内容设计。通过DEBUG来观察寄存器、存储器、标志位中的数据现状和修改后的变化,也可以观察地址的变化和地址单元的数据变化。程序的运行过程可以通过操作数的数据变化让学生理解寻址方式实现的过程和指令运行产生的作用。系统集成是利用所学的理论知识和已有技术,模块化的设计电路系统。以系统集成能力培养学生,学生可以根据需求将各子模块组成一个完整的电路系统,使整体性能更佳。
二、教学现状与不足
很多院校《微机原理》重理论教学,轻实验教学;理论学时长,实验学时较短。理论课堂上的相关知识不能及时安排实验进行验证和应用,出现了学生觉得理论抽象复杂、学习兴趣低、实验环节薄弱的现象。学生在实验课上根据实验指导书按部就班,只做验证性实验,做设计性实验时无从下手。在这种教学情况下,教师需要探讨多种可提高微机原理实验教学效果的方法。
三、实验教学方法和实验内容的改进
1.DEBUG的使用。微机原理的工作原理包括指令集机内表示、指令及程序的机内执行过程、存储程序原理、存储器及其管理、接口技术。掌握汇编语言程序的概念、设计与调试方法,从而建立起面向计算机的程序设计方法,这是今后面向对象的程序设计方法的基础。通过DEBUG来观察程序的运行过程,观察寄存器、存储器、标志位中数据现状和修改后的变化,用操作数的数据变化使学生理解寻址方式实现的过程和指令运行后产生的作用。
(1)DEBUG观察寄存器和存储器。微型计算机的寄存器有通用寄存器、变址寄存器、指针寄存器、段寄存器和标志寄存器[3]。DEBUG观察寄存器、标志位和存储器的数据现状与修改后的变化。①观察寄存器和存储器的数据。观察微型计算机的寄存器、标志位和存储器的数据,打开系统盘C,启动DEBUG.EXE,显示连接符“-”后可输入各种DEBUG命令。常用的DEBUG命令有A、D、E、G、P、R、T、U等,输入DEBUG命令后回车,可观察寄存器、标志位和存储器的数据。②修改寄存器和存储器的数据。修改寄存器和存储器的数据可以直接使用DEBUG命令修改数据,也可以通过执行指令进行修改数据。执行指令修改寄存器和存储器的数据时,需要编写汇编源程序,例如,给出一个汇编源程序
TEST.ASM。
DATA SEGMENT
SHU DB 00H,01H,02H,03H,04H,05H,06H,07H,
08H,09H,0AH,0BH,0CH,0DH,0EH,0FH
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
MOV BX,5;立即寻址
ADD BX,BX;寄存器寻址
MOV SI,[0001];直接寻址
MOV AX,[BX];寄存器间接寻址
MOV AX,[BX+4];寄存器相对寻址
MOV AX,[BX+SI];基址加变址寻址
MOV AX,[BX+SI+4];相对的基址和变址寻址
CODE ENDS
END START
图1 指令修改寄存器和存储器的数据
在MS-DOS下对汇编源程序TEST.ASM进行编译和链接,无语法错误和结构错误后得到可执行文件TEST.EXE,DEBUG调试可执行文件TEST.EXE。指令修改寄存器和存储器的数据如图1所示。由图1观察寄存器、标志位、存储器的现状和修改后的数据,使学生对微型计算机的寄存器、标志位、存储器、数据、地址有深入的认识,由抽象思维转变成看得见、有结果的实际操作。
(2)DEBUG观察寻址方式。通过DEBUG观察操作数的寻址方式,使用DEBUG调试TEST.EXE,执行指令后,由图1可观察操作数存放的位置和各种操作数寻址方式的实现过程。立即寻址是操作数包含在指令字节中,CPU在指令队列中直接取得立即数,指令执行速度快。寄存器寻址是操作数在指令中CPU内部寄存器中,可以减少指令码的长度,执行速度较快。存储器寻址是操作数在内存的数据区,指令给出操作数在内存中的地址信息,CPU可求出存放操作数的有效地址,执行速度慢。由图1可知AX、BX、SI、IP值的变化过程,根据AX、BX、SI、IP的数据变化,可以理解操作数存放的位置和各种操作数的寻址方式。
(3)DEBUG观察指令系统的作用。微型计算机的指令系统功能强大,由图1可知,不同的指令实现不同的功能,通过DEBUG观察源操作数和目的操作数在操作前后的数据变化来理解指令运行后产生的作用。
2.实验项目由浅入深,分层次教学。学生对知识的接受能力和应用能力不同,根据学生的差异进行不同程度的引导学习。接受知识能力弱的学生,指导学生完成验证性实验,得到实验结果以及实验现象才能通过实验课程;接受知识能力和应用能力强的学生,选做设计性实验,在已有的验证性实验的基础上,给出实验条件和实验现象,在未给出电路图和操作步骤的情况下,让学生自主设计电路、编程,得到实验现象,同时可以引导学生通过多种方法得到同一个实验现象,让学生明白为什么要这样做,教师的教学方法由“教”到“导”。
3.实验项目设计。实验项目的设计以系统集成能力培养学生为中心,学生根据需求将各子模块连接成一个整体性能高的电路系统。实验指导书的实验项目内容注重循序渐进,由验证性到设计性实验。综合性实验主要是对CPU与接口电路的应用,设计性实验是综合性实验的创新应用,是学生掌握微型计算机体系结构的表现,熟悉微处理器、存储器、输入/输出接口电路、系统总线之间的相互联系。理论课上介绍了8255、8259、8237、8253等接口芯片的接口技术应用[5]。实验与教学是紧密联系在一起的,实验项目内容围绕讲解的接口技术进行设计。以完成一个简易宠物定时喂食器的设计为例,具有的功能如下:通过键盘输入定时时间;数码管显示时间倒计时;定时时间到时,电子发声器发出响声;喂食器控制步进电机打开宠物食物储存器阀门,让食物下落到容器给宠物进食。此电路系统看似复杂,如果将此电路系统分解成若干个基础实验完成,那么就显得相对简单了。将所有的基础性实验进行整合,最终完成相对复杂的宠物定时喂食器设计,具体实验项目设计如下:①数码转换程序实验设计。实验的目的在于让学生掌握程序的设计方法以及DEBUG软件的使用方法。通过实验,学生可以掌握程序设计的编译环境的使用,编译、链接和执行的操作方法,能力强的学生还能进行分支程序结构、循环程序结构以及子程序结构设计。②键盘扫描及数码管显示程序设计。该实验目的在于让学生掌握使用8255芯片完成矩阵式键盘扫描以及数码管显示。第一个实验的学习内容可在第二个实验中的数码管显示部分程序得到应用。这样既学习了新的知识,又复习了已学的知识,更重要的是学生之前学到的知识得到了应用,增加了学生对实验的兴趣。③倒计时系统设计。该实验是在第二实验中得到进一步的完善,增加了8254定时器的使用。使用矩阵键盘输入一个时间,启动后以秒为单位倒计时显示。④电子发声器的设计。该实验是在定时器的实验上得到进一步的应用,使用定时器产生不同频率的方波信号,将方波信号送给蜂鸣器,蜂鸣器则发出有旋律的声音。⑤步进电机程序实验设计。实验中学生可利用8255芯片的I/O口,控制步进电机的运动时序,从而控制步进电机的运动方向和运动角度。⑥宠物定时喂食器综合实验设计。该实验是对前几次实验的一个整合,锻炼学生将使用模块整合成系统的能力。整个实验过程的设计采用由易到难、由基础到专业、由模块到系统的思想。每次实验都能完成一个小“作品”,实验的结果可以激发学生对实验的兴趣。
4.实验考核方式改革。传统的实验考察方式,如通过签名考查学生的出勤率和实验完成报告,最终给出实验成绩,使学生的实验课程都会通过,这些做法缺乏刺激学生积极实验的动力,因此需要对传统的实验考核方式进行改进,应当注重实验操作过程,而不是片面的通过实验报告来评定学生的实验成绩。实验报告数据存在抄袭的现象,实验课堂上学生的动手操作能力是不可复制的,根据实验操作过程和实验结果及现象来给学生评分,做到实验成绩公平、公正,令学生信服。
四、总结
通过4年的实验教学实践,对比传统盲目实验只看实验结果及现象的教学方法,学生使用DEBUG查看寄存器、存储器、标志位的数据变化,观察操作数寻址方式实现的过程和指令运行后所产生的作用,使学生对微机原理产生学习兴趣,掌握了微机原理的实质、寻址方式和指令的作用。对比传统的“依葫芦画瓢”的实验指导书教法,以系统集成能力的方法培养学生,充分调动学生的积极性,提高学生的动手能力,使学生学会自主设计程序、调试程序、发现问题和解决问题。改进的教学方法满足了不同学生的需求,激发了大部分学生的自主创新能力,实验教学效果良好。