com(DOS可执行命令档案)详细资料大全
1个回答
展开全部
COM是Component Object Model (组件对象模型)的缩写。
COM是微软公司为了计算机工业的软体生产更加符合人类的行为方式开发的一种新的软体开发技术。在COM构架下,人们可以开发出各种各样的功能专一的组件,然后将它们按照需要组合起来,构成复杂的套用系统。由此带来的好处是多方面的:可以将系统中的组件用新的替换掉,以便随时进行系统的升级和定制;可以在多个套用系统中重复利用同一个组件;可以方便的将套用系统扩展到网路环境下;COM与语言,平台无关的特性使所有的程式设计师均可充分发挥自己的才智与专长编写组件模组;等等。 COM是开发软体组件的一种方法。组件实际上是一些小的二进制可执行程式,它们可以给应用程式,作业系统以及其他组件提供服务。开发自定义的COM组件就如同开发动态的,面向对象的API。多个COM对象可以连线起来形成应用程式或组件系统。并且组件可以在运行时刻,在不被重新连结或编译应用程式的情况下被卸下或替换掉。Microsoft的许多技术,如ActiveX, DirectX以及OLE等都是基于COM而建立起来的。并且Microsoft的开发人员也大量使用COM组件来定制他们的应用程式及作业系统。
基本介绍
- 外文名 :com
- 可执行命令 :DOS
- 大小 :小于64KB
- 区别 :程式只能设定一个段
介绍
为 DOS可执行命令档案(DOS Command File),一般小于64KB区别
com和exe档案的区别 以COM为扩展名的档案的特点如下: 1.程式只能设定一个段,且不建立堆叠段; 2.程式的长度必须少于64K位元组; 3.程式必须预留100H空间,开始处是一条可执行指令; 4.程式被装入的起始标号必须由END语句说明开始地址; 5.程式中的子程式必须具有进程属性(NEAR); 6.如果COM档案是由几个不同的目标模组连结生成的,要求所有目标模组具有同一代码段名和类别名(CLASS),且赋予公共属性(PUBLIC),而主模组应具有100H的入口指针并优先连线。 EXE档案的结构特点如下: 1.程式允许建立若干不同名的代码段、数据段、堆叠段或附加段。 2.程式的长度仅受当前记忆体可用空间的限制。 3.程式的入口随套用而定,只需起始标号与END语句说明的起始地址一致。 4.程式中的各个子程式的属性随段内或段间调用而定为NEAR或FAR。 5.连线生成EXE档案的各个不同的目标模组内的代码段,数据段或附加段可取同名或独立命名。但要求只有主模组的END语句指出程式入口的起始标号,并至少有一个具有STACK属性的堆叠段档案概要
.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,如果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档案的第一条指令是程式的入口点. 注意,因为程式是在偏移100h处载入,因此所有代码和数据偏移也必须相对于100h.汇编语言程式设计者可通过置程式的初值为100h而保证这一点(例如通过在原程式的开始使用语句org 100h).
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询