查看“COM”的源代码
←
COM
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
'''这里是关于可执行文件的格式,而不是微软的[[Component Object Model]]''' {{Stub}} {{File formats}} ==COM文件== ===导言=== COM文件是非常简单的可执行文件。 它们在加载程序时非常有用,不会出现诸如重新定位符号、读取文件头等复杂情况。 然而,它们的简单性可能会使它们的实用性受到限制,因此一旦操作系统升级,您可能希望支持更复杂但有用的东西,比如[[ELF]]。 COM文件曾被MS-DOS使用。 它们是原始二进制文件,这意味着没有头数据。 此外,COM文件的大小限制为一个段(实地址模式段,64kb)减去256字节。 加载COM文件时,假定所有代码和数据都塞入一个段,并加载到偏移量0x100。 MS-DOS创建并存储一个信息结构,从偏移量0开始,在0x100之前结束,称为程序段前缀(Program Segment Prefix-PSP)。 PSP是在COM程序启动前制作的。 更多关于PSP的信息可以在 [https://web.archive.org/web/20061101031637/http://heim.ifi.uio.no/~stanisls/helppc/program_segment_prefix.html 这里]找到。 PSP仅用于运行DOS程序。 COM文件通常以RET指令终止。 在DOS上,RET从堆栈中弹出一个空字,这会导致调用中断0x20(DOS API的出口)。 ===装载=== 要加载COM文件,需要将其加载到内存较低的位置,用0x100 org将ds和es指向文件的开头,然后用偏移量0x100跳转到开头。(译者注:Intel内存地址使用是递增的?) ==另见== ===可执行文件=== ====16位==== *[[MZ]] *[[NE]] ====32位==== *[[PE]]
本页使用的模板:
模板:File formats
(
查看源代码
)
模板:If
(
查看源代码
)
模板:Show1
(
查看源代码
)
模板:SmallNavBox
(
查看源代码
)
模板:Stub
(
查看源代码
)
返回至“
COM
”。
导航菜单
个人工具
登录
命名空间
页面
讨论
变体
已展开
已折叠
查看
阅读
查看源代码
查看历史
更多
已展开
已折叠
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息