预览加载中,请您耐心等待几秒...
1/4
2/4
3/4
4/4

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

《汇编语言程序设计》教学大纲 一、教学目的与要求 汇编课主要介绍汇编语言的基础理论、编程工具、编程方法和应用技术。通过课程的学 习,使学生掌握利用汇编语言进行程序设计的方法和技巧,获得在计算机底层编程的经验, 同时了解程序在机器上运行的基本原理,建立“时间”和“空间”的概念,关注影响程序运 行的系统特征,使学生能应用所学的理论和技术编写出高效、可靠的程序,具备一定的软件 设计与分析能力。 二、教学任务及其结构 教学任务是:通过课堂教学、自习和上机实验等环节,要求学生了解计算机的编程结构, 掌握汇编语言程序设计的基本概念、方法和技巧,学会上机调试、运行程序的基本方法,具 备一定的软件设计的能力。 主体的内容结构如下图。即以整数/浮点数/体系结构基础知识/虚存、异常概念为基本, 从C语言与汇编的对应关系入手,讲授汇编语言自身的格式、语法、程序设计等内容。 三、单元教学目标与任务 第一章汇编语言基础知识6学时 1.1汇编语言与计算机系统结构1.5学时 1.2各类指令集简介1.5学时 1.3整数的计算机表示与运算1.5学时 1.4浮点数的计算机表示1.5学时 第二章80x86计算机组织2学时 2.1计算机系统构成与保护模式 第三章C语言与汇编12.5学时 3.1寻址模式与数据传输指令等3学时 3.2控制流3学时 3.3栈与过程调用的机器表示3学时 3.4汇编实验2学时 3.5数据的机器表示1.5学时 第四章汇编语言程序格式6学时 4.1程序格式与伪操作等3学时 4.2上机过程等3学时 第五章循环与分支程序6学时 5.1循环程序设计3学时 5.2分支程序设计3学时 第六章子程序设计6学时 6.1子程序设计-13学时 6.2子程序设计-23学时 第七章MIPS汇编7.5学时 7.1MIPS汇编初步2学时 7.2MIPS指令集与汇编程序设计2学时 7.3MIPS异常处理1.5学时 7.4虚存管理初步1学时 7.5MIPS内存管理1学时 第八章补充内容2学时 8.1可定制处理器指令集 四、实验内容 (1)用递归子程序计算Fibonacci数。 要求:1.用汇编和C(或C++)两种语言实现 2.以此为例分析: 堆栈的使用情况 两种语言的优缺点(空间和时间) 3.此实验要求提交实验报告 (2)建立一个宏(数学)库,扩展已有的指令系统。 要求: 1.宏库包含n的阶乘、n的开方、n的平方、n的绝对值、以2为底n的对数、以10 为底n的对数、2的n次幂、10的n次幂的宏定义,运算结果仅取整数部分,不考 虑溢出(字长32位),但要考虑n的正负; 2.采用EAX等32位寄存器; 3.尽量使用条件或重复等高级汇编技术; 4.代码段中要有相应的宏调用,以检验宏定义的正确性; 5.适当的输入输出提示; 6.此实验要求提交实验报告 (3)软件炸弹拆除实验 要求: 1.通过远程服务器登录后下载每个人的实验包,内含多个X8632位目标程序; 2.通过反汇编以及gdb等工具,进行目标程序语义分析与试运行,了解其含义并给出 正确的输入以拆除“炸弹”。 3.上传实验结果。 (4)栈溢出攻击实验 要求: 1.通过远程服务器登录后下载每个人的实验包,内含多个X8632位目标程序; 2.通过反汇编以及gdb等工具,进行目标程序语义分析与试运行,实施栈溢出操作, 并完成预定的程序行为; 3.上传实验结果。 (5)MIPS异常处理实验 要求: 1.在SPIM模拟器上,通过汇编程序产生地址错误异常; 2.编写异常处理程序,要求正确处理该异常并返回(打出相关异常信息); 3.能够支持发生在delayslot内的异常。 五、重点难点与解决办法 学生遇到的难点主要分两种:一是基本概念方面的,对这些概念和基础知识正确而清晰 的理解非常重要;二是应用和编程方面的(主要体现在程序格式或结构上),而基本概念和 编程技术又是本课程的重点,所以必须帮助学生解决这些难点。课程的重点和难点主要在以 下几个方面: 80x86计算机组织 这儿我们开始提到寄存器、内存单元的地址和内容、存储器的逻辑分段、物理地址、逻 辑地址(段地址和偏移地址)等概念,学生往往不理解什么是“段”?为什么要“分段”? “物理”和“逻辑”有什么区别?“实模式”与“保护模式”是怎么回事?等等。 此时课程刚刚开始,学生还没有接触编程,没有感性认识,我们通过类比、图示、举例 等通俗形式尽可能讲清楚这些问题,比如:8086/8088之所以只能工作在“实模式”,是因为 它的地址线是20根,而一个寄存器只有16位长,容纳不下20位的物理地址,必须使用两 个寄存器;这两个寄存器一个放段地址,一个放偏移地址(二者构成逻辑地址),此时顺便 讲解每个寄存器的专门用途,给出实模式下物理地址的计算公式;同时结合存储器中存放数 据的不同,