“微机原理与应用”课程内容体系改革与实践

2021-12-05 03:29:46
新一代信息技术 2021年19期
关键词:汇编语言微机指令

彭 旷

(湖北大学 物理与电子科学学院,湖北 武汉 430062)

0 引言

“微机原理与应用”作为电子科学与技术、微电子科学与技术、光电信息科学与工程等电子类专业的专业核心课程,在掌握“电路理论”、“数字信号处理”、“模拟信号处理”等课程的基础上,可以让学生通过掌握中央处理器(central processing unit,简称CPU)的构成原理,在熟悉各个基本电路模块的基础上,了解汇编程序如何在各模块之间流通,进而掌握软件是如何在硬件电路的基础上运行的;在了解CPU组成原理基础上,通过对Intel 8086/8088汇编指令集的学习,让学生掌握汇编程序的语法和基础的汇编语言编程;最后通过CPU和外部电路的集成,帮助学生建立系统工程设计概念,为后续“单片机原理与应用”、“嵌入式系统原理与应用”等课程的学习奠定基础。因此,“微机原理与应用”作为承上启下的课程,在专业教育培养体系中占有非常重要的地位[1-9]。

在课堂上讲授课程内容之前,需要帮助学生对整个电子信息类课程的框架进行梳理,重点让学生了解各门课程之间的链接和递进关系,如通过对“数字信号处理”和“模拟信号处理”的学习,可以构建 CPU中的基本寄存器模块,对 C语言的学习,可以让学生对高级语言有了解,为“微机原理与应用”中汇编语言的学习奠定基础;同时,还应该对学生讲解该课程对后续课程学习、读研甚至工作从事相关专业方向的作用,如该门课程是第一次涉及到软硬件系统结合,该课程中的寄存器、总线等知识是后续进行嵌入式、微电子设计领域的基础,务必让学生在完全理解该门课程重要性的基础上,再开始对该课程进行内容方面的讲解,才能让学生有动力和兴趣进行学习,让教学效果事半功倍。

“微机原理与应用”从内容体系上大体可以分为微型计算机硬件结构和工作原理、汇编指令系统和程序设计以及 I/0和可编程接口芯片三个模块,由于不同的模块知识特点并不相同,而且知识点较为零碎,对于不同模块的知识应有针对性地进行教学调整。

1 微型计算机硬件结构和工作原理

此部分内容在“电路理论”、“数字信号处理”、“模拟信号处理”知识的基础上,介绍微型计算机的基本组成电路,引入寄存器、三态输出电路、总线结构和译码器等部件。基于冯诺依曼结构,通过这些部件构成控制器、存储器、运算器、输入和输出设备等CPU基本单元。这些单元采用控制总线、地址总线和数字总线联通,在CLK时序的作用下,对不同指令通过译码电路进行译码,有序地进行运转。这部分需要解决以下问题:如一条特定的汇编指令如何对应二进制数值;二进制数值汇编指令如何存储在PROM中;在6个固定周期的每个节拍汇编指令如何在各个模块间流通;各个模块的内部结构以及其在汇编指令运行时的作用是什么;汇编指令的指令字段和地址字段的设置和作用。该部分的重难点是务必要让学生对汇编指令的执行在硬件中的具体流程有一个整体的概念,而不是对每个知识点都是孤立的、分散的、不成系统的。

在基于比较简单的原型机讲授了CPU的基本组成和工作原理后,该部分课程内容还对逻辑地址和物理地址的转换、16位微处理器Intel 8086/8088的框架结构等进行讲解,以便后续对基于Intel 8086/8088汇编指令集进行汇编程序的教学。这部分的重点是让学生在掌握逻辑地址和物理地址转换规律的基础上,从Intel 8086/8088硬件的基础上,从CPU芯片设计的角度出发,理解逻辑地址的必要性,以便后续学生在汇编的学习中对多种寻址方式进行理解。

微型计算机硬件结构和工作原理这部分的内容,是教授“微机原理与应用”课程的重中之重,可以使学生了解各硬件单元的工作原理和 CPU的运转机制,对本课程后续内容和后续“单片机原理与应用”、“嵌入式系统原理与应用”等课程的学习具有十分重要的意义,因此教授过程中一定要循序渐进,力求学生理解,不可贪多求快。由于该部分内容知识点多,较为枯燥,因此在教学的过程中可以采取思维导图的方式对知识点进行梳理,力求对一条汇编指令的执行过程有一个整体的概念,掌握各模块的结构和在执行程序时发挥的作用,对重难点内容应该多打比方、举例子,并将有些知识引入到生活中可以接触到的电子产品上或者学生非常感兴趣的游戏中,还可以与相关企业进行合作教学,如新思科技的大学计划,将他们在设计芯片时用到的与本课程相关的技术联系起来,让教学更为生动、立体,提升学生兴趣。该理论部分课时数分配约为20课时。

2 汇编指令系统和程序设计

汇编语言作为能被计算机硬件直接识别和执行的语言,具有占用空间少、运行速度快等特点。由于汇编语言有较大的硬件相关性,对汇编语言的学习,可以较好地帮助学生深入理解和巩固前一部分学习过的微型计算机硬件结构等硬件相关知识,如对不同寻址方式的理解,就需要前一部分内容作基础。但相较于C语言等高级语言,汇编语言在编程和理解时要相对困难、复杂一些,因此在教学过程中,在让学生了解汇编指令用法的基础上,需要让学生了解很多汇编代码设计的作用、意义和区别,如数据传输类指令、加减运算指令、逻辑运算指令等,同时将其与硬件的相关模块结合起来进行讲解,如加法指令 ADD和带进位的加法指令ADC的区别在于ADC不仅需要将两个操作数进行相加,还要加上状态寄存器中进位状态标志位CF的值,这样CPU就可以处理大数据间由于要进行分段进行计算的问题,让加法运算具有普适性。

