《计算机组成与汇编语言》课程实验教学大纲 一、课程基本信息 课程代码:16122404 课程名称:计算机组成与汇编语言 英文名称:Computer Organization and Assembly Language 实验总学时:20 适用专业:计算机 课程类别:学科基础课 先修课程:C语言 二、实验教学的总体目的和要求 1、对学生的要求:要求同学们通过对课程的学习了解和使用,能够掌握一台计 算机系统的结构,并依靠虚拟实验平台以及汇编语言环境独立完成机器级代码的 分析、调试任务。 2、对教师的要求 教师在指导实验前, 应先对本实验的内容和步骤 分 解 否则应先辅助其他教师从事该实验的辅导工作,然后才能直接指导本班学生的实 验指导。对学生应重复强调遵守实验室纪律的重要性,切实做好实验室的用电安 全和实验设备的安全。每次实验过后,要及时要求学生提交实验报告,并给予认 直的批收。 3、对实验条件的要求:每人配有一台具有1iux环境的台式计算机,可以连接 到互联网。 4、教学目的:结合当前国情,我国严重缺乏计算机核心竞争力,因此,通过本 实验课程的学习,同学们务必建立起学好计算机、增强我国计算机核心技术竞 争力,为国家强大而努力学习的伟大志愿。 三、实验教学内容 实验项目一 实验名称:搭建并熟悉实验环境
《计算机组成与汇编语言》课程实验教学大纲 一、课程基本信息 课程代码: 16122404 课程名称:计算机组成与汇编语言 英文名称: Computer Organization and Assembly Language 实验总学时:20 适用专业:计算机 课程类别:学科基础课 先修课程:C 语言 二、实验教学的总体目的和要求 1、对学生的要求:要求同学们通过对课程的学习了解和使用,能够掌握一台计 算机系统的结构,并依靠虚拟实验平台以及汇编语言环境独立完成机器级代码的 分析、调试任务。 2、对教师的要求:教师在指导实验前,应先对本实验的内容和步骤十分了解, 否则应先辅助其他教师从事该实验的辅导工作,然后才能直接指导本班学生的实 验指导。对学生应重复强调遵守实验室纪律的重要性,切实做好实验室的用电安 全和实验设备的安全。每次实验过后,要及时要求学生提交实验报告,并给予认 真的批改。 3、对实验条件的要求:每人配有一台具有 linux 环境的台式计算机,可以连接 到互联网。 4、教学目的:结合当前国情,我国严重缺乏计算机核心竞争力,因此,通过本 实验课程的学习,同学们务必建立起学好计算机、增强我国计算机核心技术竞 争力,为国家强大而努力学习的伟大志愿。 三、实验教学内容 实验项目一 实验名称:搭建并熟悉实验环境
实验内容: 1、安装虚拟机及linux系统 2、编写C源码、并将源代码转换成可执行代码 3、gcc常用编译选项说明、objdump的使用 4、观察不同数据类型对应汇编代码的差别 5、对给出的三段c语言源代码,分别完成编译形成.s汇编文件,完成汇编 形成.。目标文件,并试着分别建立相应主程序以便生成可执行文件。 实验性质:验证性 实验学时:4 实验目的与要求: 1、学习使用gcc、objdump 2、认识汇编代码、机器代码 实验条件:计算机、linux系统 研究与思考:虚拟机、linux下的gcc和window下的VC的异同。 研究与思考2:无论linux下的gcc还是window下的VC都不是我国自主研发的, 些重要领域的核心技术还是严重缺乏的,同学们 尽管我中同时研究下这些基就件的计 经济飞速发展,但 实验项目二 实验名称:加法器实验 实验内容:利用虚拟实验平台设计4位加法器 实验性质:设计 实验学时:2 实验目的与要求: 了解基本逻辑门电路的主要用途以及验证它们的逻辑功能。学习利用各 个基本门电路形成组合逻辑电路一一加法器。 实验条件:每人一台可以访问网络服务器的台式机
实验内容: 1、 安装虚拟机及 linux 系统 2、 编写 C 源码、并将源代码转换成可执行代码 3、gcc 常用编译选项说明、objdump 的使用 4、观察不同数据类型对应汇编代码的差别 5、对给出的三段 c 语言源代码,分别完成编译形成.s 汇编文件,完成汇编 形成.o 目标文件,并试着分别建立相应主程序以便生成可执行文件。 实验性质:验证性 实验学时:4 实验目的与要求: 1、 学习使用 gcc、objdump 2、 认识汇编代码、机器代码 实验条件:计算机、linux 系统 研究与思考:虚拟机、linux 下的 gcc 和 window 下的 VC 的异同。 研究与思考 2:无论 linux 下的 gcc 还是 window 下的 VC 都不是我国自主研发的, 尽管我国经济飞速发展,但一些重要领域的核心技术还是严重缺乏的,同学们 可以在实验中同时研究下这些基础软件的设计思想。 实验项目二 实验名称:加法器实验 实验内容:利用虚拟实验平台设计 4 位加法器 实验性质:设计 实验学时:2 实验目的与要求: 了解基本逻辑门电路的主要用途以及验证它们的逻辑功能。学习利用各 个基本门电路形成组合逻辑电路——加法器。 实验条件:每人一台可以访问网络服务器的台式机
实验项目三 实验名称:数据实验 实验内容 修改bits.c使其能够通过btest程序中的所有测试,而又没有违反任何 编码要求。具体地,按要求改bits.c,然后 1,./make 生成可执行文件:btest,fshow,ishow 其中btest在每次修改bits.c后需重新编译,即./make btest 2,unix>./dlc bits.c 用dlc编译器自动检验bits.c与编码要求的一致性 3,unix>./btest Btst通过在每个函数上运行很多测试样例来检测代码正确性。每题有 不同分值,btest会显示打分结果:“Total points::?/41” 实验性质:设计性 实验学时:4 实验目的与要求 要求学生灵活应用简单的逻辑函数、补码及浮点数函数,但是只能使用 非常有限的一个函数子集。例如,要求只使用位级操作和顺序结构代码来计 算一个数的绝对值。该实验可以帮助学生理解C语言中各种数据类型的位级 表示、补码运算、IEEE浮点标准格式以及对数据进行位级操作的行为表现。 实验条件:计算机、linux系统 研究与思考:对计算机中数据表示及算术运算有深刻理解是写出可靠程序的关 键。 实验项目四
实验项目三 实验名称:数据实验 实验内容: 修改 bits.c 使其能够通过 btest 程序中的所有测试,而又没有违反任何 编码要求。具体地,按要求改 bits.c,然后 1,./make 生成可执行文件:btest,fshow,ishow 其中 btest 在每次修改 bits.c 后需重新编译,即./make btest 2,unix> ./dlc bits.c 用 dlc 编译器自动检验 bits.c 与编码要求的一致性 3,unix> ./btest Btest 通过在每个函数上运行很多测试样例来检测代码正确性。每题有 不同分值,btest 会显示打分结果:“Total points:?/41” 实验性质:设计性 实验学时:4 实验目的与要求: 要求学生灵活应用简单的逻辑函数、补码及浮点数函数,但是只能使用 非常有限的一个函数子集。例如,要求只使用位级操作和顺序结构代码来计 算一个数的绝对值。该实验可以帮助学生理解 C 语言中各种数据类型的位级 表示、补码运算、IEEE 浮点标准格式以及对数据进行位级操作的行为表现。 实验条件:计算机、linux 系统 研究与思考:对计算机中数据表示及算术运算有深刻理解是写出可靠程序的关 键。 实验项目四
实验名称:程序调试工具gdb 实验内容: l、建立程序,并编译,生成可执行程序swapprog 2、使用gdb调试运行swapprog 3、对于给出的未知行为的可执行文件tt(无源代码提供),通过gd和 objdump工具分析程序的行为。 提示:tt等待用户输入两组正确信息,如输入正确,将输出:“你成功了! 恭喜,你可以为祖国做出的贡献值是:100分!”,否则输出:“失败!贡 献值是:1分!”。 实验性质:设计性 实验学时:2 实验目的与要求: 1、学习使用调试工具gdb 2、通过gdb和ob jdump工具的使用,找到程序在栈中已存在的数据或者汇 编代码本身的代码逻辑,加深对汇编代码的理解,加深对栈在程序运行中的 重要作用的理解。 实验条件:计算机、linux系统 研究与思考:程序调试的方法和技巧。 实验项目五 实验名称:二进制炸弹实验 实验内容: 二进制炸弹是作为一个目标代码文件提供给学生们的程序,运行时,它 提示用户输入6个不同的字符串 。如果具中任何 个不正确,炸弹就会“ 炸”:打印出一条错误信息。学生通过反汇编和逆向工程来确定是哪六个字 符串,从而解除他们各自炸弹的雷管。 实验性质:综合性 实验学时:6
实验名称:程序调试工具 gdb 实验内容: 1、建立程序,并编译,生成可执行程序 swapprog 2、使用 gdb 调试运行 swapprog 3、对于给出的未知行为的可执行文件 tt(无源代码提供),通过 gdb 和 objdump 工具分析程序的行为。 提示:tt 等待用户输入两组正确信息,如输入正确,将输出:“你成功了! 恭喜,你可以为祖国做出的贡献值是:100 分!”,否则输出:“失败!贡 献值是:1 分!”。 实验性质:设计性 实验学时:2 实验目的与要求: 1、 学习使用调试工具 gdb 2、 通过 gdb 和 objdump 工具的使用,找到程序在栈中已存在的数据或者汇 编代码本身的代码逻辑,加深对汇编代码的理解,加深对栈在程序运行中的 重要作用的理解。 实验条件:计算机、linux 系统 研究与思考:程序调试的方法和技巧。 实验项目五 实验名称:二进制炸弹实验 实验内容: 二进制炸弹是作为一个目标代码文件提供给学生们的程序,运行时,它 提示用户输入 6 个不同的字符串。如果其中任何一个不正确,炸弹就会“爆 炸”:打印出一条错误信息。学生通过反汇编和逆向工程来确定是哪六个字 符串,从而解除他们各自炸弹的雷管。 实验性质:综合性 实验学时:6
实验目的与要求: 1、熟练掌握调试用具的使用,能够灵活的设置断点、分析程序的执行过程: 2、通过跟踪机器代码的执行,使学生理解机器语言,掌握栈的具体作用。 实验条件:计算机、linux系统 研究与思考:栈在程序跟踪中的关键作用。 实验项目六 实验名称:控制器实验 实验内容: 1,首先是看懂教学计算机的功能部件组成和线路逻辑关系,然后分析教学 计算机中已经设计好并正常运行的几条典型指令(例如,ADD、PUSH等指令) 的功能、格式和执行流程。 2.运行单条指令,查看指令的功能、格式和执行流程,特别是每条指令的 节拍信号和操作信号。 实验性质:综合 实验学时:2 实验目的与要求 看懂教学计算机中已经设计好并正常运行的几条典型指令(例如 ADD、PUSH、CALA等指令)的功能、格式和执行流程。深入理解计算机控制 器的功能、组成知识:深入地学习计算机各类典型指令的执行流程:理解操 作信号与时序信号的关系:学习组合逻辑控制器的实现原理和设计过程。 实验条件:每人一台实验机及一台台式机 四、考核方式 考察:考勤50%+实验报告50% 五、推荐实验教材和教学参考书 参考书:《深入理解计算机系统(原书第二版)》,Randal E.Bryant&David R.0'Hallaron著,龚奕利&雷迎春译.机械工业出版社,第二版(2014年) 参考网站:http:/csapp.cs.cmu.edu 六、其他需说明的
实验目的与要求: 1、熟练掌握调试用具的使用,能够灵活的设置断点、分析程序的执行过程; 2、通过跟踪机器代码的执行,使学生理解机器语言,掌握栈的具体作用。 实验条件:计算机、linux 系统 研究与思考:栈在程序跟踪中的关键作用。 实验项目六 实验名称:控制器实验 实验内容: 1.首先是看懂教学计算机的功能部件组成和线路逻辑关系,然后分析教学 计算机中已经设计好并正常运行的几条典型指令(例如,ADD、PUSH 等指令) 的功能、格式和执行流程。 2.运行单条指令,查看指令的功能、格式和执行流程,特别是每条指令的 节拍信号和操作信号。 实验性质:综合 实验学时:2 实验目的与要求: 看懂教学计算机中已经设计好并正常运行的几条典型指令 (例如, ADD、PUSH、CALA 等指令)的功能、格式和执行流程。深入理解计算机控制 器的功能、组成知识;深入地学习计算机各类典型指令的执行流程;理解操 作信号与时序信号的关系;学习组合逻辑控制器的实现原理和设计过程。 实验条件:每人一台实验机及一台台式机 四、考核方式 考察:考勤 50% + 实验报告 50% 五、推荐实验教材和教学参考书 参考书:《深入理解计算机系统(原书第二版)》,Randal E. Bryant & David R. O’Hallaron 著,龚奕利 & 雷迎春 译. 机械工业出版社,第二版(2014 年) 参考网站:http://csapp.cs.cmu.edu 六、其他需说明的
大纲修订人:刘辉 修订日期:2020-12-20 大纲审定者:许波 审定日期:2022年1月
大纲修订人: 刘辉 修订日期:2020 -12 -20 大纲审定者: 许波 审定日期: 2022 年 1 月