- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
汇编源程序的编程格式
汇编源程序的编程格式 EXE文件的编程格式 COM文件的编程格式 汇编语言要求COM文件的编程格式必须符合以下规定: (1)源程序只允许使用1个逻辑段,即代码段,不允许设置堆栈段。 (2)程序使用的数据,可以集中设置在代码段的开始或末尾。 (3)在代码段偏移地址为100H的单元,必须是程序的启动指令。 (4)代码段目标块小于64KB。 EXE文件和COM文件的内存映像 磁盘上的EXE文件包括两部分:装入模块、重定位信息。DOS装入EXE文件时,这两部分都调入内存。DOS测试内存环境,根据重定位信息,完成对装入模块的重定位之后,重定位信息即被丢弃。DOS再在同一内存的用户程序上方偏移地址为00H~FFH的单元自动生成一个有256个字节的数据块,被称为“程序段前缀”(PSP)。 .EXE文件内存映像图 程序段前缀(PSP) 在内存定位于程序前的,以字节为边界,一个256字节大小的区域,它是程序与DOS的接口。是DOS加载外部命令或应用程序时,在加载的程序段前面设置一个固定的信息区。其中的信息是DOS装载可执行文件时自动生成的。 程序段前缀的作用 DOS通过PSP向用户程序传递参数,通过PSP向用户程序提供程序正常结束和异常结束时返回DOS的途径。PSP是程序运行不可分割的部分,内存中的每一个可执行程序都伴随有该程序的程序段前缀。DOS是通过PSP管理用户程序的。 当程序结束返回DOS之后,用户程序和它的程序段前缀所占用的内存空间均被释放,交还给DOS另行分配。 PSP的结构 供程序调用的DOS入口。 供进程使用的传递参数。 为DOS保存的中断向量。 由DOS专用的保留区域。 PSP的数据格式 PSP:00H~01H INT 20H PSP: 02H~03H 可用内存的大小(以节为单位) PSP:04H 保留 PSP: 05H~09H 远调用指令CALL功能入口 PSP:0AH~0DH INT 22H 中断向量 PSP:0EH~11H INT 23H 中断向量 PSP:12H~15H INT 24H 中断向量 PSP:16H~2BH 保留 PSP:2CH~2DH 环境变量区段基址 PSP:2EH~4FH 保留 PSP:50H~51H INT 21H PSP的数据格式 PSP:52H 远程RET PSP:53H~5BH 保留 PSP:5CH~6BH 第一个格式化的命令行参数(FCB1) PSP:6CH~7BH 第二个格式化的命令行参数(FCB2) PSP:7CH~7FH 保留 PSP:80H 命令行参数的长度(不包括回车) PSP:81H~FFH 未格式化的命令行参数 * LOGO 有两种编程格式 扩展名为EXE的可执行文件。 扩展名为COM的可执行文件。 EXE文件的编程格式允许源程序使用多个逻辑段,每个逻辑段的目标块不超过64KB,适合编写大型程序。 DOS把EXE文件调入内存后,会自动给SS、SP赋初值。 *
文档评论(0)