在学生掌握汇编程序的编程后,还需要对伪指令和系统调用等知识进行学习,其中伪指令作为汇编程序的附加信息,在编译过程中具有非常重要的作用,而分段则是将堆栈、数据和指令等部分进行划分,以便在存储器硬件上对不同部分的内容进行分隔存储,只有在正确使用伪指令的基础上,汇编程序才能正常地运行起来,该内容一定要让学生理解,切勿死记硬背。

由于汇编语言是由机器语言(二进制语言)构成,而C语言通过编译器编译后也会生成汇编语言,在讲授汇编语言的过程中,可以将机器语言、汇编语言、C语言、C++语言、JAVA语言以及Python语言这条软件主线进行梳理,让学生对软件的发展有一个较好的认知,明白汇编语言的特点。同时,在编程语言的教学过程中,可以将汇编语句和C语言联系起来进行教学,如汇编中的LOOP指令和C语言中循环语句的关系,这样可以让学生加深对汇编和C语言的理解,同时从熟悉的C语言到陌生的汇编语言之间在思维上有很好的过度,将不同科目所学的知识连贯起来,构成一个整体。

在“微机原理与应用”课程的实验教学阶段,采用 MASM 汇编软件进行编程,通过对简单程序、分支程序、循环程序和调用子程序的讲解和练习,让学生在编程的过程中进一步熟悉汇编语言的语法结构和编程思路,巩固理论课知识内容,具备阅读和理解汇编语言程序的能力,并可以编写具有一定复杂度的汇编程序。该理论和实验部分课时数分配约为28课时,重点在于实验部分的操练和讲解。

3 I/O接口和可编程接口芯片

在一个系统中,CPU主要负责运算和控制功能,但只有CPU肯定是不够的,还需要外围的存储器、传感器等期间相配合,才能完成一个较为实用的功能。学生在学习微型计算机硬件结构和工作原理、汇编指令系统和程序设计之后,对CPU内部的结构和控制已经有了一定的了解,在此基础上通过 I/O和可编程接口芯片的学习,即可实现CPU对外设的控制,进而可以搭建一些使用的系统。在讲授该部分内容的过程中,让学生在理解硬件结构和功能的基础上,掌握软硬件设计思路和设计方法,同时对中断和总线控制方式、对外设地址的寻址等内容要作为重难点进行讲解,力求学生完全理解和掌握,为后续“单片机原理与应用”、“嵌入式系统原理与应用”的课程学习打下基础。

由于该部分知识内容较难理解,仅仅只有理论教学是远远不够的,要基于MASM和Proteus仿真软件进行实验[10-13],在对汇编程序设计部分进行大量的实验训练后,学生对I/0和可编程接口芯片相关汇编语句的学习,基本都可较好地掌握,但是该部分的难点在于学生需要在自主搭建硬件系统的基础上,编写出符合硬件设计逻辑的汇编程序。在涉及到地址读写的软硬件综合案例中,在分析完软件程序和硬件结构的基础上,可以将IN和OUT汇编代码在CPU中进行译码、在每个节拍的不同动作结合 Proteus中不同端口的电平状态进行综合讲解,力求帮助学生将“微机原理与应用”课程中的三块内容融会贯通,并在此过程中培养学生软硬件系统综合设计能力,在过去4年的教学实践中,学生是可以通过最后的综合I/O设计实验,将该课程所有内容完全理解和掌握的。该理论和实验部分课时数分配约为24课时。

4 结论

通过对“微机原理与应用”内容在微型计算机硬件结构和工作原理、汇编指令系统和程序设计、I/0和可编程接口芯片三个方面的内容体系改革,梳理了课程内容主线,并对各部分知识内容的特点进行了分析,归纳出适应内容的教学方法,提升学生学习兴趣,提高学生的学习成绩,拓展学生的知识面,培养学生的创新设计能力,为后续专业课程的学习、电子设计竞赛、毕业设计和走向工作岗位打下坚实的基础。

在课程的考核方面,理论课部分进行闭卷考核,试卷题型主要有:选择题、填空题、问答题、程序阅读和填空题、编程题、接口类综合设计题;实验课部分进行编程和设计考核,根据学生的完成程度和熟练情况综合进行评分。根据电子科学与技术、微电子科学与技术、光电信息科学与工程专业学生在 2017-2020年的教学评教和反馈情况,学生对该课程的满意度和学生评教皆为优秀,认为通过该课程的学习收益较大,本课程的教学实践获得了理想效果。

猜你喜欢
汇编语言微机指令
听我指令:大催眠术
高等学校计算机专业课程教学改革实践——以汇编语言与接口技术课程为例
计算机教育(2020年5期)2020-07-24 08:52:50
Fuzzy Search for Multiple Chinese Keywords in Cloud Environment
汇编语言与C语言的混合程序设计技术研究
电子制作(2019年10期)2019-06-17 11:45:16
ARINC661显控指令快速验证方法
测控技术(2018年5期)2018-12-09 09:04:26
LED照明产品欧盟ErP指令要求解读
电子测试(2018年18期)2018-11-14 02:30:34
提高《汇编语言程序设计》教学效率的思考与实践
电力系统微机保护装置的抗干扰措施
新型微机可控顶控制系统原理及现状
坐标系旋转指令数控编程应用
机电信息(2014年27期)2014-02-27 15:53:56