导航:首页 > 源码编译 > 程序编译后如何存储

程序编译后如何存储

发布时间:2024-01-22 23:11:15

1. 一个程序编译完成后在内存中是如何存储的

不存储在内存条上,存储在硬盘上,当需要程序运行时,程序被加载到内存条上。可以去看一下王爽的汇编语言,里面有关于这个的介绍,看目录就能找到了

2. c程序代码写好后,怎么保存到电脑里什么格式

具体如下:

1、第一步,打开C-Free5.0创建一个新的空白页,然后编写C语言的基本格式,注意格式缩进,见下图,然后进入下一步。

3. C语言编程怎么保存

C语言编程是通过C语言程序编辑软件上面的文件--保存(或另存为)按键或选项,将您编写的程序保存在您指定的电脑磁盘目录下的。
如果没有用编辑软件编写的话,则可以直接你要存储的目录新建一个文本文档(*.txt)文件,打开后在里面编写你的.C或.H文件,编辑完毕后,点击文件---保存。同时修改文件名,将.txt文件修改为.C或.H文件,然后加载到C编辑器里面进行编辑,运行就可以了。

4. 编译后的exe可执行程序是怎么存储的在c++中如何用语句或函数查看程序的存储代码

EXE File(可执行程序),一种可在操作系统存储空间中浮动定位的可执行程序。MS-DOS和MS-WINDOWS下,此类文件扩展名为.exe
WINDOWS操作系统中的二进制可执行文件,可执行文件分两种一种是后辍名为.COM另一种就是.EXE 。
.COM一般用于DOS,在WINDOWS系统中的执行文件一般都是.EXE文件。在 MS-DOS 中,用以标识可执行文件的文件扩展名。用户在提示行中输入不带 .exe 扩展名的文件名后按 Enter 键就能运行可执行程序
EXE 文件比较复杂,每个EXE文件都有一个文件头,结构如下:
EXE文件头信息
―――――――――――――――――――
├ 偏移量 ┤意义┤
├00h-01h ┤MZ'EXE文件标记┤
├02h-03h ┤文件长度除512的余数┤
├04h-05h ┤...............商┤
├06h-07h ┤重定位项的个数┤
├08h-09h ┤文件头除16的商┤
├0ah-0bh ┤程序运行所需最小段数 ┤
├0ch-0dh ┤..............大.... ┤
├oeh-0fh ┤堆栈段的段值 (SS)┤
├10h-11h ┤........sp┤
├12h-13h ┤文件校验和┤
├14h-15h ┤IP┤
├16h-17h ┤CS┤
├18h-19h ┤............┤
├1ah-1bh ┤............┤
├1ch┤............┤
―――――――――――――――――――――――――
.EXE文件包含一个文件头和一个可重定位程序映象。文件头包含MS-DOS用于加载程序的信息,例如程序的大小和寄存器的初始值。文件头还指向一个重定位表,该表包含指向程序映象中可重定位段地址的指针链表。文件头的形式与EXEHEADER结构对应:
EXEHEADER STRUC
exSignature dw 5A4Dh ;.EXE标志
exExraBytes dw ;最后(部分)页中的字节数
exPages dw ;文件中的全部和部分页数
exRelocItems dw ;重定位表中的指针数
exHeaderSize dw ;以字节为单位的文件头大小
exMinAlloc dw ;最小分配大小
exMaxAlloc dw ;最大分配大小
exInitSS dw ;初始SS值
exInitSP dw ;初始SP值
exChechSum dw ;补码校验值
exInitIP dw ;初始IP值
exInitCS dw ;初始CS值
exRelocTable dw ;重定位表的字节偏移量
exOverlay dw ;覆盖号
EXEHEADER ENDS程序映象
包含处理器代码和程序的初始数据,紧接在文件头之后。它的大小以字节为单位,等于.EXE文件的大小减去文件头的大小,也等于exHeaderSize的域的值乘以16。MS-DOS通过把该映象直接从文件拷贝到内存加载.EXE程序然后调整定位表中说明的可重定位段地址。
定位表是一个重定位指针数组,每个指向程序映象中的可重定位段地址。文件头中的exRelocItems域说明了数组中指针的个数,exRelocTable域说明了分配表的起始文件偏移量。每个重定位指针由两个16位值组成:偏移量和段值。 为加载.EXE程序,MS-DOS首先读文件头以确定.EXE标志并计算程序映象的大小。然后它试图申请内存。首先,它计算程序映象文件的大小加上PSP的大小再加上EXEHEADER结构中的exMinAlloc域说明的内存大小这三者之和,如果总和超过最大可用内存块的大小。则MS-DOS停止加载程序并返回一个出错值。如果总和没超过最大可用内存块的大小,它便计算程序映象的大小加上PSP的大小再加上EXEHEADER结构中exMaxAlloc域说明的内存大小之和,如果第二个总和小于最大可用内存块的大小,则MS-DOS 分配计算得到的内存量。否则,它分配最大可用内存块。分配完内存后,MS-DOS确定段地址,也称为起始段地址,MS-DOS从此处加载程序映象。如果exMinAlloc域和exMaxAlloc域中的值都为零,则MS-DOS把映象尽可能地加载到内存最高端。否则,它把映象加载到紧挨着PSP域之上。接下来,MS-DOS读取重定位表中的项目调整所有由可重定位指针说明的段地址。对于重定位表中的每个指针,MS-DOS寻找程序映象中相应的可重定位段地址,并把起始段地址加到它之上。一旦调整完毕,段地址便指向了内存中被加载程序的代码和数据段。 MS-DOS在所分配内存的最低部分建造256字节的PSP,把AL和AH设置为加载 .COM程序时所设置的值。MS-DOS使用文件头中的值设置SP与SS,调整SS初始值,把起始地址加到它之上。MS-DOS还把ES和DS设置为PSP的段地址.最后,MS-DOS从程序文件头读取CS和IP的初始值,把起始段地址加到CS之 上,把控制转移到位于调整后地址处的程序。
具体参考:http://ke..com/view/41812.htm

