程序在计算机上运行的过程

c/c++语言程序执行过程:

预处理>编译>汇编>链接>装载

预处理:删除宏定义,处理预编译指令,删除注释等

编译:词法分析、语法分析、语义分析、源代码优化、代码生成、目标代码优化

汇编:转换成汇编语言即二进制表示的语言

链接:静态链接即把需要的方法和数据复制到本方法的地址内,组装成单一程序,浪费内存。动态链接即在运行期绑定

装载:

  • 创建虚拟地址空间

  • 读取可执行文件头,并且建立虚拟空间与可执行文件的映射关系

  • 将CPU的指令寄存器设置为运行库的初始函数(初始函数不止一个,第一个启动函数为:_start),初始了main()函数的环境,然后指向可执行文件的入口

猜你喜欢

转载自www.cnblogs.com/minikobe/p/9244358.html