博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《程序是怎么跑起来的》第八章
阅读量:6547 次
发布时间:2019-06-24

本文共 458 字,大约阅读时间需要 1 分钟。

源代码完成后,就可以编译生成可执行文件了,负责实现该功能的是编译器。

CPU能直接解析并运行的不是源代码而是本地代码的程序,作为计算机大脑的Pentium等CPU,也能解释已经转换成本地代码的程序内容。编译器转换源代码后,就会生成本地文件。不过,本地文件是无法直接运行的。为了得到可以运行的EXE文件,编译之后还需要进行“链接”处理。

EXE文件是作为单独的文件储存在硬盘中的,通过资源管理器找到并双击EXE文件,就会把EXE文件的内容加载到内存中运行。EXE文件中给变量及函数分配了虚拟的内存地址。在程序运行时,虚拟的内存地址会转换成实际的内存地址,连接器会在EXE文件的开头,追加转换内存地址所需的必要信息。EXE文件的在配置信息,就成为了变量和函数的相对地址。相对地址表示的是相对于基点地址的偏移量。还有就是EXE文件中并不存在栈及堆的组。栈和堆需要的内存空间是在EXE文件加载到内存后开始运行时得到分配的。

转载于:https://www.cnblogs.com/lee-88/p/10574592.html

你可能感兴趣的文章
iOS学习之Objective-C 2.0 运行时系统编程
查看>>
Exchange2007-Exchange2010升级-06 数据库高可用组的创建
查看>>
phpHiveAdmin是如何通过Hive/Hadoop工作的
查看>>
双向链表内结点的删除(4)
查看>>
项目总结
查看>>
JSON字符串转成对象
查看>>
SaltStack 中ZMQ升级
查看>>
implode 和 explode
查看>>
exchange 2013 提示“HTTP 500内部服务器错误”
查看>>
Linux运维学习笔记之一:运维的原则和学习方法
查看>>
怎样使用原型设计中的组件样式功能
查看>>
python threading
查看>>
谷安天下2013年6月CISA考前辅导 第一季
查看>>
ARM程序规范
查看>>
我的友情链接
查看>>
Qt下的OpenGL 编程(8)文字、FPS、动画
查看>>
Android开发入门系列
查看>>
文件删除封装,懒得以后再写了
查看>>
Linux 脚本之用户创建
查看>>
Mysql字段类型设计相关问题!
查看>>