5. 一个程序编译完成后在内存中是如何存储的


如上所说,内存被分成 程序代码区、堆区、栈区 还有个全局数据区

1.程序代码区:存放你的全部代码

2.堆区:存放用new 申请的变量(如 int a = new int(5))

3.栈区;存放int = 5;之类的变量(必须放在函数中)

4.全局数据区:存放全局或静态变量,即定义在函数外的,或加上static的变量
(如:static int a = 5;)

6. 编写好一个C语言程序,如何把数据一直保存下来

用数组保存。定义一个数组。

如:int a[6]={1,2,3,4,5,6};

然后输出

for(i=0;i<6;i++){

printf("%d",a[i]);}

代码如下:

#include<stdio.h>

int main(){

int a[6]={1,2,3,4,5,6};

int i;

for(i=0;i<=5;i++)

printf("%d ",a[i]);

}

(6)程序编译后如何存储扩展阅读

保存方法二如下:

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

int main()

{

FILE *fp;

char in;

fp = fopen("test.txt","w");

printf("请输入一个字符串(以!结束): ");

while((in=getchar()) != '!')

{

if(in <='z' && in >= 'a')

{

in -= 32;

}

fputc(in,fp);

}

fclose(fp);

return 0;

}

阅读全文

与程序编译后如何存储相关的资料

热点内容
android公网ip 浏览:611
要塞1地图放哪个文件夹 浏览:848
凡科建站怎么弄服务器 浏览:939
苹果手机怎么设置app播放 浏览:202
下载网站源码用什么浏览器 浏览:241
六线谱pdf 浏览:156
linuxmysqlsock 浏览:239
人教版数学pdf下载 浏览:460
文档安全加密系统 浏览:491
数控铣床编程简单数字 浏览:788
编程电缆如何重启 浏览:121
myqq命令行发消息 浏览:365
日产逍客怎么使用app升窗 浏览:503
安卓系统怎么快速删除微信内容 浏览:653
csharppython 浏览:409
程序员脖子按摩仪 浏览:563
小米桌面文件夹乱码怎么回事 浏览:858
点歌台app怎么连接 浏览:318
大学电脑编程学什么好 浏览:348
上哪里取消应用加密 浏览:172