关于C程序的运行环境(初始化?)的问题.
刚刚了解到C Runtime Library的一些知识,认识到通常以为的main不是真正的入口
而是由C Runtime调用的,runtime需要做一些初始化的工作。程序结束时要由runtime
来做些清理工作,应该可以(?)说runtime提供了C程序的运行环境吧?
我的问题是,
(1)如果是runtime提供了这个环境,runtime与操作系统的关系是什么呢?
不是说操作系统提供了程序运行的服务吗?
(2)runtime到底干了些什么,比如说初始化吧,看网上一些文章说做了一些
堆栈啊,堆啊的初始设置?我知道函数的参数是由堆栈来传递的,可是函数
编译好了以后不就是已经包含了使用堆栈的指令了吗?runtime设置堆栈设置些啥呢?
可以给解释一下初始化的那个runtime函数吗?现在还看不懂。
(3)x86下,C写成的程序,对寄存器使用有什么约定吗?我看“hello,world!"的反汇编代码
看到那些代码像天书一样,硬是和c程序对不上钩。我想是和不知道每一个寄存器被用来
干了解的缘故?
谢谢!
而是由C Runtime调用的,runtime需要做一些初始化的工作。程序结束时要由runtime
来做些清理工作,应该可以(?)说runtime提供了C程序的运行环境吧?
我的问题是,
(1)如果是runtime提供了这个环境,runtime与操作系统的关系是什么呢?
不是说操作系统提供了程序运行的服务吗?
(2)runtime到底干了些什么,比如说初始化吧,看网上一些文章说做了一些
堆栈啊,堆啊的初始设置?我知道函数的参数是由堆栈来传递的,可是函数
编译好了以后不就是已经包含了使用堆栈的指令了吗?runtime设置堆栈设置些啥呢?
可以给解释一下初始化的那个runtime函数吗?现在还看不懂。
(3)x86下,C写成的程序,对寄存器使用有什么约定吗?我看“hello,world!"的反汇编代码
看到那些代码像天书一样,硬是和c程序对不上钩。我想是和不知道每一个寄存器被用来
干了解的缘故?
谢谢!
...全文
相关推荐
ARM的C语言运行环境初始化研究
摘要:介绍了在ADS1.2集成开发环境下,用户使用C语言编写ARM程序时,C程序的运行环境初试化,着重描述了程序中全局变量的初始化问题,对变量的存储空间分配进行了较详细的说明。
基于ARM的C运行环境的初始化研究-论文
基于ARM的C运行环境的初始化研究
又一次被C99给坑了之结构体变量初始化问题
这里挑出一个最新发现的一个让我郁闷半天的小问题展开来聊聊。
24c16读写程序+初始化
储存器为24c16,51单片机控制,软模拟读写的时序, 还有初始化100个地址的方法,并可在超级终端看到
S3C2410初始化程序
文件名称 : 2410INIT.S ;* 文件功能 : S3C2410 启动代码,配置存储器,ISR,堆栈,初始化C向量地址


