汇编语言教学方法初探

2022-09-11

汇编语言既体现了软件编制的程序设计思想, 又提供了对微机硬件设备的驱动和控制方法。所以说, 汇编语言是连接应用中软件和硬件的一座桥梁。

采用“工具教学”、“类比教学”、“知识点互动”相结合的教学方法, 借助工具软件, 实施案例教学, 通过与高级语言的类比, 让学生从模块化程序设计的角度深入了解汇编语言的原理。

1 工具教学

“工具”是指D e b u g调试工具。下面介绍几点教学实践的内容。

1.1 指令系统和寻址方式教学

汇编指令是控制程序执行的命令, 通常写在程序代码段中。指令执行时要注意指令物理地址CS:IP的内容变化, 其中CS:IP的内容变化主要体现在是否跨段, 如果跨段则CS:IP的内容都改变, 否则只改变IP的内容。寻址方式是寻找操作数和指令物理地址的方式。操作数所在的位置无非是寄存器、存储器、指令、端口。使用D e b u g命令A把指令写入内存, 用T命令单步执行, R命令显示修改寄存器的内容, D命令显示存储器的内容并查看结果, u命令实现反汇编后可以查看到指令C S:I P中的具体地址值。

1.2 变量和寄存器教学

变量是数据存储单元的名字, 即数据存放地址的符号表示, 存储单元又是分段使用的, 所以变量具有段属性、偏移属性、类型属性。寄存器是一小块存储单元, 存在于C P U中。使用Debug命令A可以开辟一块内存单元, 数据定义伪指令 (D B、D W、D D等) 用于定义变量, D命令用于查看变量所在的存储单元内容, 用R命令可以查看寄存器的内容, 用T命令可以一边单步执行一边查看各个段寄存器内容。

“工具教学”法中, 使用D e b u g工具调试每个实例、每条指令, 让学生, 所见即所得。这样既克服了汇编语言的枯燥性, 又培养了学生的实际动手能力。

2 类比教学

“类比教学”是把汇编语言和高级语言 (例如C语言) 类比地进行教学。汇编语言是模块化程序设计语言, 它遵循的是模块化程序设计思想, 有语法、语句、控制结构、程序模块, 与模块化高级语言相比, 仅仅是定义方法不同, 使用的标识符不同, 应用范围的侧重点不同而已。

(1) 模块化高级语言, 有顺序、分支、循环三种控制结构, 有函数、过程、子程序功能模块等;同样汇编语言也有, 而且思维方式都是一样的, 区别仅在于实现的方式不同, 处理数据的类型和范围不同。在子程序中, 要注意参数的作用域问题, 要充分理解P U S H与P O P指令在现场的保护与恢复中的应用。

(2) 汇编语言是低级语言, 它和高级语言都是编程工具, 都可以解决一些同样问题。在汇编语言程序设计环节的教学中, 采用举例教学法, 同一个程序先用同学们所熟悉的高级语言编写出来, 然后再使用汇编语言编写, 同时比较汇编语言与高级语言的异同, 这样可以一举两得。

(3) 高级C语言中, 一个完整的程序有且仅有一个主函数Main () , 主函数Main () 的完整定义形式如下:

程序总是从Main () 函数开始执行, 遇到主函数Main () 中的return语句或最后的}结束。同样, 汇编语言程序中只有一个有E N D[标号]语句, 程序总是从END[标号]语句中的标号处开始执行, 遇到END[标号]语句结束。执行完毕后, 都返回到系统提示符下。

高校中的每个专业都有它的知识体系、思维结构, 课程与课程之间都是有联系的, 不可能孤立存在。作为教师不仅要教好自己的课程, 同时也应注重课程之间的承上启下关系, 类比教学方法是这一理念的体现。

3 知识点互动

汇编语言中, 对中断技术的理解和应用既是重点也是难点, 中断知识的掌握深度, 体现了对汇编语言的理解深度。中断是CPU中止正在执行的程序而转去处理特殊事件的操作过程。对软件中断而言, INT指令调用的是中断服务程序, 查找的是中断向量, 即中断服务程序的入口地址。8 0 X 8 6中断系统共处理256种类型的中断, 类型号为00~0FFH, 入口地址范围为0000~3FFH, 形成中断向量表。

下面以DOS中断调用为例具体讲述中断知识点的教学实践过程。

(1) DOS中断是常用的而且具有代表性的一类中断, 调用方法是I N T N。当N为21H号时, 即INT 21H, 调用的是DOS系统功能;21H号功能下又具有多种子功能, 子功能号范围是从00H—0FFH共256个, 例如5号子功能调用形式如下:

其中:21H号中断的5号子功能是把DL中的字符输出到打印机。DOS中断调用中, 与c语言的函数调用有相似之处。2 1 H中断, 相当于—个函数库, 5号子功能相当于该函数库中的一个库函数, 21H号中断的5号子功能调用, 相当于c程序中调用了系统库中的一个子函数。例如:

这里, fabs是函数名, 函数功能是求一个数的绝对值, 需要输入的参数是x。那么在前面的中断调用中, 21H相当于函数库名, 05H相当于库中子函数名, MOV DL, char仅仅是为中断函数调用初始化输入参数而已。不同之处在于c语言系统中, 分别用字符串来定义函数库名和子函数名, 而汇编语言却用数字。

汇编语言采用数字作为函数库名, 目的是容易计算中断向量, 形成中断向量表, 快速执行中断服务。函数库本身包含许多子函数, 子函数既可有各自的名称, 也可有各自的编号, 只是编号不同功能就不同, 所以中断服务的中断子功能号, 可以看作函数名称, 只不过用的是数字编号而已。

4 结语

教学是一门艺术, 它是教师的创造性、能动性、表演才能和科学水平的综合体现, 它的作用就是要将教学对象的内在积极性与潜能充分发挥出来, 从而达到最佳的教学效果。学习汇编语言既需要具备计算机的硬件知识, 同时还需要比较扎实的高级语言编程基础, 利用学生学过的高级语言知识, 去学习、理解汇编语言程序设计技术, 不失为一条捷径。

摘要:汇编语言是计算机能够提供给用户的最快而又最有效的语言。本文着重论述了“工具教学”、“类比教学”、“知识点互动”三种教学方法在汇编语言教学中的一些探索。

关键词:汇编语言,工具教学,类比教学,知识点互动

参考文献

[1] 范圣仁.结构化汇编语言程序设计[M].北京:学苑出版社出版, 1993.

[2] 沈军.程序设计方法解析[M].清华大学出版社, 2004.

[3] 谭浩强.C程序设计[M].清华大学出版社, 2002.

[4] 王元珍, 等.IBM—PC宏汇编语言程序设计[M].武汉华中理工大学出版社, 1996.

[5] 葛如风.实用汇编语言工具库8086/8088/80x86.南京:南京大学出版社, 1990.

上一篇:深水浅覆盖层凸岩钢围堰的施工技术下一篇:海水晒盐生产中盐田工艺探究