程序存储内容主要包括以下几个方面:
程序代码:
这是程序存储的核心部分,包含了程序执行所需的所有指令。程序代码通常以二进制形式存储在计算机的内存中,是静态的,即在程序执行过程中不会发生变化。代码区通常是只读的,以防止程序在运行时修改指令,确保程序的稳定性。
只读数据段(RO-data):
这部分存储程序中定义的常量。这些常量在程序执行过程中不会被修改,因此被视为只读数据。
读写数据段(RW-data):
这部分存储初始化为非0值的全局变量。这些变量在程序执行过程中可以被读取和修改。
未初始化数据段(ZI-data):
虽然这部分在生成的可执行文件中不占用空间(即不包含在文件大小中),但它用于存放未初始化的全局变量及初始化为0的变量。在程序加载时,这部分内存会自动设置为零。
其他元数据:
编译完成后,还会生成一些辅助文件,如.map文件,该文件说明了各个函数占用的空间大小和地址,以及各个字段的关系和大小。
总结起来,程序存储内容主要包括程序代码、只读数据段、读写数据段、未初始化数据段以及一些用于编译过程的元数据。这些内容在程序执行时由计算机自动加载到内存中,并在程序退出后释放。