高手请进!!100分题???
各位大哥,小弟才学汇编,帮忙讨论一下在dos下.exe与.com的区别.是不是与操作系统的加载有关?谢谢!!!请赐教!!!
问题点数:100、回复次数:12Top
1 楼kenko(无聊人)回复于 2003-12-01 22:03:14 得分 20
我是菜鸟,但可以说得些看看。
.COM文件整个程序的逻辑段可以有几个,但物理段只能一个,即数据段和代码段要在同一个段(64K)的范围内。
第一条可执行指令一定要在段中的100H处。Top
2 楼Purpleendurer(编程—>任是无情也动人^_^)回复于 2003-12-02 00:16:38 得分 20
可执行文件的格式由操作系统规定.
DOS下的可执行文件有COM和MZ格式的EXE两种.(不考虑BAT指处理文件)
WINDOWS下的可执行文件为PE格式的EXE文件.Top
3 楼qass()回复于 2003-12-02 09:08:47 得分 0
楼上,能把PE格式简单解说一下吗?
Top
4 楼Areslee(懒虫易水)回复于 2003-12-02 10:03:44 得分 0
PE格式就是扩展的EXE格式,关于它的内容看看MSDN吧,上面有很清晰的说明Top
5 楼TimesNewRoman()回复于 2003-12-02 10:31:16 得分 50
PE 文件使用的是一个平面地址空间,所有代码和数据都被合并在一起,组成一个很
大的结构。文件的内容被分割为不同的区块(Section,又称区段、节等),块中包含代码
或数据,各个块按页边界来对齐,块没有大小限制,是一个连续结构。每个块都有它自己
在内存中的一套属性,如:这个块是否包含代码、是否只读或可读/写等。
每一个区块都有不同的名字,这个名字是用来表示区块的功能。例如,一个区块
叫.rdata 表明它是一个只读区块。常见的块有.text、.rdata、.data、.idata、.rsrc 等。各种
块含义如下:
.text:是在编译或汇编结束时产生的一种块,它的内容全是指令代码;
.rdata:是运行期只读数据;
.data:是初始化的数据块;
.idata:包含其他外来DLL 的函数及数据信息,即输入表;
.rsrc:包含模块的全部资源,如图标、菜单、位图等等。Top
6 楼qass()回复于 2003-12-02 13:40:49 得分 0
有没有解说PE这方面的网站,中文英文都好啊。
Top
7 楼Yashmak(双层面纱)回复于 2003-12-02 14:07:19 得分 10
老罗的书上最后一章讲的很清楚Top
8 楼zkhj(学习.Net中......)回复于 2003-12-02 14:21:05 得分 0
COM文件最大64K。即一个程序段。
EXE可以超过这个限制。可有多个CODE区Top
9 楼liufucsdn(乞力马扎罗的雪)回复于 2003-12-04 12:34:15 得分 0
[quote]老罗的书上最后一章讲的很清楚[/quote]
老罗的书哪里有下的 ?~~Top
10 楼liufucsdn(乞力马扎罗的雪)回复于 2003-12-05 18:15:34 得分 0
顶到前面去~~Top
11 楼shishikeke(时时刻刻)回复于 2003-12-05 18:47:21 得分 0
两个文件的优先性不一样在os里面。我当年为这个问题专门请教过我们老师。
------------------------------------------------------
OTN 中文技术论坛
OCP 认证 Oracle学习资料
欢迎各路新手和高手光临!
http://211.99.196.144:8090/forum1/frontshow/index.jsp
Top
12 楼liufucsdn(乞力马扎罗的雪)回复于 2003-12-06 20:16:53 得分 0
谢谢!!你们都是好人!!好人一生平安!!!Top




