您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > 实验二hello可执行程序的生成以及GCC和GDB使用
浙江大学城市学院计算机系统原理实验浙江大学城市学院实验报告课程名称计算机系统原理实验实验项目名称实验二hello可执行程序的生成以及GCC和GDB使用学生姓名专业班级学号实验成绩指导老师(签名)日期注意:务请保存好各自的源代码,已备后用。请把作业同时上传到BB平台和FTP。文件名为:学号_姓名_日期_实验几,如30801001_姓名_20100305_实验01一、实验目的:1.熟悉Linux操作系统环境;2.通过了解高级语言源程序和目标机器代码的不同表示及其相互转换,深刻理解高级语言和机器语言之间的关系,以及机器语言和不同体系结构之间的关系。3掌握GCC在Linux环境下编写C语言程序命令和步骤;4.掌握GDB调试C语言程序命令和步骤。二、实验内容:1、使用文本编辑器编写hello源代码;2、使用GCC编译器,逐步编译hello程序,观察中间文件。3、使用文本编辑器编写tst.c源程序;4、使用GDB调试tst程序,掌握常用调试命令。三、实验步骤:1、使用文本编辑器编写hello程序源码,截图展示。浙江大学城市学院计算机系统原理实验2、根据实验讲义,使用不同的命令选项,输出hello编译过程中间文件,截图展示。3、使用Editplus或者其他合适的软件,查看hello.i,hello.s,hello.ohello文件内容,截图展示。浙江大学城市学院计算机系统原理实验浙江大学城市学院计算机系统原理实验4、使用文本编辑器编写实验讲义中给出的tst.c源码,截图展示。5、根据实验讲义步骤,学习逐步调试tst程序,掌握GDB常用命令,截图展示。浙江大学城市学院计算机系统原理实验浙江大学城市学院计算机系统原理实验6、结合实验操作以及GDB的help,了解以下命令的作用。gdb启动gdblist列出函数run运行程序break设置断点print强制调用函数continue继续运行程序直到下一个断点next执行下一步step单步进入info查看程序信息finish退出当前函数quit退出gdbhelp帮助指令浙江大学城市学院计算机系统原理实验四、思考题(请根据自己的理解,能回答多少就答多少)(1)分析同一个源程序在不同机器上生成的可执行目标代码是否相同。提示:从多个方面(如ISA、OS和编译器)来分析。不相同。因为对于不同的机器其硬件组成不同,例如:CPU。所以同一个源程在不同机器上生成的可执行目标代码是不同的。(2)你能在可执行目标文件中找出函数printf()对应的机器代码段吗?能的话,请标示出来。不能。因为源程序中的printf函数在可执行文件中已转换为机器语言。被翻译的机器语言中有printf函数,但是不知道是从哪一段开始翻译的。(3)为什么源程序文件的内容和可执行目标文件的内容完全不同?因为源程序文件时可以直接编写的。而可执行文件是被机器语言翻译过后的执行内容。所以内容不同。
本文标题:实验二hello可执行程序的生成以及GCC和GDB使用
链接地址:https://www.777doc.com/doc-2458532 .html