课程名称:汇编语言程序设计 课程编码:7044801 课程学分:3学分 课程学时:48学时 适用专业:计算机科学与技术 先修课程:计算机导论,数字逻辑,计算机组成原理 课程类别:专业必修课 《汇编语言程序设计》 课程教学大纲 一、课程简介与目标 本课程是计算机科学与技术专业必修专业基础课程。汇编语言是最接近 硬件的编程语言,是系统软件和控制软件的主要开发工具。本课程以 8086/8088为背景机,讨论汇编语言的开发环境、基本语法结构、编程原理 和上机调试的基本方法,通过教学和上机实践,使学生掌握使用汇编语言控 制计算机工作的基本技术,以及汇编语言程序设计的基本方法。 通过本课程的学习,使学生了解Intel微处理器的工作原理,学会针对 8O86/8088系列微处理器进行紧耦合编程的方法,熟悉在微软MASM汇编器 的编程环境,提高学生对计算机底层硬件控制的理解。 1.课程支撑的毕业要求 3.2能够对计算机专业的一般性工程问题按照系统设计要求,进行系统的 开发与实现,具有程序设计、算法分析以及系统的开发实践能力。 5.1能够学握常用软件开发环境、数据分析、模拟与仿真等工具,并能理 解各种环境和工具的应用场景以及局限性。 2.课程拟达到的教学目标 本课程主要讨论如何能够直接利用计算机所有硬件特性,并通过汇编语 言直接控制计算机硬件工作,通过课程学习使学生的对于高级计算机语言的 工作原理有进一步了解,进而使学生编程的基本技能和综合运用能力得到提 升。本课程具体教学目标为: 目标1:掌握Intel x86系列微处理器的基本工作模式,理解微处理器中 寄存器之间,寄存器与内存之间的工作配合关系,掌握微处理器中程序及数 据的流动过程和处理方法: 目标2:理解计算机微处理器中复杂指令集的特性,学握Intelx86芯片
1 课程名称:汇编语言程序设计 课程编码:7044801 课程学分:3 学分 课程学时:48 学时 适用专业:计算机科学与技术 先修课程:计算机导论,数字逻辑,计算机组成原理 课程类别:专业必修课 《汇编语言程序设计》 课程教学大纲 一、课程简介与目标 本课程是计算机科学与技术专业必修专业基础课程。汇编语言是最接近 硬件的编程语言,是系统软件和控制软件的主要开发工具。本课程以 8086/8088 为背景机,讨论汇编语言的开发环境、基本语法结构、编程原理 和上机调试的基本方法,通过教学和上机实践,使学生掌握使用汇编语言控 制计算机工作的基本技术,以及汇编语言程序设计的基本方法。 通过本课程的学习,使学生了解 Intel 微处理器的工作原理,学会针对 8086/8088 系列微处理器进行紧耦合编程的方法,熟悉在微软 MASM 汇编器 的编程环境,提高学生对计算机底层硬件控制的理解。 1.课程支撑的毕业要求 3.2能够对计算机专业的一般性工程问题按照系统设计要求,进行系统的 开发与实现,具有程序设计、算法分析以及系统的开发实践能力。 5.1能够掌握常用软件开发环境、数据分析、模拟与仿真等工具,并能理 解各种环境和工具的应用场景以及局限性。 2.课程拟达到的教学目标 本课程主要讨论如何能够直接利用计算机所有硬件特性,并通过汇编语 言直接控制计算机硬件工作,通过课程学习使学生的对于高级计算机语言的 工作原理有进一步了解,进而使学生编程的基本技能和综合运用能力得到提 升。本课程具体教学目标为: 目标 1:掌握 Intel x86 系列微处理器的基本工作模式,理解微处理器中 寄存器之间,寄存器与内存之间的工作配合关系,掌握微处理器中程序及数 据的流动过程和处理方法; 目标 2:理解计算机微处理器中复杂指令集的特性,掌握 Intel x86 芯片
指令集的构成方法,以及解析内存内容,实现反汇编的方法,并通过实验达 到熟悉基本原理和不同汇编器中的复杂工程问题能力的目的: 目标3:深入理解现代计算机的冯诺依伊曼模型,掌握用汇编语言或机 器语言,控制微处理器与内存或外设的互访、读写操作: 目标4:熟悉DOS操作系统中的Debug汇编器,掌握根据内存内容进行 反汇编操作的原理和步骤,熟悉微软MASM汇编器的编程原理,解决相关实 际问题: 目标5:理解高级计算机语言中的底层算法实现,从而理解如何解决计 算机系统中B1Os级别可能发生的问题: 目标6:较全面掌握计算机微处理器如何实现循环和子程序的基本方 法,理解计算机内存管理,内存中堆和栈的不同使用方法,对实际问题进行 分析,使用汇编语言编程实现一些简单算法,并控制内存及外设,能够得到 有效结果。 课程思政目标:本门课程在培养学生专业素质和思维能力的同时,能够 与信息时代紧密结合,加深学生对国家的历史、发展的认识,培养学生的民 族自豪感和勤奋刻苦、努力拼搏、锐意进取和创新的精神 3.课程教学目标毕业要求关系表 课程教学目标-毕业要求关系表见表1。 表1课程教学目标毕业要求关系表 毕业要求 课程目标 3.2 5.1 目标1 目标2 目标3 V 目标4 V 目标5 目标6 ,教学基本内容及基本要求 汇编语言程序设计程共48学时,其中理论授课36学时、实验教学12学 时。学时分配如表2所示。 表2学时分配表 总学时 讲授学时 实验学时 48 36 12
2 指令集的构成方法,以及解析内存内容,实现反汇编的方法,并通过实验达 到熟悉基本原理和不同汇编器中的复杂工程问题能力的目的; 目标 3:深入理解现代计算机的冯诺依伊曼模型,掌握用汇编语言或机 器语言,控制微处理器与内存或外设的互访、读写操作; 目标 4:熟悉 DOS 操作系统中的 Debug 汇编器,掌握根据内存内容进行 反汇编操作的原理和步骤,熟悉微软 MASM 汇编器的编程原理,解决相关实 际问题; 目标 5:理解高级计算机语言中的底层算法实现,从而理解如何解决计 算机系统中 BIOS 级别可能发生的问题; 目标 6:较全面掌握计算机微处理器如何实现循环和子程序的基本方 法,理解计算机内存管理,内存中堆和栈的不同使用方法,对实际问题进行 分析,使用汇编语言编程实现一些简单算法,并控制内存及外设,能够得到 有效结果。 课程思政目标:本门课程在培养学生专业素质和思维能力的同时,能够 与信息时代紧密结合,加深学生对国家的历史、发展的认识,培养学生的民 族自豪感和勤奋刻苦、努力拼搏、锐意进取和创新的精神 3.课程教学目标-毕业要求关系表 课程教学目标-毕业要求关系表见表 1。 表1 课程教学目标-毕业要求关系表 3.2 5.1 目标1 √ 目标2 √ 目标3 √ 目标4 √ 目标5 √ 目标6 √ 二、教学基本内容及基本要求 汇编语言程序设计程共48学时,其中理论授课36学时、实验教学12学 时。学时分配如表2所示。 表2 学时分配表 总学时 讲授学时 实验学时 48 36 12 毕业要求 课程目标
1.课程重点 Intel x86系列微处理器的工作模式,特别是保护模式分页机制的工作原 理。内存的分段组织方法,以及微处理器的寄存器与内存及外设的访问。 Intel复杂指令集的组成及反汇编技术。在不同汇编器中各种循环及子程序的 汇编语言实现,以及汇编语言的编程要领。 2.课程难点 x86微处理器的保护模式,CPU的寻址方式,CPU访问和控制内存及外 设的基本方法,以及汇编语言在实际问题中的应用。 3.课堂教学(36学时) 表3各知识单元教学内容、考核要求和学时分配 第一知识单元计算机组织的基本知识 学时分配6学时教学方式课堂讲授,pt电子课件,板书 教学内容 重点难点 进位计数制与不同基数的数之间的转换,二进制数和十六 1 进制数运算 2计算机数据与数码的关系,内存中的程序与数据 V 3浮点数的编码规则,1EEE-754标准 V 4CPU中运算器操作,控制器操作,寄存器的类型和功能 考核要点:计算机补码,移码的表示方法,浮点数的表达和运算 规则,BCD表示补码的运算规则。 考核方式 考试形式:以计算题等客观题方式考核。 该知识单元支撑毕业要求3.2。 第二知识单元x86系列微处理器 学时分配10学时 教学方式课堂讲授,ppt电子课件,板书 教学内容 重点难点 1x86微处理器中编程使用的寄存器 1 x86微处理器的工作模式(实模式、保护模式)和内存管 理方式 3cPU的寻址方式 4 复杂指令集(ClSc)的特点,Intel x86微处理器指令的构 成,汇编指令与机器语言之间的转换,以及反汇编技术介绍 5 IBM PC机的指令系统的5组主要指令 考核要点:x86微处理器的寻址方式,机器语言与汇编语句的转 考核方式 换,Intel指令解析
3 1.课程重点 Intel x86 系列微处理器的工作模式,特别是保护模式分页机制的工作原 理。内存的分段组织方法,以及微处理器的寄存器与内存及外设的访问。 Intel 复杂指令集的组成及反汇编技术。在不同汇编器中各种循环及子程序的 汇编语言实现,以及汇编语言的编程要领。 2.课程难点 x86 微处理器的保护模式,CPU 的寻址方式,CPU 访问和控制内存及外 设的基本方法,以及汇编语言在实际问题中的应用。 3.课堂教学(36学时) 表3 各知识单元教学内容、考核要求和学时分配 第一知识单元 计算机组织的基本知识 学时分配 6 学时 教学方式 课堂讲授,ppt电子课件,板书 教学内容 重点 难点 1 进位计数制与不同基数的数之间的转换,二进制数和十六 进制数运算 2 计算机数据与数码的关系,内存中的程序与数据 √ 3 浮点数的编码规则,IEEE-754标准 √ √ 4 CPU中运算器操作,控制器操作,寄存器的类型和功能 √ 考核方式 考核要点:计算机补码,移码的表示方法,浮点数的表达和运算 规则,BCD表示补码的运算规则。 考试形式:以计算题等客观题方式考核。 该知识单元支撑毕业要求3.2。 第二知识单元 x86系列微处理器 学时分配 10 学时 教学方式 课堂讲授,ppt电子课件,板书 教学内容 重点 难点 1 x86微处理器中编程使用的寄存器 √ 2 x86 微处理器的工作模式(实模式、保护模式)和内存管 理方式 √ √ 3 CPU的寻址方式 √ √ 4 复杂指令集(CISC)的特点,Intel x86微处理器指令的构 成,汇编指令与机器语言之间的转换,以及反汇编技术介绍 √ 5 IBM PC 机的指令系统的 5 组主要指令 考核方式 考核要点:x86微处理器的寻址方式,机器语言与汇编语句的转 换,Intel指令解析
考试形式:以客观题等方式考核 该知识单元支撑毕业要求5.1 第三知识单元汇编语言程序格式 学时分配 4学时教学方式课堂讲授,pt电子课件,板书 教学内容 重点难点 1微软MASM汇编器中可以使用的伪操作指令 V 2汇编语言程序的格式安排 3MASM汇编器的编译环境 4汇编程序的功能 考核要点:汇编语言的格式,语法。伪操作在实际应用中的使用 考核方式考试形式:以客观题和问答题型等方式考核 该知识单元支撑毕业要求3.2,5.1 第四知识单元循环与分支程序设计 学时分配8学时 教学方式课堂讲授,ppt电子课件,板书 教学内容 重点难点 1CPU中的状态寄存器 2循环程序设计 3分支程序设计 432-bit MASM中80386的新指令 考核要点:汇编语言循环体的实现,分支条件判断 考核方式 考试形式:以编程客观题等方式考核 该知识单元支撑毕业要求5.1 第五知识单元子程序结构 学时分配 4学时 教学方式课堂讲授,ppt电子课件,板书 教学内容 重点难点 1子程序设计 2 堆栈的概念,使用和操 作堆与栈 3子程序的嵌套 V 宏汇编:宏定义、宏调 用和宏展开 5重复汇编和条件汇编 考核方式 考核要点:根据判断状态寄存器内容进行子程序设计,堆栈使用 和操作
4 考试形式:以客观题等方式考核 该知识单元支撑毕业要求5.1 第三知识单元 汇编语言程序格式 学时分配 4 学时 教学方式 课堂讲授,ppt电子课件,板书 教学内容 重点 难点 1 微软MASM汇编器中可以使用的伪操作指令 √ 2 汇编语言程序的格式安排 3 MASM 汇编器的编译环境 √ √ 4 汇编程序的功能 √ √ 考核方式 考核要点:汇编语言的格式,语法。伪操作在实际应用中的使用 考试形式:以客观题和问答题型等方式考核 该知识单元支撑毕业要求3.2,5.1 第四知识单元 循环与分支程序设计 学时分配 8 学时 教学方式 课堂讲授,ppt电子课件,板书 教学内容 重点 难点 1 CPU 中的状态寄存器 2 循环程序设计 √ 3 分支程序设计 √ 4 32-bit MASM中80386的新指令 √ 考核方式 考核要点:汇编语言循环体的实现,分支条件判断 考试形式:以编程客观题等方式考核 该知识单元支撑毕业要求5.1 第五知识单元 子程序结构 学时分配 4 学时 教学方式 课堂讲授,ppt电子课件,板书 教学内容 重点 难点 1 子程序设计 √ 2 堆栈的概念,使用和操 作堆与栈 √ 3 子程序的嵌套 √ √ 4 宏汇编:宏定义、宏调 用和宏展开 √ 5 重复汇编和条件汇编 √ √ 考核方式 考核要点:根据判断状态寄存器内容进行子程序设计,堆栈使用 和操作
考试形式:以编程解决实际问题等方式考核 该知识单元支撑毕业要求3.2,5.1 第六知识单元输入/输出程序设计 学时分配 4学时 教学方式课堂讲授,ppt电子课件,板书 教学内容 重点 难点 1/o设备的数据传送方式 V 2程序直接控制/o方式 3中断传送方式 4B1OS和DOs中断服务程序 考核要点:使用汇编语言实现存储外设的读写访问,CPU确定硬 件的中断向量号和中断服务程序调用。 考核方式 考试形式:以编程,问答等方式考核 该知识单元支撑毕业要求3.2 4.实验教学(12学时) 1)DEBUG程序使用技巧实验(4学时) 了解寄存器和内存,认识机器码,使用单步和断点,ASC字符码:从键 盘输入,从显示器输出,内存寻址,堆栈操作。(支撑毕业要求3.2,5.1) 2)MASM汇编器使用实验(4学时) 使用MASM为DOS和Windows编程,使用程序模板编程,并用Debug 调试编辑执行汇编代码,解析Intel x86指令,使用汇编语言程序编写解方程 和大数运算代码。(支撑毕业要求3.2,5.1) 3)汇编语言程序调试运行循环及子程序设计实验(4学时) 使用调试汇编程序用的辅助文件,代码改错,编写调试循环及子程序。 (支撑毕业要求3.2,5.1) 三、课程采用的教学方法 本课程所涉内容知识较多,知识面宽广、问题难度大、理解困难等的特 点。因此在抓好课堂教学效果的同时,应做好课前预习和课后复习及上机实 验和书面作业完成环节,并通过增强师生间、同学间的多种形式的讨论(如 课后答疑、课下讨论、网上讨论等)来提高课程的教学效果和教学质量。 课程教学方法及具体要求如下: 1.课堂讲授 1)以能力培养为导向,为保证教学质量,课堂讲授中应重点突出、点 面结合,既要保证完成使广大学生接受完整的课程知识体系结构的教学目 标,又要针对关键问题、重点内容作较为详尽、多引入实例的透彻讲解,使 5
5 考试形式:以编程解决实际问题等方式考核 该知识单元支撑毕业要求3.2,5.1 第六知识单元 输入/输出程序设计 学时分配 4 学时 教学方式 课堂讲授,ppt电子课件,板书 教学内容 重点 难点 1 I/O设备的数据传送方式 √ 2 程序直接控制I/O方式 √ 3 中断传送方式 √ √ 4 BIOS和DOS中断服务程序 考核方式 考核要点:使用汇编语言实现存储外设的读写访问,CPU确定硬 件的中断向量号和中断服务程序调用。 考试形式:以编程,问答等方式考核 该知识单元支撑毕业要求3.2 4.实验教学(12 学时) 1)DEBUG 程序使用技巧实验(4 学时) 了解寄存器和内存,认识机器码,使用单步和断点,ASCII 字符码:从键 盘输入,从显示器输出,内存寻址,堆栈操作。(支撑毕业要求 3.2,5.1) 2)MASM 汇编器使用实验(4 学时) 使用 MASM 为 DOS 和 Windows 编程,使用程序模板编程,并用 Debug 调试编辑执行汇编代码,解析 Intel x86 指令,使用汇编语言程序编写解方程 和大数运算代码。(支撑毕业要求 3.2,5.1) 3)汇编语言程序调试运行循环及子程序设计实验(4 学时) 使用调试汇编程序用的辅助文件,代码改错,编写调试循环及子程序。 (支撑毕业要求 3.2,5.1) 三、课程采用的教学方法 本课程所涉内容知识较多,知识面宽广、问题难度大、理解困难等的特 点。因此在抓好课堂教学效果的同时,应做好课前预习和课后复习及上机实 验和书面作业完成环节,并通过增强师生间、同学间的多种形式的讨论(如 课后答疑、课下讨论、网上讨论等)来提高课程的教学效果和教学质量。 课程教学方法及具体要求如下: 1.课堂讲授 1)以能力培养为导向,为保证教学质量,课堂讲授中应重点突出、点 面结合,既要保证完成使广大学生接受完整的课程知识体系结构的教学目 标,又要针对关键问题、重点内容作较为详尽、多引入实例的透彻讲解,使
学生真正领会和掌握本课程的知识要领及技术要点。 2)注重实验教学。实验以实际问题给出,训练学生对问题的抽象能力 和对算法的设计能力,同时通过算法的编程实现锻炼学生的系统设计能力, 对每个实验需提交实验报告,以此锻炼学生的实验分析以及实验结果解释能 力。 3)多煤体课件与板书结合的教学手段与多种教学方法兼施并用。教学 方法则采取在教师讲授基本教学内容的过程中适当穿插引入个体针对性提 问、集体提问、答疑、讨论等教学形式。 2.讨论与自学 引导同学之间或同学与教师之间针对课程的重点和难点内容展开讨论, 以澄清知识要点、扩大知识面和培养独立思考能力及创新能力。自学内容应 以学生掌握相关知识结构基础上能比较方便的看懂和理解为原则,教师要布 置自学提纲和思考题。 3.课前预习和课后复习 每次课前预习时间应不少于相应教学内容的课堂讲授计划时间,课后复 习以课堂讲授内容为主线,要求完成相应作业。 四、建议教材及教学参考书 1.教材 [1]沈美明等,IBM-PC汇编语言程序设计(第二版),清华大学出版 社,2001 2.教学参考书 [1]熊桂喜,IBM-PC汇编语言程序设计,科学出版社,1998. [2]Kip Irvine.Assembly Language for x86 Processors(6th Ed),Prentice-Hall (Pearson Education)Press,2010.2 [3)王爽,汇编语言(第三版),清华大学出版社,2016 [4]Barry B.Brey,The Intel Microprocessors,,Eighth Edition,机械工业出版 社,2013. 五、知识单元对课程目标的达成度设计 1.知识单元支撑课程目标情况表 围绕每个具体的课程目标,从相关支撑只是单元的角度,设计不同的考 核方法,如下表: 课程目标 知识单元 考核方式设计 目标1 第一知识单元计算机组织的基本知识单选题、问答题、编程 6
6 学生真正领会和掌握本课程的知识要领及技术要点。 2)注重实验教学。实验以实际问题给出,训练学生对问题的抽象能力 和对算法的设计能力,同时通过算法的编程实现锻炼学生的系统设计能力, 对每个实验需提交实验报告,以此锻炼学生的实验分析以及实验结果解释能 力。 3)多媒体课件与板书结合的教学手段与多种教学方法兼施并用。教学 方法则采取在教师讲授基本教学内容的过程中适当穿插引入个体针对性提 问、集体提问、答疑、讨论等教学形式。 2.讨论与自学 引导同学之间或同学与教师之间针对课程的重点和难点内容展开讨论, 以澄清知识要点、扩大知识面和培养独立思考能力及创新能力。自学内容应 以学生掌握相关知识结构基础上能比较方便的看懂和理解为原则,教师要布 置自学提纲和思考题。 3.课前预习和课后复习 每次课前预习时间应不少于相应教学内容的课堂讲授计划时间,课后复 习以课堂讲授内容为主线,要求完成相应作业。 四、建议教材及教学参考书 1.教材 [1] 沈美明等,IBM-PC 汇编语言程序设计(第二版), 清华大学出版 社,2001. 2.教学参考书 [1]熊桂喜,IBM-PC 汇编语言程序设计,科学出版社,1998. [2]Kip Irvine. Assembly Language for x86 Processors (6 th Ed), Prentice-Hall (Pearson Education) Press, 2010.2 [3]王爽,汇编语言(第三版),清华大学出版社,2016. [4]Barry B. Brey,The Intel Microprocessors, Eighth Edition,机械工业出版 社,2013. 五、知识单元对课程目标的达成度设计 1.知识单元支撑课程目标情况表 围绕每个具体的课程目标,从相关支撑只是单元的角度,设计不同的考 核方法,如下表: 课程目标 知识单元 考核方式设计 目标1 第一知识单元 计算机组织的基本知识 单选题、问答题、编程
第二知识单元x86系列微处理器 第三知识单元汇编语言程序格式 第四知识单元循环与分支程序设计 第五知识单元子程序结构 第六知识单元输入/输出程序设计 目标2 第一知识单元计算机组织的基本知识 问答题、编程题 第二知识单元x86系列微处理器 目标3 第三知识单元汇编语言程序格式 编程题 第四知识单元循环与分支程序设计 第五知识单元子程序结构 目标4 第三知识单元汇编语言程序格式 编程题 第四知识单元循环与分支程序设计 第五知识单元子程序结构 第六知识单元输入/输出程序设计 目标5 第一知识单元计算机组织的基本知识 问答题、编程题 第二知识单元x86系列微处理器 第三知识单元汇编语言程序格式 目标6 第四知识单元循环与分支程序设计 编程题 第五知识单元子程序结构 2课程的总体考核方法及量化评定标准 本课程成绩由平时成绩和期末考试成绩两部分组成,以百分制计算,平 时成绩占40%,期末考试成绩占60%。平时成绩由考勤(10%)、课后作业(15%) 和实验成绩确定,其中实验成绩根据实验的实际完成情况和实验报告综合给 出(15%)。 六、其它问题的说明 大纲撰写人:徐迟 大纲审阅人:段建勇 系负责人:段建勇 学院负责人:马礼 制(修)订日期:2021年8月
7 第二知识单元 x86系列微处理器 第三知识单元 汇编语言程序格式 第四知识单元 循环与分支程序设计 第五知识单元 子程序结构 第六知识单元 输入/输出程序设计 题 目标2 第一知识单元 计算机组织的基本知识 第二知识单元 x86系列微处理器 问答题、编程题 目标3 第三知识单元 汇编语言程序格式 第四知识单元 循环与分支程序设计 第五知识单元 子程序结构 编程题 目标4 第三知识单元 汇编语言程序格式 第四知识单元 循环与分支程序设计 第五知识单元 子程序结构 第六知识单元 输入/输出程序设计 编程题 目标5 第一知识单元 计算机组织的基本知识 第二知识单元 x86系列微处理器 第三知识单元 汇编语言程序格式 问答题、编程题 目标6 第四知识单元 循环与分支程序设计 第五知识单元 子程序结构 编程题 2.课程的总体考核方法及量化评定标准 本课程成绩由平时成绩和期末考试成绩两部分组成,以百分制计算,平 时成绩占 40%,期末考试成绩占 60%。平时成绩由考勤(10%)、课后作业(15%) 和实验成绩确定,其中实验成绩根据实验的实际完成情况和实验报告综合给 出(15%)。 六、其它问题的说明 无 大纲撰写人:徐 迟 大纲审阅人:段建勇 系负责人:段建勇 学院负责人:马 礼 制(修)订日期:2021年8月