Windows可执行文件简述
云浮美食操作系统中的文件是一种抽象的机制,提供了一种在磁盘上保存信息而且方便以后读取的方法。在Windows操作系统中,一个用户可以最直接体会到的文件的形式就是以.exe、.dll等为扩展名的可执行文件。伴随着Windows操作系统的不断进步,其可执行文件的格式也发生了巨大变化。这期间主要有4个过程:DOS中出现的最简单的以为扩展名的可执行文件和以.exe为扩展名的MZ格式(MZ是MZ格式的主要作者Mark Zbikowski的名字的缩写)的可执行文件,Win 3.x下出现的NE(New Executable:分段可执行文件)格式的.exe和.dll文件,Win 3.x和Win9x所专有的LE(Linear Executable:线性可执行文件,专用于VxD文件),Win9x和Win NT/2000/XP下的32位的可执行文件PE(Portable Executable:可移动的可执行文件)。这里面com、MZ和NE属于Win16,PE属于Win32,LE可以兼容Win16和Win32五一首日大雁塔游客稀少。
在一个操作系统中,可执行的代码最终被装入内存执行之前是以文件的方式存放在磁盘中的,也就是以可执行文件的方式。下面是Microsoft Windows操作系统中的可执行文件的概述。
1.com格式
Windows下最简单的可执行文件就是DOS下的以为扩展名的com文件。com文件是旧有的只有64kb内存的cp/m机器的产物。com格式文件最大64K,com文件内含16位程序的二进制代码映像,没有重定位信息。
com高考成绩出来了吗文件包含程序的二进制代码的一个绝对映像。也就是说,为了运行程序准确的处理器指令和内存中的数据,MS-DOS通过直接把该映像从文件拷贝到内存而加载com程序;它不作任何改变。
为加载一个com程序,MS-DOS首先试图分配内存,因为com程序必须位于一个64K的段中,所以com文件的大小不能超过65,024(64K减去用于PSP的256字节和用于一个起始堆
栈的至少256字节)。如果MS-DOS不能为程序、一个PSP、一个起始堆栈分配足够内存,则分配尝试失败。否则,MS-DOS分配尽可能多的内存(直至所有保留内存)。即使com程序本身不能大于64K。在试图运行另一个程序或分配另外的内存之前,大部分com程序释放任何不需要的内存。
分配内存后,MS-DOS在该内存的头256字节建立一个PSP(Program Segment Prefix,程序段前缀),PSP结构如下:
偏移 | 大小(Byte) | 说 明 |
0000h | 02 | 中断20H |
0002h | 02 | 以节计算的内存大小(利用这个可看出是否感染引导型病毒) |
0004h | 01 | 保留 |
0005h | 05 | 至DOS的长调用 |
000Ah | 02 | INT 22H 入口 IP |
000Ch | 02 | INT 22H 入口 CS |
000Eh | 02 | INT 23H 入口 IP |
0010h | 02 | INT 23H 入口 CS |
0012h | 02 | INT 24H 入口 IP |
0014h | 02 | INT 24H 入口 CS |
0016h | 02 | 父进程的PSP段值(可测知是否被跟踪) |
0018h | 14 | 存放购买茶叶20个SOFT号 |
002Ch | 02 | 初会计初级打印准考证环境块段地址(从中可获知执行的程序名) |
002Eh | 04 | 存放用户栈地址指针 |
0032h | 1E | 保留 |
0050h | 03 | DOS调用(INT 21H / RETF) |
合疗大病救助如何办理 0053h | 02 | 保留 |
0055h | 07 | 扩展的FCB头 |
005Ch | 10 | 格式化的FCB1 |
006Ch | 10 | 格式化的FCB2 |
007Ch | 04 | 保留 |
0080h | 80 | 命令行参数长度 |
0081h | 127 | 命令行参数 |
如果PSP中的第一个FCB含有一个有效驱动器标识符,则置AL为00h,否则为0FFh。MS-DOS还置AH为00h或0FFh,这依赖于第二个FCB是否含有一个有效驱动器标识符。
建造PSP后,MS-DOS在PSP后立即开始(偏移100h)加载com文件,它置SS、DS和ES为PSP的段地址,接着创建一个堆栈。为了创建这个堆栈,MS-DOS置SP为0000h。如果没有分配64K内存,则要置寄存器为比所分配的字节总数大2的值。最后,它把0000h推进栈,这是为了保证与在早期MS-DOS版本上设计的程序的兼容性。
MS-DOS通过把控制传递偏移100h处的指令而启动程序。程序设计者必须保证com文件的
第一条指令是程序的入口点。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论