没有合适的资源?快使用搜索试试~ 我知道了~
首页Linux下Hello.c程序全程解析:从编译到运行的生命历程
Linux下Hello.c程序全程解析:从编译到运行的生命历程
需积分: 0 0 下载量 136 浏览量
更新于2024-07-01
收藏 4.32MB PDF 举报
本篇计算机系统课程报告名为"CS大作业论文1",由计算学部1936602班学生李旻翀撰写,针对的是Linux系统下的Hello'sP2P程序的全程生命周期。作者以《深入理解计算机系统》一书为理论基础,并结合课堂讲解,深入研究了hello.c文件从预处理、编译、汇编到链接、运行以及进程管理的全过程。报告首先介绍了hello.c程序的基本概念,随后逐章详细探讨了各个阶段的技术细节,如预处理阶段如何通过gcc命令进行操作,编译时如何将C源代码转化为汇编语言,汇编后的目标文件如何通过ld命令链接成可执行文件,以及链接过程中涉及的重定位和虚拟地址空间。报告还涵盖了进程管理和Shell在执行流程中的作用。 在整个研究过程中,作者不仅关注了程序的生命周期,还深入理解了底层原理,如编译器的工作原理、汇编语言的运用、链接过程中的动态链接等,这有助于读者从宏观和微观层面全面理解计算机系统的运作机制。报告的每一章都以实例为基础,通过实际操作和解析来阐述概念,使得理论学习与实践操作相结合,体现出学以致用的学习态度。虽然摘要部分得分较低,但根据报告内容的深度和实用性,有可能在后续的评审中获得加分。
资源详情
资源推荐
![](https://csdnimg.cn/release/download_crawler_static/86274019/bga.jpg)
计算机系统课程报告
- 9 -
3.3 Hello 的编译结果解析
3.3.1 文件结构分析
对 hello.s 文件整体结构分析如下:
表格 2 hello.s文件结构
内容 含义
.file
源文件
.text
代码段
.global
全局变量
.data
存放已经初始化的全局和静态 C 变量
.section .rodata
存放只读变量
.align
对齐方式
.type
表示是函数类型/对象类型
.size
表示大小
.long .string
表示是 long 类型/string 类型
3.3.2 数据类型
在 hello.s 中,涉及的数据类型包括以下三种:整数,字符串,数组。下面对
每种数据类型依次进行分析。
一. 整数
在 hello.s 中,涉及的整数有:
1. int sleepsecs
查看 C 语言文件可知,sleepsecs 为 int 型全局变量,已被初始化赋值
2.5。
![](https://csdnimg.cn/release/download_crawler_static/86274019/bgb.jpg)
计算机系统课程报告
- 10 -
经过编译阶段得到的 hello.s 文件中,编译器在.text 段中将 sleepsecs
声明为全局变量,在.type 段声明其为 object 类型,在.size 段声明其长
度为 4,设置其值为 2。具体情况如下:
图 4 sleepsecs的情况
2. int i
编译器将局部变量存储在寄存器或者栈空间中。i 作为函数内部的局
部变量,并不占用文件实际节的空间,只存在于运行时栈中。对于 i
的操作就是直接对寄存器或栈进行操作。
在 hello.s 中我们可以看出,i 占据了 4 字节的地址空间:
3. int argc
argc 是 main 函数的参数之一,64 位编译下,由寄存器传入,进而保
存在堆栈中。
4. 立即数 3
立即数 3 在汇编语句中直接以$3 的形式出现
二. 字符串
程序中保存了两个字符串,分别为:
图 5 字符串的情况
两者均为字符串常量,储存在.text 数据段中。\XXX 为 UTF-8 编码,一个
汉字对应三个字节。
剩余53页未读,继续阅读
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/a0b51dda444b4108b9feacf9630f6a50_weixin_35761245.jpg!1)
曹多鱼
- 粉丝: 21
- 资源: 314
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
会员权益专享
最新资源
- 谷歌文件系统下的实用网络编码技术在分布式存储中的应用
- 跨国媒体对南亚农村社会的影响:以斯里兰卡案例的社会学分析
- RFM2g接口驱动操作手册:API与命令行指南
- 基于裸手的大数据自然人机交互关键算法研究
- ABAQUS下无人机机翼有限元分析与局部设计研究
- TCL基础教程:语法、变量与操作详解
- FPGA与数字前端面试题集锦:流程、设计与Verilog应用
- 2022全球互联网技术人才前瞻:元宇宙驱动下的创新与挑战
- 碳排放权交易实战手册(第二版):设计与实施指南
- 2022新经济新职业洞察:科技驱动下的百景变革
- 红外与可见光人脸融合识别技术探究
- NXP88W8977:2.4/5 GHz 双频 Wi-Fi4 + Bluetooth 5.2 合体芯片
- NXP88W8987:集成2.4/5GHz Wi-Fi 5与蓝牙5.2的单芯片解决方案
- TPA3116D2DADR: 单声道数字放大器驱动高达50W功率
- TPA3255-Q1:315W车载A/D类音频放大器,高保真、宽频设计
- 42V 输入 5A 降压稳压器 TPS54540B-Q1 的特点和应用
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)