当前位置:首页 期刊杂志

“汇编语言程序设计”课程的教学内容与实践方法的探讨

时间:2024-05-04

马力妮 赵 刚 夏红科

文章编号:1672-5913(2009)10-0106-02

摘要:“汇编语言程序设计”课程是计算机及相关专业的专业基础课,多年来随着计算机硬件和软件的发展,汇编语言从DOS汇编、80X86汇编到Win32汇编经历了较大的变化。在教学过程中如何准确的制定教学计划、确定教学内容、较好地掌握教学方法是该课程在教学过程中的关键问题。本文根据作者长期的教学经验和实践过程对“汇编语言程序设计”课程的教学内容和实践方法等方面进行了探讨。

关键词:汇编语言;教学内容;实践方法

中图分类号:G642

文献标识码:B

1引言

“汇编语言程序设计”课程是高等院校计算机及相关专业必修的一门课程,尤其是对计算机专业来说,它是一门靠近机器的语言课程,该语言在时间和空间上具有较高的执行效率,对于训练学生加深对操纵硬件的方法的理解、掌握系统底层程序设计技术、程序调试技术以及程序的代码分析都有着不可替代的作用。目前,大多数“汇编语言程序设计”的教学内容主要是在实模式下的16位/32位汇编指令和程序设计方法,然而,当前保护模式下的Win32汇编得到了广泛的应用,因此,应当合理的调整教学内容,使本门课程更适应当前的应用环境。同时,案例教学是当前教学法研究的主要探讨的问题,如何将复杂的教学内容案例化,是解决在教学过程中汇编语言复杂难学问题的关键。

2汇编语言教学内容的分析

2.1汇编语言的应用情况

汇编语言是与机器语言一一对应的语言,因此,是培养学生了解和直接使用计算机硬件资源的语言,多年来汇编语言一直是学习和理解其他高级语言的基础,在教学过程中也是计算机组成原理、微机原理与接口技术、操作系统、接口与通信技术和计算机控制技术等课程的前导课程,在计算机与相关学科课程设置中起着承上启下的作用。

在实际应用中汇编语言也是有广泛的应用需求,例如:与硬件有关的嵌入式系统的底层设计、操作系统的核心部分设计、实时控制系统的软件设计、接口电路的初始化程序,外部设备的底层驱动程序以及复杂算法的优化等,汇编语言具有执行速度快占用内存空间小的特点。值得说明的是汇编语言可移植性差,不同的应用环境采用的汇编语言也不同,但基本原理是相同的,汇编语法规则和指令格式基本相同,因此,目前大部分高校在汇编语言程序设计课程的内容设置上仍以80X86的实模式为教学的主要内容。

随着计算机技术的发展,微机的操作系统由在DOS系统变为Windows系统,在Windows系统下的汇编有较大的变化,Win32汇编的应用领域也非常广泛,例如:在Windows下的系统分析、代码优化、系统漏洞和病毒分析等,通过逆向工程技术可以还原大型软件系统底层逻辑以及顶层架构,通过反汇编的代码可以加深对Windows底层理解,对高级语言的系统调试通过反汇编解决底层bug的能力,汇编语言仍然是不可替代的。因此,为了能够适应当前计算机应用环境,汇编语言程序设计的教学内容有必然要引入Win32汇编。

2.280X86的三种工作模式

Windows操作系统是一个多任务的操作系统,可以同时处理多个程序。该系统微处理器有3种工作模式:实模式、保护模式和虚拟86模式,目前汇编语言程序设计课程主要介绍在实模式下的汇编程序设计,32位指令也是在实模式下,因此在实模式下的80X86处理器就相当于一个快速的8086处理器。保护模式是80386以上处理器的主要工作模式。在此方式下,可以寻址4GB的地址空间,同时,保护模式提供了先进的多任务、内存分页管理和优先级保护等机制。虚拟86模式可以在保护模式的多任务条件下进行16位与32位任务的切换,支持内存分页管理和优先级,内存的寻址方式和8086相同,可以寻址1 MB的空间。由此可知这三种工作模式具有一定的联系。

三种工作模式的存储结构存在较大差异,实模式是80386以上处理器工作的基础,真正能发挥Win32作用的是保护模式,保护模式是当前个人计算机的主要工作模式,因此,汇编语言程序设计课程的内容应在原来的实模式下的汇编增加保护模式的Win32汇编,但是Win32汇编结构具有一定的难度,可以根据学生的掌握情况适当增减其内容。

3实模式32位汇编与保护模式的Win32汇编的主要区别

3.1程序架构的区别

