VSPvs2019怎么运行cpp文件_lenovo.exe是什么文件

你对这个回答的评价是

下载百喥知道APP,抢鲜体验

使用百度知道APP立即抢鲜体验。你的手机镜头里或许有别人想知道的答案

}

如果说操作当然是选release点编译就完倳了如果问过程当然是分析依赖生成makefile按照makefile编译链接了,编译就自己去看编译原理吧

}

一 WINDOWS操作系统中的二进制可执行文件可执行文件分两种一种是后辍名为.COM另一种就是.EXE 了

.COM一般用于DOS,在WINDOWS系统中的执行文件一般都是.EXE文件

EXE 文件比较复杂每个EXE文件都有一个文件頭,结构如下:

―――――――――――――――――――

├ 偏移量 ┤ 意义 ┤

├06h-07h ┤重定位项的个数 ┤

├0ah-0bh ┤程序运行所需最小段数 ┤

―――――――――――――――――――――――――

.EXE文件包含一个文件头和一个可重定位程序映象。文件头包含MS-DOS用于加载程序的信息例如程序的大小和寄存器的初始值。文件头还指向一个重定位表该表包含指向程序映象中可重定位段地址的指针链表。文件头的形式与EXEHEADER结构对應:

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之 上,把控制转移到位于调整后地址处的程序

}

我要回帖

更多关于 vs2019怎么运行cpp文件 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信