摘 要:本文阐述引入情境教学法进行汇编语言教学,克服高等职业教育计算机应用专业核心课程汇编语言不易掌握等不利因素,激发学生学习兴趣,使学生变被动学习为主动求知,提高汇编语言学习质量。
关键词:情境教学法;计算机;中断调用;指令
中图分类号:TP313 文献标识码:A DOI:10.3969/j.issn.1003-6970.2021.02.029
本文著录格式:陈乃战.情境教学法在高职计算机专业汇编语言教学中的运用[J].软件,2021,42(02):096-099
The Application of Situational Teaching Method in Assembly Language Teaching of Computer Major in Higher Vocational Colleges
CHEN Naizhan
(Fukuang Technician Institute, Fushun Liaoning 113000)
【Abstract】:This paper describes the introduction of situational teaching method for assembly language teaching, in order to overcome the disadvantageous factors such as assembly language, which is the core course of computer application major in higher vocational education, it is not easy to master, to stimulate students' interest in learning, to make students change passive learning into active learning, and to improve the quality of assembly language learning.
【Key words】:situational teaching method;computer;interrupt call;instruction
1 情境教学及其特点
情境教学是指教学过程中为达到既定的教学目标,从教学需要出发,在课堂上构建与教学内容相适应的具体情境,并将学生引入既定情境,成为课堂教学的主体,从而激发学生的情感和学习兴趣,引发学生共鸣,发挥主观能动性,帮助学生在愉快的教学氛围中以自主学习为主,高效准确的接受难以掌握的知识,达到在情境中获得知识,培养能力,培养团结协作精神目的的一种教学方式。
根据汇编语言的抽象、难学、原理性强、与计算机硬件紧密相关等特点,依据教材内容、高职学生特点,结合现实计算机应用实际,创设生动的主题情境,让学生受到主题情境的吸引,进入其中,在这个情境中体验知识递进式呈现并获得的过程,从而激发学生内心的参与及成功获得意识,让学生能够切实体验到理论知识和实际应用紧密联系的每个细节,从而有效地促进了学生个体的认知、概括、分析、判断、总结能力。情境教学具有以下特点:
(1)教师在情境教学中充当导演角色,成为整个教学的主导,学生成为课堂教学的主角参与到教师预先导演设定的问题情境中,情境教学所起的最重要的作用,就是能够把学生的注意力吸引过来。(2)教学所创设的情境主题明确、脉络清晰、环环相扣,与现实相关,学生由产生兴趣开始,在老师的引导下产生了进一步认知的动力,继而提高了学生的参与热情和求知欲望。(3)教学中情境的方式丰富多样,把握高职学生心理特点,切合实际的设定问题情境,会得到意想不到的效果。(4)在情境教学过程中,不仅激发了学生学习的兴趣,更重要的是主动参与学习的体验,克服被动学习的不足,养成主动求知的良好的学习习惯,打下基础。(5)情境教学使学生在学习的过程中、会不断发现新问题,然后通过老师引导,学生自身思考,解决问题,在认识-实践-在认识-实践的往复过程中,拓展到对知识的深层次的理解,进而取得更好的学习效果。(6)情境教学在提高学生理论联系实际能力的同时,在教师引导-学生分析-教师启发-学生拓展的过程中,潜移默化的培养了学生的创新能力。
2 汇编语言情境教学教学实例
2.1 设定情境,提出问题
由于汇编语言中的指令执行过程,看不见,摸不着,教材案例多为偏重理论,结合实际性不强,学生缺乏兴趣,更难听懂,真正消化掌握,因此在选择教学案例的时候一定要形象、生动、并且具有实用价值,由于汇编语言最强的优势是编写硬件控制程序,因此本例主题是优选能激发学生兴趣的的硬件设备的编程控制,并且将程序控制计算机过程看得见,听得到,所想即所得等设置问题情境,如本次选用:硬盘控制、显示器控制、CMOS芯片控制,键盘控制程序,并上机调试通过。学生扮演的是程序设计人员,教师提供书面四个模块的编程方法、教学目标、基本思路。由学生分析问题、解决问题,学生成为教学过程的主体,领衔主角,教师负责引导、示范、纠正、归纳总结成为整个教学过程的主导,领衔导演角色。
2.2 划分模块、适配分组、明确目标
根据同学自愿结合教师调配分为四个学习小组分别完成四个模块:(1)硬盘控制组;(2)显示器控制组;(3)CMOS芯片控制組;(4)键盘控制组。每组选出或教师根据学习情况指定一名能力较强的同学任组长。具体分配如下:
2.2.1 硬盘控制模块
实现:按键密码控制计算机硬盘系统引导功能。
(1)教学目标:编写一段程序判断按键密码,密码正确引导计算机系统,否则系统为保护状态。(密码为左SHIFT和左CTRL键)
(2)学生思路:在硬盘分区程序段中,从02A2H处开始有一段错误提示数据,可在此处放置控制程序,程序控制可运用int 16h的2号子功能检测键盘,判断对应键是否按下,int13 中断读写硬盘,也可用debug控制读写,下面提示的是DBR逻辑读写:
即相对0扇区
c>debug
-L CS:400 2 0 1
-E 05A1 00
-A CS:400 JMP 05A2
403 ^C
-A CS:5A2
CS:5A2 MOV AH,02
INT 16H
CMP AL,05
JNZ 05A2
JMP 022E
5AD NOP
5AE ^C
-W CS:400 2 0 1
-Q
INT 16H 2号子功能说明:AH=2,AL代表键盘状态
Ins C-lock N-lock S-lock Alt CTRL 左Shift 右Shift
(3)学生思考:
1)本例采用的是对硬盘DBR的控制,是硬盘的逻辑读写(相对0扇区),还可以采用MBR控制,即硬盘的物理读写(0面0道1扇区),安全性会更好,思路是利用int 13 中断的2、3号子功能,出口参数DX=0080,有兴趣的同学试试。
关于硬盘绝对读写(0面0道1扇区)的编程方法:
MOV AX,0201
MOV BX,200
MOV CX,1
MOV DX,0080
INT 13H
INT 3H
……
寄存器具體参数说明:
BX:偏移地址
AH:02 对磁盘绝对读 03对磁盘绝对写
AL:读写扇区数
CH:磁道号 CL:扇区号
DH:磁头号 DL:硬盘
2)硬盘DBR与MBR在编程方法上何异同?逻辑读写与物理读写有何区别?
2.2.2 显示器控制模块
(1)教学目标:编写显示器显示256种颜色的程序,循环程序设计。
(2)学生思路:定义颜色块长度设计单元——定义颜色块宽度设计单元——列坐标计数单元——每列颜色块的块数计数单元——设置显示方式为320x200——显示第一行颜色号——光标定位——显示末行颜色号——循环显示256种颜色,利用int10H中断编程实现显示控制,部分程序代码如下:
设置显示方式:
MOV AX,DATA
MOV DS,AX
MOV ES,AX
MOV AX,0013H
INT 10H
MOV DX,颜色首行颜色号偏移地址
MOV AH,9
INT 21H
MOV AH,2
MOV DX,1800H
INT 10H
MOV DX,颜色末行偏颜色号移地址
MOV AH,9
INT 21H
循环显示256种颜色,循环程序设计:
MOV AH,0CH
INT 10H
INC LONG
CMP LONG 30
JZ NEXT
……
(3)学生思考:1)65536种颜色显示如何实现,改变控制器参数?2)INT 10中断为显示中断,试一试其它图像编程如特殊图形等。3)文本显示方式和图形显示方式的区别?
2.2.3 CMOS控制模块
(1)教学目标:编写程序实现CMOS芯片的读写控制,如保存和恢复。
(2)CMOS芯片控制思路:CMOS芯片存储容量为64BYTE,以字节为单位读写,需循环64次,SI,AH为指针,具体内容和编程提示如下:
偏移地址 内容
00H--0DH 实时时钟信息
10H 软驱动器类型
12H 硬盘驱动器类型
14H 设备字节
15H--16H 基本存储器字
17H--18H 扩展存储器
19H--1AH 硬盘类型扩展字
2EH--2FH CMOS校验
方法: MOV AH,0
MOV AL,AH
OUT 70H,AL
IN AL,71H
MOV [SI],AL
INC SI
INC AH
……
MOV AL,[SI]
OUT 71H,AL
INC SI
INC AH
……
(3)学生思考:1)利用CMOS I/O尝试可编写该芯片的加密解密安全程序。2)CMOS芯片对于计算机自检有何作用?
2.2.4 键盘控制模块
(1)教学目标:用键盘弹奏音乐程序,分支程序设计。
(2)学生思路:所按键的键值转换为对应的频率,要实现用键盘的1-8键对应八个音符,编写演奏音乐的程序,首先要把简谱的音符一对一的翻译为相应的频率值:如表1、表2所示:
编程方法:取音符的频率值赋值,判断键盘按键,设置8255的PB口启动扬声器、设置8253的命令寄存器初始化通道2并且使8253以模式3进行工作,随后把频率值送8253的通道2——扬声器发声,关闭扬声器。编程提示如:设置程序出口——判断按键范围(1——8)——初始化通道,设置工作方式——输出频率低字节——输出频率高字节——启动扬声器——关闭扬声器,部分程序代码如下:
MOV DI ,SI
CMP DI,0
JE END_PLAY
MOV AH,1
INT 16H
……
OUT 42H,AL
MOV AL,AH
OUT 42H,AL
IN AL,61H
……
(3)学生思考:具体音符和频率快慢,因机器配置不同而不同,应反复微调参数测试几次,确定效果最佳,INT16中断判断按键1-8分别对应八个音符,同学们试一试,编写程序,按回車键自动播放一首歌曲,可选择中音区简单的曲子,如两只老虎等。
2.3 巡回观察、启发纠错、正确引导
在学生分析、设计、编码的过程中,教师通过观察学生的完成情况,及时发现学生出现的错误,进行启发、引导,引发学生思考,如寄存器的选择,存储器的选择、指令的选择优化,入口、出口参数的确定,程序结构顺序、分支、循环的设计,优化指令周期对执行效率的影响、调试程序设置断点的位置等,促进各组模块任务顺利完成、对于首先完成任务的小组,追加问题难度,分析解决各个模块思考题,多组完成后,相互交流编程方法、心得,从而完成对应的其它模块。
2.4 课程小结
通过四个综合实例的自主学习,每个同学都很好的充当程序员的角色,从阅读资料、程序分析、绘制流程图、编写程序、上机调试各个环节发挥的很好,各组组长充分发挥了带头作用,不仅带领自己小组完成了模块设计,还互相交流掌握了其它模块的设计方法,通过本次课的学习,大家应该发现这四个模块的异同点:
相同点:编程方法相同,这四个模块主要思路都是采用INT中断服务或I/O程序编程,其方法是:设置入口参数-出口参数-调用中断服务程序或寄存器I/O。
不同点:入口参数、出口参数不同、中断号不同,如模块一硬盘编程是INT 13中断,模块2显示器控制是INT 10中断,模块3 CMOS控制是利用I/O中断,模块4是键盘控制是利用INT16中断功能。在程序技巧上,分别用传送指令、I/O指令、比较指令、转移指令等设计了顺序、分支、循环程序,在程序调试过程中、合理设置断点、反复调试、优化指令周期、设计流程,程序更加简洁、高效、实用。
本次教学,同学们参与度好、积极性高、学习质量、效率均有所提高,通过教师主导,学生互动,把原来四节课甚至更多的教学任务,两节课就顺利完成了,这主要得益于学生充分发挥了主观能动性,和团结协作精神。通过本次学习,学生不仅初步掌握了中断服务程序的编程方法、优化原则,还更加熟练运用条件指令编写分支、及循环程序编码技巧,日后通过不断学习,一定会深入掌握指令系统及256级中断程序的编程方法及应用技巧,编写更多具有实用价值的程序。
3 结语
本次情境教学,学生充分感受到,“在乐中学,在学中做,团结协作”的良好氛围。学生在学习的过程中感受到由自主学习取得成功而获得的成就感,在这个过程中学生更好的将课本知识与解决实际问题有机的联系起来,充分发挥个人潜力,对培养学生主动分析问题,解决实际问题的能力,规避畏难情绪,由被动学习转化为主动学习,并由此形成好的学习习惯,进而激活学生求知、创新思维,达到事半功倍的学习效果,具有实际意义。