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