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