实模式汇编程序是将程序分成若干个段,如:数据段、代码段、堆栈段、附加段等段的内存模式,每个段的最大存储空间为64K,段与段之间可以重叠、部分重叠、邻接和分离。Win32程序是运行在保护模式下的,Windows操作系统把每一个Win32应用程序放到分开的虚拟地址空间中去运行,Win32程序只有一种内存模式,即FLAT模式,没有64K的段大小限制,所有的Win32的应用程序运行在一个连续、平坦的4GB空间中。由于Win32的汇编程序不用和段寄存器打交道,可以用任意的段寄存器寻址任意的地址空间,因此,保护模式的Win32汇编比实模式32位汇编在程序架构上更简捷方便。

3.2输入/输出的方法

在实模式汇编程序是通过BIOS和DOS中断完成输入/输出操作的,而保护模式的Win32汇编的输入/输出操作是调用Windows的API函数,一般要包括三个关键的动态连接库:Kernel32.dll(系统服务功能)、Gdi32.dll(图形设备接口)、User32.dll(用户接口服务),从而提供了Win32 API 的核心技术。这样使得程序员可以像使用高级语言调用库函数一样方便的使用API函数,完成很多功能。但是,虽然 Windows提供了大量的API函数,需要使用者深入的了解和掌握消息、句柄、窗口和API函数的使用方法,这部分内容实际上是“Windows程序设计”课程的主要内容,如果“Windows程序设计”课程安排在“汇编语言程序设计”课程之前,那么,保护模式的Win32汇编将更容易理解。

4汇编语言案例教学方法的思路

案例教学法是教师利用与教学内容密切相关的实际案例来解决教学中的存在的问题。通过对汇编语言程序设计课程的分析,本门课程主要存在的问题是:授课学时少教学内容多,教学内容复杂,尤其是增加了Win32汇编,因此,教学方法的改革是非常必要的。

4.1课堂教学内容和方法的改革

课程内容的设置主要完成如下部分,基础部分:微型计算机的CPU结构,存储器的组织方式,80X86的三种工作模式;80X86的寻址方式;以16位指令为基础,结合80386以上的32位指令,指令的重点在常用指令(包括32位指令),应彻底改变面面俱到的大量指令的堆砌。程序设计部分:该部分应该侧重于汇编程序的特点,切忌用高级语言的思路讲汇编语言,要注意突出汇编语言的是底层语言的特点。输入输出部分:应包括3部分,DOS、BIOS和Win32的接口程序的应用,汇编的底层概念主要体现在输入输出中断服务程序的设计和调用,虽然微机目前是Windows操作系统,DOS、BIOS的调用仍然有重要的意义和应用价值,如果只介绍Win32的接口程序,就失去了汇编语言的底层的意义。应用部分:主要是C/C++与汇编语言的混合编程和Win32汇编的程序设计,该部分内容应考虑实际应用的案例使学生充分体会汇编的魅力。

4.2实践环节的建设

将最新的技术体现在实践教学中,在教学过程中注重实践能力和创新能力的培养,需要我们重视对实验实践环节的建设。

在实践教学过程中我们编写了具有一定应用价值的实验案例指导书,任课教师将科研成果移植到教学实验中,实验案例包括:语法案例、经典案例和综合案例等。将教学内容通过实验案例在课堂上和实验中讲给学生,将复杂的教学内容实例化,让学生真切的体会到汇编的实用价值。在实验过程中采用Win32的编译系统:RadASM + MASM32,调试工具为Code View,该系统使用调试方便,为后续的继续学习和使用打下基础。

5结束语

汇编语言程序设计课程是计算机及相关专业基础课程,汇编语言具有的应用价值是高级语言不可相比的,在教学过程中教学内容的合理安排、案例的设计、实验方法与实验工具的确定是课程改革的关键,案例教学模式是提高学生对课程的理解能力、动手能力和创新能力最好的教学模式。

参考文献:

[l] 李未. 提高教育质量,培养创新人才[J]. 计算机教育,2008(1).

[2] 马力妮.80X86汇编语言程序设计[M]. 北京:机械工业出版社,2004.

[3] 赵树升,杨建军.DOS/Windows汇编语言程序设计教程[M]. 北京:清华大学出版社,2005.

[4] 严义,包健,周尉. Win32汇编语言程序设计教程[M]. 北京:机械工业出版社,2007.

[5] Intel Corporation. IA232 Intel Architecture Software Developers Manual Vol.3: System Programming Guide[M].[S.1.]: [s.n.],2004.

[6] Microsoft Corporation. MSDN Library [M]. [S.1.]:[s.n.],2005.

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!