汇编语言教案.docx
- 文档编号:4310796
- 上传时间:2022-11-29
- 格式:DOCX
- 页数:16
- 大小:21.25KB
汇编语言教案.docx
《汇编语言教案.docx》由会员分享,可在线阅读,更多相关《汇编语言教案.docx(16页珍藏版)》请在冰豆网上搜索。
汇编语言教案
《汇编语言》教案
课程类别:
专业基础课
课程性质:
必修
开课专业及年级:
计算机科学与技术专业,大二
课程教学总学时数:
56
学时分配:
课堂讲授40学时,实验16学时
教材名称:
IBM-PC汇编语言程序设计(第2版),沈美明温冬婵编著,清华大学出版社
考核方式:
笔试80%,实验10%,平时10%
第1周第1次课
基础知识(2个学时)
教学目的及要求:
1.建立二进制信息的概念;2.掌握各种数制间的变换方法;3.掌握补码的概念、原理和运算规律;4、掌握几种基本的逻辑运算
教学内容提要:
1.0汇编语言与高级语言的区别及其应用场合
1.1数制
1.2数制之间的转换
1.3算术运算和逻辑运算
1.4数和字符的表示
教学重点与难点:
(1)理解不同进位记数制可以表达同一个数,如同一个人可以有很多名字一样。
理解计算机系统使用的数据都是二进制形式,但是人类所习惯的数据表达方式是十进制形式。
(2)关于数制之间的转换重点掌握十进制数与二进制数间的转换,二进制与八进制、十六进制间的相互转换,主要要求对整数的转换熟练,小数转换掌握方法即可。
(3)理解二进制数真值与二进制编码之间的概念区别,掌握真值与原码、补码间的相互转换。
(4)理解原码符号与补码符号间质的区别
(5)掌握变反加1方法,并深刻理解它的各种运用场合
讨论问题:
(1)二进制数的真值与编码间的区别是什么?
(2)为什么在计算机系统中需要使用编码而不能直接使用真值?
(3)原码与补码的符号间有什么样的区别?
(4)变反加1有哪些应用场合?
怎样解释它的应用原理?
教学手段:
讲授为主,讨论为辅,采用多媒体辅助教学
-------------------------------------------------------------------------------------------------------
第1周第2次课
80x86计算机组织(2个学时)
教学目的及要求:
1.了解计算机系统的基本结构;2.了解计算机系统的基本工作原理;3.理解在8086/8088系统中,逻辑地址与物理地址间的相互联系和转换机制;4.准确理解8086/8088CPU中各寄存器的基本功能;5.准确理解标志寄存器中各标志位的含义以及实用价值;6.理解内存的编址方式,数据在内存中的存放形式,理解内存中段的组织形式以及各个段的含义;7掌握实模式下存储器寻址方法,了解保护模式存储器寻址方法;8.理解外部设备的管理方法。
教学内容提要:
2.180x86处理器计算机系统
2.2基于微处理器的计算机系统构成
2.2.1硬件
2.2.2软件
2.3中央处理机
2.3.1中央处理机CPU的组成
2.3.280x86寄存器组
2.4存储器
2.4.1存储单元的地址和内容
2.4.2实模式存储器寻址
2.4.3保护式存储器寻址
2.5外部设备
教学重点与难点:
(1)理解逻辑地址与物理地址间的关联以及转换机制
(2)建立内存的分段管理概念,理解四种段类型的含义
(3)理解标志寄存器中每个标志位的确切含义、实用价值,特别注意CF、OF这两个理解困难的标志位
(4)理解标志位是否有意义与人对数据的具体解释有关,这是一个容易引起困惑的问题
讨论问题:
为什么在CPU内部不能直接使用物理地址?
8086系统存储器为什么要分段,如何分段?
物理地址如何形成?
教学手段:
讲授为主,讨论为辅,采用多媒体辅助教学
-------------------------------------------------------------------------------------------------------
第2周第1次课
第3章80x86的指令系统和寻址方式(8学时)(第一部分)
教学目的及要求:
了解8086/8088机器指令的构成;2.准确理解8086/8088CPU每种寻址方式的确切含义;3.了解程序占用空间和执行时间的概念。
教学内容提要:
3.180x86的寻址方式
3.1.1与数据有关的寻址方式
3.1.2与转移地址有关的寻址方式
3.2程序占有的空间和执行时间
教学重点与难点:
理解各种寻址方式的含义、用途,特别是存储器寻址中的几种方式。
注意理解立即数寻址与存储器直接寻址的区别;寄存器寻址与寄存器间接寻址的区别;
段内寻址与短间寻址的区别;
讨论问题:
寻址方式的本质是什么?
为什么会出现多种寻址方式?
立即数寻址与存储器寻址有什么重要的区别?
二者有没有相似的地方?
数据寻址和跳转指令的寻址的区别?
教学手段:
讲授为主,讨论为辅,采用多媒体辅助教学
-------------------------------------------------------------------------------------------------------
第2周第2次课
第3章80x86的指令系统和寻址方式(8学时)第二部分
教学目的及要求:
1.准确理解指令系统中部分指令的含义、用途、执行过程、标志位解释,以及使用时需要注意的问题;2掌握调试工具DEBUG的基本使用方法
教学内容提要:
3.380x86的指令系统
3.3.1数据传送指令
3.3.2算术指令(第一部分)
教学重点与难点:
(1)理解指令的各种分类方法,部分指令的含义、用途、基本时序过程、对标志位的解释,注意几种地址装入指令的区别,避免混淆;
(2)着重理解指令构成中的隐含操作数、隐含寻址方式,理解隐含寻址与非隐含寻址在控制上的区别;
(3)理解堆栈的基本使用方法,区分栈底、栈顶、堆栈指针初始位置等容易混淆的概念;(4)算术指令对CF、OF标志的影响情况;(5)理解DEBUG工具的基本使用方法,包括DEBUG中几种基本命令的使用方法以及所显示信息的含义。
讨论问题:
隐含寻址与显示操作数的寻址有何区别?
LEA和LDS指令各自的功能是什么?
二者之间有何质的区别?
栈顶、栈底分别由何种器件指示?
SP、SS中的内容与栈顶、栈底有什么样的区别、联系?
在机器上调试一个小的程序片段,让同学们按步骤分析、解释当前使用的DEBUG命令、所显示的内容等。
教学手段:
讲授为主,讨论为辅,采用多媒体辅助教学
-------------------------------------------------------------------------------------------------------
第3周第1次课
第3章80x86的指令系统和寻址方式(8学时)第三部分
教学目的及要求:
1.准确理解指令系统中部分指令的含义、用途、执行过程、标志位解释,以及使用时需要注意的问题;2.根据课件中对指令执行的描述体会逻辑指令和字符串处理指令的执行过程。
教学内容提要:
3.3.2算术指令(第二部分)
3.3.3逻辑指令
3.3.4串处理指令(第一部分)
教学重点与难点:
(1)着重理解指令构成中的隐含操作数、隐含寻址方式,理解隐含寻址与非隐含寻址在控制上的区别;
(2)理解各种寻址方式的含义、用途,特别是存储器寻址中的几种方式,注意理解立即数寻址与存储器寻址的区别;(3)理解部分指令的含义、用途、对标志位的解释;(4)串处理指令的特殊性及一般用法;(5)理解DEBUG工具的基本使用方法,包括DEBUG中几种基本命令的使用方法以及所显示信息的含义。
讨论问题:
(1)多字或多字节加法是如何完成的?
先对低字节进行运算还是高字节?
多字或多字节减法又是怎样完成的?
(2)NEG指令的操作数可以解释为无符号数吗?
CF标志是如何判断的?
(3)CMP指令与TEST指令的功能分别是什么?
在程序设计中,它们主要针对什么用途?
(4)对于逻辑左移指令OF标志什么情况下才有意义?
对于算术右移指令OF标志有什么样的特征?
对于各种循环移位指令,OF标志什么情况下有意义?
教学手段:
讲授为主,讨论为辅,采用多媒体辅助教学
-------------------------------------------------------------------------------------------------------
第3周第2次课
第3章80x86的指令系统和寻址方式(8学时)第三部分
教学目的及要求:
1.准确理解指令系统中部分指令的含义、用途、执行过程、标志位解释,以及使用时需要注意的问题;2.串处理指令的特殊性及一般用法;3.控制转移指令的用途及使用方法4.理解DEBUG工具的基本使用方法,包括DEBUG中几种基本命令的使用方法以及所显示信息的含义。
教学内容提要:
3.3.4串处理指令(第二部分)
3.3.5控制转移指令(有关子程序操作命令放到第6章介绍)
3.3.6处理机控制与杂项操作命令
教学重点与难点:
(1)串处理指令的使用方法;
(2)串处理时的方向控制;(3)有符号和无符号的跳转指令的不同及测试条件的区别;
讨论问题:
(1)重复前缀和循环指令在使用时的区别?
(2)有符号数与无符号数在比较时为什么会不同?
教学手段:
讲授为主,讨论为辅,采用多媒体辅助教学
-------------------------------------------------------------------------------------------------------
第4周第1次课
第4章汇编语言程序格式(4个学时)第一部分
教学目的及要求:
1.了解汇编程序功能;2.掌握各个伪指令的功能和使用方法;3.掌握伪指令与指令的重要区别;5.理解程序的段结构,掌握定义段的语法要素;6.掌握各个段寄存器的各种初始化方法。
教学内容提要:
4.1汇编程序功能
4.2伪操作
4.2.1处理器选择伪操作
4.2.2段定义伪操作
4.2.3程序开始和结束伪操作
4.2.4数据定义及存储器分配伪操作
教学重点与难点:
(1)在理解伪指令功能的基础上,着重理解伪指令与指令的本质区别;
(2)理解汇编语言中表达式与高级语言中表达式的本质区别;(3)在理解程序的段结构基础上,着重理解各个段寄存器的初始化方法;(4)理解两种源程序框架的原理,特别注意理解在每种框架中应用程序与操作系统交接CPU控制权的方法。
讨论问题:
(1)指令与伪指令有何区别?
(2)两种源程序框架对于CPU控制权的交接有何不同?
教学手段:
讲授为主,讨论为辅,采用多媒体辅助教学
-------------------------------------------------------------------------------------------------------
第4周第2次课
第4章汇编语言程序格式(4个学时)第二部分
教学目的及要求:
1.掌握各个伪指令的功能和使用方法;2.掌握伪指令与指令的重要区别;3.掌握汇编语言表达式与高级语言表达式的本质区别;4.掌握汇编语言程序格式;5.熟悉汇编语言程序的上机过程;6.掌握两种可执行文件的区别。
教学内容提要:
4.2伪操作
4.2.5表达式赋值伪操作EQU
4.2.6地址计数器与对准伪操作
4.2.7基数控制伪操作
4.3汇编语言程序格式
4.3.1名字项
4.3.2操作项
4.3.3操作数项
4.3.4注释项
4.4汇编语言程序的上机过程
4.4.1建立汇编语言的工作环境
4.4.2建立ASM文件
4.4.3产生OBJ文件
4.4.4产生EXE文件
4.4.5程序的执行
4.4.6COM文件
教学重点与难点:
(1)理解汇编语言中表达式与高级语言中表达式的本质区别;
(2)地址计数器的理解和使用;(3)理解变量、标号的三个基本空间特性:
段、偏移量、类型。
讨论问题:
(1)汇编语言中的表达式与高级语言中的表达式相比,有何重要区别?
(2)EXE文件和COM文件有何区别?
(3)段、偏移量、类型三个基本空间特性如何确定一个变量在内存空间的确切位置、占用字节数?
这三个特性对标号的使用而言,有何必要性?
教学手段:
讲授为主,讨论为辅,采用多媒体辅助教学
-------------------------------------------------------------------------------------------------------
第5周第1次课
第5章循环与分支程序设计(共6学时)第一部分
教学目的及要求:
1.掌握由汇编语言源程序得到可执行程序的完整过程;2.精确掌握各种转移指令的功能、使用限制、标志位使用、在程序设计中的通常用法等;3.重点理解各条件转移指令对标志位的解释及其相关的条件判断原理4.能够实际应用所学到的转移指令,在编写完整程序的基础上使用分支、循环等复杂的流程结构
教学内容提要:
5.1循环程序设计
5.1.1循环程序的结构形式
5.1.2循环程序设计方法(第一部分)
教学重点与难点:
(1)在理解标志位含义的基础上,着重理解各条件转移指令对标志位的解释、条件判断原理;
(2)理解循环指令的功能,以及与其它条件转移指令的主要区别;(3)结合实例,理解循环指令在程序设计中的通常用途;(4)结合实例,理解循环指令的使用限制,理解实现循环结构单纯依靠循环指令是不够的。
讨论问题:
(1)循环指令与其它条件转移有什么主要区别?
使用循环指令是否可以实现所有的循环结构?
教学手段:
讲授为主,讨论为辅,采用多媒体辅助教学
-------------------------------------------------------------------------------------------------------
第5周第2次课
第5章循环与分支程序设计(共6学时)第二部分
教学目的及要求:
1.掌握由汇编语言源程序得到可执行程序的完整过程;2.精确掌握各种转移指令的功能、使用限制、标志位使用、在程序设计中的通常用法等;3.重点理解各条件转移指令对标志位的解释及其相关的条件判断原理4.能够实际应用所学到的转移指令,在编写完整程序的基础上使用分支、循环等复杂的流程结构。
教学内容提要:
5.1循环程序设计
5.1.2循环程序设计方法(第二部分)
5.1.3多重循环程序设计
教学重点与难点:
(1)理解循环指令的功能,以及与其它条件转移指令的主要区别;
(2)结合实例,理解循环指令在程序设计中的通常用途;(3)结合实例,理解循环指令的使用限制,理解实现循环结构单纯依靠循环指令是不够的
讨论问题:
(1)多重循环程序设计需要注意的关键问题,引导学生将其与高级语言在进行多重循环程序设计的异同;
教学手段:
讲授为主,讨论为辅,采用多媒体辅助教学
-------------------------------------------------------------------------------------------------------
第6周第1次课
第5章循环与分支程序设计(共6学时)第三部分
教学目的及要求:
1.掌握由汇编语言源程序得到可执行程序的完整过程;2.精确掌握各种转移指令的功能、使用限制、标志位使用、在程序设计中的通常用法等;3.重点理解各条件转移指令对标志位的解释及其相关的条件判断原理4.能够实际应用所学到的转移指令,在编写完整程序的基础上使用分支、循环等复杂的流程结构。
教学内容提要:
5.2分支程序设计
5.2.1分支程序的结构形式
5.2.2分支程序的设计方法
5.2.3跳跃表法
教学重点与难点:
(1)理解无条件转移指令存在的价值;
(2)在理解各标志位含义的基础上,着重理解各条件转移指令对标志位的解释、条件判断原理;(3)结合实例,理解转移指令在分支程序设计中的通常用途;(4)结合实例,理解条件转移指令的使用限制,理解并逐步建立由框图到程序的设计思路,并由此建立使用条件转移指令所需的良好习惯;(5)理解使用分支表实现多分支结构的优越性。
讨论问题:
条件转移指令最大转移范围是多少?
无条件转移指令存在的意义在哪里?
JNC指令与JA指令的区别是什么?
JZ指令与JCXZ指令有何重要区别?
(4)由流程框图设计分支结构程序时,使用条件转移指令应当注意什么问题?
带符号数条件转移指令使用哪些标志位进行条件判断?
条件判断主要基于一个什么原理?
使用分支表实现多分支结构与通常的条件转移指令直接实现多分支有何区别?
其优越性如何?
教学手段:
讲授为主,讨论为辅,采用多媒体辅助教学
-------------------------------------------------------------------------------------------------------
第6周第2次课
第六章子程序结构(共6学时)第一部分
教学目的及要求:
1.理解子程序在汇编语言中的定义语法;2.理解子程序的类型概念;3.理解子程序调用、返回的原理;4.掌握子程序入、出口参数传递方法;5.理解子程序设计时需要注意的问题;6.结合实例理解子程序设计的过程。
教学内容提要:
6.1子程序的设计方法
6.1.1过程定义伪操作
6.1.2子程序的调用和返回
6.1.3保存与恢复寄存器
6.1.4子程序的参数传递
教学重点与难点:
(1)理解子程序调用、返回的基本原理;
(2)理解子程序的类型对调用、返回产生的影响;(3)理解子程序参数传递的三种方法;(4)掌握在实际应用中,区分哪些模块适合编制为子程序的方法。
讨论问题:
(1)子程序调用、返回使用了什么样的底层机制?
会不会由于堆栈的操作不当而引起子程序返回错误?
应当如何避免子程序返回错误?
(2)段内调用、返回与段间调用、返回区别在什么地方?
它们分别适合用于什么样的应用场合?
(3)
寄存器参数传递的优点是什么?
缺点是什么?
在使用堆栈传递参数时,子程序返回应当注意什么问题?
教学手段:
讲授为主,讨论为辅,采用多媒体辅助教学
第7周第1次课
第六章子程序结构(共6学时)第二部分
教学目的及要求:
1.理解子程序在汇编语言中的定义语法;2.理解子程序的类型概念;3.理解子程序调用、返回的原理;4.掌握子程序入、出口参数传递方法;5.理解子程序设计时需要注意的问题;6.结合实例理解子程序设计的过程。
教学内容提要:
6.1子程序的设计方法
6.1.4子程序的参数传递
6.1.5增强功能的过程定义伪操作
6.2子程序的嵌套
教学重点与难点:
(1)理解子程序调用、返回的基本原理;
(2)理解子程序的类型对调用、返回产生的影响;(3)理解子程序参数传递的三种方法;(4)掌握在实际应用中,区分哪些模块适合编制为子程序的方法。
讨论问题:
(1)子程序调用、返回使用了什么样的底层机制?
会不会由于堆栈的操作不当而引起子程序返回错误?
应当如何避免子程序返回错误?
(2)段内调用、返回与段间调用、返回区别在什么地方?
它们分别适合用于什么样的应用场合?
(3)
寄存器参数传递的优点是什么?
缺点是什么?
在使用堆栈传递参数时,子程序返回应当注意什么问题?
教学手段:
讲授为主,讨论为辅,采用多媒体辅助教学
第7周第2次课
第六章子程序结构(共6学时)第三部分
教学目的及要求:
1.理解子程序在汇编语言中的定义语法;2.理解子程序的类型概念;3.理解子程序调用、返回的原理;4.掌握子程序入、出口参数传递方法;5.理解子程序设计时需要注意的问题;6.结合实例理解子程序设计的过程。
教学内容提要:
6.3子程序举例
教学重点与难点:
(1)理解子程序调用、返回的基本原理;
(2)理解子程序的类型对调用、返回产生的影响;(3)理解子程序参数传递的三种方法;(4)掌握在实际应用中,区分哪些模块适合编制为子程序的方法。
讨论问题:
(1)子程序调用、返回使用了什么样的底层机制?
会不会由于堆栈的操作不当而引起子程序返回错误?
应当如何避免子程序返回错误?
(2)段内调用、返回与段间调用、返回区别在什么地方?
它们分别适合用于什么样的应用场合?
(3)
寄存器参数传递的优点是什么?
缺点是什么?
在使用堆栈传递参数时,子程序返回应当注意什么问题?
教学手段:
讲授为主,讨论为辅,采用多媒体辅助教学
第8周第1次课
第7章高级汇编语言技术(共2学时)
教学目的及要求:
1.掌握汇编语言中“宏”的概念,能够在程序设计中正确使用宏指令;2.理解宏和子程序的本质区别;3.掌握条件汇编和重复汇编的概念,并且能够在程序设计中正确使用;4.了解汇编工具对源程序的汇编过程;
教学内容提要:
7.1宏汇编
7.2重复汇编
7.3条件汇编
教学重点与难点:
(1)着重理解宏指令与子程序的区别,以及每个过程分别由什么样的角色来完成;
(2)着重理解条件汇编、重复汇编与条件转移指令、循环指令的本质区别;(3)能够在实际应用中合理运用宏指令、条件汇编、重复汇编;
讨论问题:
(1)宏指令与子程序的区别有哪些?
宏调用的本质是什么?
与子程序调用有什么区别?
宏指令与子程序相比较,它们各自的优越性是什么?
什么样的软件模块适合使用子程序实现?
什么样的软件模块适合使用宏指令实现?
(2)条件汇编与重复汇编是在什么时候完成的?
条件转移指令与循环指令是在什么时候完成的?
条件、重复汇编语句的功能与条件转移、循环指令有什么本质区别?
教学手段:
讲授为主,讨论为辅,采用多媒体辅助教学
-------------------------------------------------------------------------------------------------------
第8周第2次课
第8章输入输出程序设计(共4学时)第一部分
教学目的及要求:
掌握CPU如何和外部设备接口交换信息的方法,了解CPU控制外部设备常运转的基本原理.2.掌握端口访问指令的功能、使用方法、寻址方式,能够理解简单的接口控制程序。
3.掌握中断的基本概念。
中断向量表的概念,中断过程,中断程序的编写
教学内容提要:
8.1I/O设备的数据传送方式
8.1.1CPU与外设
8.1.2直接存储器存取(DMA)方式
8.2程序直接控制I/O方式
8.2.1I/O端口
8.2.2I/O指令
8.2.3I/O程序举例
8.3中断传送方式
8.3.18086的中断分类
教学重点与难点:
(1)着重理解程序控制方式与中断控制方式的本质区别,以及中断控制方式的相对优越性;
(2)能够在实际应用中针对接口编写基本的控制程序。
讨论问题:
(1)三种数据传送方式的优缺点;
(2)CPU如何控制外部设备?
教学手段:
讲授为主,讨论为辅,采用多媒体辅助教学
-------------------------------------------------------------------------------------------------------
第9周第1次课
第8章输入输出程序设计(共4学时)第二部分
教学目的及要求:
1.掌握中断的基本概念;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 教案