首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

dos下exe文件格式,该怎么解决

2012-04-06 
dos下exe文件格式请问一下dos下exe文件的格式真正的指令在从什么位置执行?[解决办法]在dos下,可执行程序都

dos下exe文件格式
请问一下dos下exe文件的格式       真正的指令在从什么位置执行?

[解决办法]
在dos下,可执行程序都是由外壳程序进行加载,运行完成后再返回外壳程序,exe文件中的程序执行过程如下:
1. 由其他程序(Debug, command(shell 程序))将exe文件中的程序加载入
内存;
2. 设置 CS:IP指向程序第一条要执行的指令(即程序的入口地址),从而使程序可以运行

3. 程序运行结束后,返回到加载者

所以程序是从程序被加载进入内存后,第一次设定的CS:IP指向的内存处开始执行的。

[解决办法]
bbs.pediy.com 有一篇描述模拟系统加载 exe 代码的文章,写得不错可以借鉴。
[解决办法]
关于EXE,可以查查VC的包含文件里的相关结构
[解决办法]
exe文件的格式,网上都有,你可以自己搜一下,或者给我发Email:little_grass at 163.com,我给你发一个。
[解决办法]
文件头:
NE_MAGIC = 0 # Magic number
NE_EXRABYTES = 1 # Bytes on last page of file
NE_PAGES = 2 # Pages in file
NE_RELOCITEMS = 3 # Relocations
NE_HEADERSIZE = 4 # Size of header in paragraphs
NE_MINALLOC = 5 # Minimum extra paragraphs needed
NE_MAXALLOC = 6 # Maximum extra paragraphs needed
NE_INITSS = 7 # Initial (relative) SS value
NE_INITSP = 8 # Initial SP value
NE_CHECHSUM = 9 # Checksum
NE_INITIP = 10 # Initial IP value
NE_INITCS = 11 # Initial (relative) CS value
NE_RELOCTABLE = 12 # File address of relocation table
NE_OVERLAY = 13 # Overlay number

指令从 ne_header[NE_HEADERSIZE]*16 + ne_header[NE_INITCS]*16 开始
[解决办法]
DOSEXE使用的是MZ格式,可以参考一下其结构图

热点排行