- 1、本文档共12页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
深入理解计算机系统:程序结构和执行
深入理解计算机系统 :程序结构和执行
1. 信信息息就就是是位位 + 上上下下文文
程程序序被被其其他他程程序序翻翻译译成成不不同同的的格格式式
大部分的现代系统都使用 ASCII 准来表示文本字符, 这种方式实际上就是用 一个唯一的单字节大小
的整数值来表示每个字符。 例如图 1 -2 中给出了 hello. c 程序的 ASCII 码表示。
系系统统中中所所有有的的信信息息—包包括括磁磁盘盘文文件件、、 存存储储器器中中的的程程序序、、 存存储储器器中中存存放放的的用用户户数数据据以以及及网网络络上上传传
送送的的数数据据,, 都都是是由由一一串串位位表表示示的的。。
区区分分不不同同数数据据对对象象的的唯唯一一方方法法是是我我们们读读到到这这些些数数据据对对象象时时的的上上下下文文。。
为为了了在在系系统统上上运运行行 程程序序,,每每条条 C 语语句句都都必必须须被被其其他他程程序序转转化化为为一一系系列列的的低低级级机机器器语语言言指指令令。。 然然
后后这这些些指指令令按按照照一一种种称称为为可可执执行行目目 程程序序的的格格式式打打好好包包,, 并并以以二二进进制制磁磁盘盘文文件件的的形形式式存存放放起起
来来。。 目目 程程序序也也称称为为可可执执行行目目 文文件件。。这这个个翻翻译译的的过过程程可可分分为为四四个个阶阶段段完完成成,, 如如图图 1 -3 所所示示。。
执执行行这这四四个个阶阶段段的的程程序序 ((预预处处理理器器、、 编编译译器器、、 汇汇编编器器和和链链接接器器)) 一一起起构构成成了了编编译译系系 统统 ((
compilation system))。。
• 预处理阶段。 预处理器 (cpp ) 根据以字符 # 开头的命令, 修改原始的 C 程序。 比如 hello. c 中第 1
行的 #include stdio. h 命令告诉预处理器读取系统头文件 stdio. h 的内容,并把它直接插入到程序文本
中。 结果就得到了另 一个 C 程序, 通常是以 . i 作为文件扩展名 。
• 编译阶段。 编译器 ( cc 1 ) 将文本文件 hello. i 翻译成文本文件 hello. s, 它包含一个汇编语言程序。
汇编语言程序中的每条语句都以一种 准的文本格式确切地描述了一条低级机器语言指令。 汇编语言
是非常有用的, 因为它为不同高级语言的不同编译器提供了通用的输出语言。 例如, C 编译器和
Fortran 编译器产生的输出文件用的都是一样的汇编语言。
• 汇编阶段。 接下来, 汇编器 ( as ) 将 hello. s 翻译成机器语言指令, 把这些指令打包成一种叫做可
重定位目 程序 ( relocatable obj ect progra ) 的格式, 并将结果保存在目 文件 hello. o 中。 hello. o
文件是一个二进制文件, 它的字节编码是机器语言指令而不是字符。 如果我们在文本编辑器中打开
hello. o 文件, 看到的将是一堆乱码。
• 链接阶段。 请注意, hello 程序调用 了 printf 函数, 它是每个 C 编译器都会提供的 准 C 库中的一
个函数。 printf 函数存在于一个名为 printf. o 的单独的预编译好了的目 文件中, 而这个文件必须以
某种方式合并到我们的 hello. o 程序中。 链接器 ( ld ) 就负责处理这种合并。 结果就得到 hello 文
件, 它是一个可执行目 文件 ( 或者简称为可执行文件), 可以被加载到内存中,由系统执行。
有有一一些些重重要要的的原原因因促促使使程程序序员员必必须须知知道道编编译译系系统统是是如如何何工工作作的的,, 其其原原因因如如下下 ::
优优化化程程序序性性能能。。 现现代代编编译译器器都都是是成成熟熟的的工工具具,, 通通常常可可以以生生成成很很好好的的代代码码。。 作作为为程程序序员员,, 我我们们无无
需需为为了了写写出出高高效效代代码码而而去去了了解解编编译译器器的的内内部部工工作作。。 但但是是,, 为为了了在在 C 程程序序中中做做出出好好的的编编码码选选择择,,
我我们们确确实实需需要要了了解解一一些些机机器器代代码码以以及及编编译译器器将将不不同同
您可能关注的文档
- 学霸村暑假资料包—《方程组》计算题库.pdf
- 008专业标注-t20天正给排水v2.0操作使用教程分解版.pdf
- 兴城古城建筑规划与未来发展方向.pdf
- 幼儿园大班仓颉造字.ppt
- 念奴娇赤壁怀古 小学生简约版 供背诵用.ppt
- 昭和大学丰洲医院预防医学中心介绍(2016.6.3).pdf
- 23 男孩,别哭.pptx
- 2017年海南中考化学备考会模拟试卷含解析(八).doc
- 短文两篇《谈读书》ppt.ppt
- 房产中介接待.ppt
- 第四章-语法(前半)市公开课一等奖百校联赛优质课金奖名师赛课获奖课件.ppt
- 第八章狄拉克函数省名师优质课赛课获奖课件市赛课一等奖课件.ppt
- 弧长和扇形面积95430省名师优质课赛课获奖课件市赛课百校联赛优质课一等奖课件.ppt
- 生命生命3人教新课标四年级语文下册市名师优质课比赛一等奖市公开课获奖课件.pptx
- 人教版二年级数学下册第五单元5.7-整理和复习市名师优质课比赛一等奖市公开课获奖课件.pptx
- 新人教版四年级上册小数的意义市公开课获奖课件省名师优质课赛课一等奖课件.ppt
- 九年级下册化学第九单元金属第三节钢铁的锈蚀与防护公开课教学市公开课一等奖省优质课赛课一等奖课件.pptx
- 思考题财产权——知识产权.pptx
- 物流工程课件分析.pptx
- 外研版英语四下Module7Countries课件市公开课获奖课件省名师优质课赛课一等奖课件.ppt
最近下载
- 2024年部编版七年级上册语文第二单元综合检测试卷及答案.doc VIP
- 输送带截面积S及输送能力Q计算(图文版).xls
- 小学英语_What did you buy教学设计学情分析教材分析课后反思.doc
- GB_Z 42344-2023 制药机械(设备)计算机化系统验证指南.docx
- (JTS165-2013)海港总体设计规范清晰版.pdf
- 张新民《财务报表分析》第四章.ppt VIP
- 2024款比亚迪元UP领先超越型401301KM_用户手册驾驶指南车主车辆说明书电子版.pdf
- 《煤矿巷道工程全断面岩石掘进机(.pdf VIP
- 金民工程数据资源汇聚过程介绍.pdf
- 关于地震灾害案例分析.ppt
文档评论(0)