asv*_*kau 45
最初,.COM
文件是8086代码的文字blob(即16位x86).它意味着加载到固定地址,加载器将直接跳转到其地址的第一个字节.它的尺寸也有限.
一个.EXE
文件有多个报头信息.因此它需要动态链接等结构,其中DLL的代码可以.EXE
在加载时被修补到内存空间.它最初来自DOS,但它现在用于Windows.
然而,DOS和Windows最终进入了一个模型,其中文件扩展名在一个.COM
并.EXE
没有任何意义.程序加载器首先检查文件的前两个字节.如果它恰好是字符串MZ
(传说中它代表早期Microsoft员工的姓名缩写),它会将其视为一个EXE
,否则它将加载它就像它是一个COM
文件一样.由于MZ
没有映射到合理的x86指令来启动程序,因此他们可以逃脱这一点.净效果:在某些版本的DOS/Windows中,.EXE
可以使用命名,.COM
反之亦然.例如,在DOS/Windows的许多版本中,着名的COMMAND.COM
实际上是一个EXE
.
我不确定前一段适用于基于NT的Windows版本.我想他们现在.COM
完全抛弃了这些东西.
最后,.BAT
文件是要执行的命令列表,就像在命令提示符下键入它们一样.然而,现在大多数人将它们命名为.CMD
.
归档时间: |
|
查看次数: |
28385 次 |
最近记录: |