活动介绍

MS-DOS编程的兼容性与可移植性

立即解锁
发布时间: 2025-08-24 00:02:22 阅读量: 12 订阅数: 18
PDF

MS-DOS编程指南:深入解析与实践

# MS-DOS编程的兼容性与可移植性 ## 1. 兼容性与可移植性概述 在不断发展的软硬件环境中,MS - DOS程序要保持可用性,就需考虑兼容性和可移植性。这意味着程序要能在合理的机器配置上可靠运行,充分利用系统资源,并且能轻松适应MS - DOS新版本、新机器,甚至全新的环境,如MS OS/2。 ## 2. 兼容性的程度 现有MS - DOS应用程序对操作系统和硬件的使用方式可分为四类: - **MS - DOS兼容应用程序**:仅使用有文档记录的MS - DOS函数调用,不调用ROM BIOS或直接访问硬件。使用ANSI转义序列进行屏幕控制,输入输出可重定向。这类程序能在任何支持MS - DOS的机器上运行,但由于MS - DOS内置显示和串口驱动性能较差,除编译器、汇编器和链接器外,流行程序较少属于此类。 - **ROM BIOS兼容应用程序**:使用有文档记录的MS - DOS和ROM BIOS函数调用,但不直接访问硬件。如今高质量的IBM兼容ROM BIOS确保了IBM ROM BIOS标准的主导地位,但ROM BIOS显示和串口驱动仍无法满足高性能交互式应用的需求,因此这类流行程序也不多。 - **硬件兼容应用程序**:通常使用MS - DOS函数进行大容量存储、内存管理等,在用户界面方面混合使用MS - DOS和ROM BIOS函数调用以及直接硬件访问。不同程序的硬件依赖程度差异很大,大多数流行的MS - DOS“生产力”应用程序都属于此类。 - **“行为不良”的应用程序**:依赖无文档记录的MS - DOS函数调用或数据结构、拦截MS - DOS或ROM BIOS中断,或直接访问大容量存储设备(绕过MS - DOS文件系统)。这类程序对环境极为敏感,通常需要针对每个新的MS - DOS版本或PC型号进行“调整”。 | 兼容性类型 | 使用方式 | 特点 | 流行程序情况 | | --- | --- | --- | --- | | MS - DOS兼容应用程序 | 仅用有文档MS - DOS函数调用,不调ROM BIOS或直访硬件 | 可在支持MS - DOS的任何机器运行 | 除编译器等外较少 | | ROM BIOS兼容应用程序 | 用有文档MS - DOS和ROM BIOS函数调用,不直访硬件 | 依赖ROM BIOS标准 | 数量不多 | | 硬件兼容应用程序 | 混合使用MS - DOS、ROM BIOS函数调用和直接硬件访问 | 硬件依赖程度差异大 | 多数流行“生产力”应用属此类 | | “行为不良”的应用程序 | 依赖无文档MS - DOS内容或直访存储设备 | 对环境敏感,需调整 | 如TSR实用程序等 | ## 3. 编写行为良好的MS - DOS应用程序 ### 3.1 程序结构 - 设计为具有独立代码、数据和堆栈段的.EXE文件,避免使用.COM文件。 - 使用Microsoft的段名和属性约定。 - 在运行时检查环境块以定位程序的覆盖文件或数据文件,避免在程序中“硬编码”目录位置。 ### 3.2 检查主机能力 - 在程序初始化时,使用Int 21H Function 30H获取MS - DOS版本号,确保程序所需的所有函数都可用。若主机MS - DOS版本不足,谨慎选择用于显示错误消息和终止程序的函数。 - 当程序在MS - DOS 3和4版本下运行时,利用其增强功能。例如,使用Int 21H Function 3DH打开文件时可指定共享模式,使用Int 21H Functions 5AH和5BH创建临时或唯一文件,使用Int 21H Function 59H获取扩展错误信息。 ### 3.3 输入和输出 - 仅使用句柄文件函数,并在整个应用程序中支持完整路径(确保在用户输入文件名时允许最大可能的路径长度)。 - 尽可能使用缓冲I/O。MS - DOS 2.0及更高版本的设备驱动程序可处理长达64 KB的字符串,写入较少的大记录比许多短记录能提高性能。 - 避免使用FCB、Int 25H或Int 26H函数,或ROM BIOS磁盘驱动。若必须使用FCB,使用完后关闭,打开时不要移动它们,避免重新打开已打开的FCB或重新关闭已关闭的FCB。 ### 3.4 内存管理 - 在程序初始化时,释放程序不需要的任何内存(对于.COM程序尤为重要)。 - 若程序需要额外内存用于缓冲区或表格,在需要时动态分配,并在不再需要时立即释放。 - 当可用时,使用扩展内存以减少程序对常规内存的需求。 - 一般规则是不触碰程序不拥有的任何内存。使用Int 21H Functions 25H和35H设置或检查中断向量,而不是直接编辑中断向量表。若更改中断向量内容,保存其原始值并在程序退出前恢复。 - 使用EXEC函数(Int 21H Function 4BH)加载覆盖文件或其他程序,以隔离程序对PSP结构和重定位信息的依赖。使用Int 21H Function 4CH终止程序,程序成功执行时传递零返回码,遇到错误时传递非零码。 ### 3.5 异常处理 安装Ctrl - C(Int 23H)和严重错误(Int 24H)处理程序,防止程序因用户输入Ctrl - C或Ctrl - Break或硬件I/O故障而意外终止。这对于使用扩展内存或安装自己的中断处理程序的程序尤为重要。 ## 4. ROM BIOS和硬件兼容应用程序 ### 4.1 引入硬件依赖时的注意事项 因性能原因需要引入ROM BIOS或硬件依赖时,将其隔离到小的、文档完善的过程中,以便在硬件更改时轻松修改。使用宏和常量隐藏硬件特性,避免在程序中散布“魔法数字”。 ### 4.2 检查主机能力 若程序中使用ROM BIOS函数,运行时必须检查机器型号,确保程序所需的函数可用。在F000:FFFEH处有一个机器ID字节,其值解释如下: | 机器ID字节值 | 对应机器型号 | | --- | --- | | F8H | PS/2 Models 70 and 80 | | F9H | PC Convertible | | FAH | PS/2 Model 30 | | FBH | PC/XT (later models) | | FCH | PC/AT, PC/XT - 286, PS/2 Models 50 and 60 | | FDH | PCjr | | FEH | PC/XT (early models) | | FFH | PC “Classic” | 编写自己的直接视频驱动时,需通过Int 10H调用、读取端口以及检查ROM BIOS数据区等方式确定视频适配器的类型和功能。 ### 4.3 避免不稳定硬件 IBM个人计算机架构的某些区域从最初的基于4.77 MHz 8088的IBM PC到如今基于20 MHz 80386的PS/2 Model 80都保持了显著的稳定性,如通过端口61H进行声音控制、8253定时器芯片的通道0和2(端口40H、42H和43H)、端口201H的游戏适配器以及通过端口21H的8259 PIC的屏蔽寄存器控制中断系统。但直接声音生成和对8253定时器或8259 PIC的操作在多任务程序管理器下可能会导致问题。键盘映射、键盘控制器以及软盘和硬盘控制器是相对硬件不稳定的区域,绕过MS - DOS进行键盘或磁盘访问的程序在不同PC型号上正常运行的可能性较小,且容易相互干扰和影响行为良好的应用程序。 ## 5. OS/2兼容性 ### 5.1 MS - DOS与OS/2的兼容性 MS - DOS在多个方面与OS/2向上兼容,OS/2是适用于80286和80386计算机的多任务保护模式虚拟内存操作系统。OS/2图形用户界面与Microsoft Windows 2.0几乎相同,OS/2 1.0和1.1版本使用与MS - DOS完全相同的磁盘格式,便于文件在两者之间移动。最重要的是,OS/2包含“DOS兼容性环境”或“3.x Box”模块,可同时运行一个MS - DOS应用程序和受保护模式的OS/2应用程序。 ### 5.2 3.x Box的工作方式 3.x Box捕获Int 21H函数调用并将其重新映射为OS/2函数调用,模拟加载了文件共享模块(SHARE.EXE)的MS - DOS 3.3环境,但对于Int 21H Function 30H返回主版本号10而不是3。它还支持大多数ROM BIOS调用,通过模拟其功能或锁定设备后调用原始ROM BIOS例程。此外,3.x Box维护ROM BIOS数据区,通过Int 1CH为应用程序提供定时器滴答,并支持某些无文档记录的MS - DOS服务和数据结构,使大多数TSR实用程序能正常工作。 ### 5.3 MS - DOS应用程序在OS/2下的限制 - **CPU周期问题**:MS - DOS应用程序在后台时不接收任何CPU周期,处于冻结状态。若捕获了任何中断向量,这些中断在应用程序再次被选中并处于前台之前不会得到处理。 - **FCB使用限制**:在3.x Box中使用FCB受到限制,与在加载了SHARE.EXE的MS - DOS 3或4下相同。若其他进程正在使用文件,则不能使用FCB打开该文件,同时打开的FCB数量限制为16个或CONFIG.SYS中FCBS = 指令指定的数量。即使使用句柄文件函数,由于其他进程的活动,这些函数也可能意外失败。 - **磁盘写入限制**:不允许使用Int 26H或Int 13H直接写入硬盘,以防止文件系统损坏。 - **中断向量修改限制**:尝试重新编程8259以移动中断向量表或修改已属于OS/2设备驱动程序的中断向量的MS - DOS应用程序将被操作系统终止。不过,MS - DOS应用程序可以更改8259的中断屏蔽寄存器,自行禁用和重新启用中断,以及读写任何I/O端口,但这也意味着MS - DOS程序可能随时导致整个OS/2系统崩溃。 ## 6. 将MS - DOS应用程序移植到OS/2 ### 6.1 移植步骤概述 将现有的MS - DOS汇编语言程序转换为OS/2程序可分为五个步骤: 1. **分段(Segmentation)** 2. **合理化(Rationalization)** 3. **封装(Encapsulation)** 4. **转换(Conversion)** 5. **优化(Optimization)** 前三个阶段可在MS - DOS环境中执行和测试,后两个阶段需要OS/2和受保护模式编程工具。遵循兼容性指南的MS - DOS程序在转换为受保护模式时所需的工作量相对较少。 ### 6.2 分段(Segmentation) #### 6.2.1 保护模式下的内存寻址变化 80286在保护模式下的内存寻址方式与实模式不同。实模式下,80286本质上模拟8088/86处理器,段寄存器的值直接对应物理内存地址;而在保护模式下,段寄存器持有选择器,选择器是描述符表的索引,描述符定义了内存段的物理地址、长度、特性、访问权限以及是否驻留在RAM中。每次程序加载段寄存器或访问内存时,80286硬件会检查相关描述符和程序的特权级别,若选择器或内存操作无效则产生故障。 #### 6.2.2 分段的具体操作 将程序转换为使用Microsoft段、类和组约定的.EXE类型程序。至少要有一个代码段和一个数据段,并声明一个名为DGROUP的组,包含“近”数据段、堆栈和本地堆(如果有)。同时,移除或重写任何直接操作段值的代码。分段和重组后,重新汇编和链接程序,确保其在MS - DOS下仍能按预期工作。 ### 6.3 合理化(Rationalization) #### 6.3.1 消除硬件依赖 将程序转换为完全行为良好的MS - DOS应用程序。首先,彻底消除任何直接操作外围设备适配器、更改中断优先级、编辑系统中断向量表或依赖CPU速度或特性(如定时循环)的元素。对于显示例程,将所有向显示器写入文本、修改字符属性或影响光标形状或位置的例程转换为使用ANSI转义序列的Int 21H Function 40H调用或ROM BIOS Int 10H调用;将所有依赖硬件的键盘操作转换为Int 21H Function 3FH或ROM BIOS Int 16H调用。 #### 6.3.2 优化内存使用 在MS - DOS下,应用程序通常会获得系统中剩余的所有内存;而在OS/2下,进程最初仅分配足够的内存来保存其代码、声明的数据存储和堆栈。可以通过使用/CPARMAXALLOC开关链接应用程序,使MS - DOS加载器的行为类似于OS/2加载器
corwn 最低0.47元/天 解锁专栏
赠100次下载
继续阅读 点击查看下一篇
profit 400次 会员资源下载次数
profit 300万+ 优质博客文章
profit 1000万+ 优质下载资源
profit 1000万+ 优质文库回答
复制全文

相关推荐

吴雄辉

高级架构师
10年武汉大学硕士,操作系统领域资深技术专家,职业生涯早期在一家知名互联网公司,担任操作系统工程师的职位负责操作系统的设计、优化和维护工作;后加入了一家全球知名的科技巨头,担任高级操作系统架构师的职位,负责设计和开发新一代操作系统;如今为一名独立顾问,为多家公司提供操作系统方面的咨询服务。
最低0.47元/天 解锁专栏
赠100次下载
百万级 高质量VIP文章无限畅学
千万级 优质资源任意下载
千万级 优质文库回答免费看

最新推荐

数字产品记忆(DPM)在工业与汽车维护中的应用

### 数字产品记忆(DPM)在工业与汽车维护中的应用 #### 1. 引言 在当今的工业和汽车领域,维护工作至关重要。一方面,工业生产厂需要在保护投资的同时降低维护成本;另一方面,汽车维修涉及到客户的安全和欺诈防范等问题。数字产品记忆(DPM)技术为解决这些问题提供了新的途径,它具有统一数据格式和应用接口的潜力,能实现更具成本效益的实施。 #### 2. 假冒零件检测方法 目前存在多种检测假冒零件的方法,其中很多基于光学特性,如全息图、变色或微印刷。然而,这些方法存在一些问题: - 光学特性本身越来越容易被模仿。 - 消费者需要更多的知识和时间来识别假冒产品。 相比之下,基于RFI

服装穿着舒适度与合身度评估研究

### 服装穿着舒适度与合身度评估研究 #### 服装穿着舒适度分析 在服装领域,穿着舒适度是一个至关重要的考量因素。通过对相关数据的深入分析,我们可以了解到影响裤子穿着舒适度的关键因素。 首先,来看影响穿着舒适度的因素贡献情况,具体数据如下表所示: | 因素 | 方差百分比 | 累积百分比 | 总和 | 成分 | | --- | --- | --- | --- | --- | | 腰 - 臀因素 | 39.17 | 39.17 | 12.93 | 1 | | 膝 - 胫因素 | 16.4 | 55.57 | 5.41 | 2 | | 裆部因素 | 13.96 | 69.53 | 4.61

iPromotion:基于云的虚拟现实互联网广告平台

### iPromotion:基于云的虚拟现实互联网广告平台 #### 1. 引言 网络广告自万维网流行以来就是一项重要的商业活动,且仍在快速发展。2012年,美国互联网广告收入总计365.7亿美元,较2011年增长15%。其中,展示相关广告(如横幅广告或数字视频)占33%,移动广告占9%,并且移动广告市场增长最快。 传统的展示型网络广告通过文本、图像、视频和声音等多媒体对象来推广产品。近年来,虚拟现实(VR)技术开始应用于广告领域。VR是指合成的、交互式图形环境,用户可以体验和与3D模型进行交互。过去,由于技术和计算资源的限制,在网络广告中使用VR几乎是不可能的。但近年来,VR技术取得了

水培农业:创新种植技术的全面解析

# 水培农业:创新种植技术的全面解析 在当今人口增长和土地资源受限的背景下,水培农业作为一种创新的种植技术,正逐渐成为解决粮食生产问题的重要途径。本文将深入探讨水培农业的相关知识,包括其必要性、优势、面临的问题以及不同的系统类型。 ## 1. 水培农业的必要性 随着全球人口预计到2050年将达到96亿,可用于粮食生产的土地日益减少。城市的快速扩张和土地城市化,使得传统农业面临挑战。而水培农业因其无需土壤的特点,成为了应对这些问题的有效解决方案。 - **适应恶劣环境**:水培农业可以在干旱沙漠和恶劣环境中进行,通过温室或室内培养,为植物提供可控的生长环境。 - **提高资源利用效率**:相

铁氧化物纳米粒子与GaNHEMT小信号参数提取技术

# 铁氧化物纳米粒子与GaN HEMT小信号参数提取技术 ## 1. 铁氧化物纳米粒子的应用领域 铁氧化物纳米粒子在生物传感器、成像等领域有着广泛的应用。在生物传感器方面,它可用于构建各种类型的传感器,如基于铁氧化物纳米粒子 - 壳聚糖复合物的葡萄糖生物传感器,能实现对葡萄糖的有效检测。在成像领域,磁性铁氧化物纳米粒子可作为磁共振成像(MRI)的T1对比剂,提高成像的清晰度和准确性。 此外,铁氧化物纳米粒子还在药物递送、癌症治疗等方面展现出巨大潜力。例如,负载阿霉素的PVA包覆铁氧化物纳米粒子可用于靶向药物递送,将药物精准送达病变部位;适体功能化的热交联超顺磁性铁氧化物纳米粒子可用于图像引

人工智能在材料设计、本体推理及网络分析中的应用

# 人工智能在材料设计、本体推理及网络分析中的应用 ## 1. AI在材料设计中的应用 ### 1.1 分子属性预测问题 分子属性预测是材料科学的一个基本问题。传统上,像密度泛函理论(DFT)这样的量子化学模拟方法被广泛用于计算分子属性,但由于计算成本高,很难搜索大量潜在的化合物。 ### 1.2 机器学习的应用 - **寻找非凡材料**:机器学习(ML)可以在AFLOW数据集中推断出非凡材料。将推断作为分类任务可以提高结果的准确性。 - **结晶性预测**:通过使用机器学习对从CSD和ZINC中提取的固体形式数据进行分类,可以从原子连接性预测结晶性,准确率达92%。数据准备是通过将CSD

移动机器人导航与协调技术解析

# 移动机器人导航与协调技术解析 ## 1. 引言 在当今科技飞速发展的时代,移动机器人的应用越来越广泛,如工业自动化、物流配送、服务行业等。而移动机器人要实现自主导航和高效运行,就离不开先进的导航算法和协调机制。本文将深入探讨几种常见的移动机器人导航算法,包括自组织映射(SOM)算法、模块化反向传播神经网络在线导航算法,以及机器人子模块之间的协调模型,如有限状态机和定时 Petri 网模型,并介绍这些技术在足球机器人中的应用。 ## 2. 自组织映射(SOM)算法 ### 2.1 SOM 算法原理 自组织映射(SOM)是一种将二维平面上的一组点(神经元)映射到一维结构的算法。假设二维平面

城市停车管理与人类活动推理技术探索

### 城市停车管理与人类活动推理技术探索 #### 人类活动推理研究 理解和推断人类活动及其发生的背景是一项重要的研究挑战。随着支持老年人医疗保健和日常生活的新技术需求不断增加,这一研究挑战的相关性日益凸显。准确感知和推理人类活动,特别是在家庭环境中,有助于预防未来可能出现的重大健康问题。同时,在保护隐私的前提下监测老年人的活动,能够增强他们享受安全、有保障和独立生活的能力。 在当前的实现中,研究人员将规范映射到逻辑正常程序,并使用如CLASP2这样的答案集求解器。对于规范映射,采用了相关文献中建议的映射方法。在后续的研究中,将展示推理过程的完整实现。 #### 城市停车管理问题 城市

英语教学能力评估算法研究与多维互动教学模式应用

# 英语教学能力评估算法研究与多维互动教学模式应用 ## 1. 英语教学能力评估维度 英语教学能力评估包含多个重要维度,下面为大家详细介绍: ### 1.1 教学组织与表达能力 教学组织与表达能力的考察内容主要有课堂讲授和学生研讨,具体评估点如下表所示: |评估点|具体要求|占比| | ---- | ---- | ---- | |教学态度|认真备课、授课,精神饱满,教学工具及设备到位且调试良好|20%| |教学内容|准确讲解基本概念、原理和术语,与先修课程关联,突出重点、分析难点,内容组织合理,理论与实践结合且与学科发展相适应|20%| |表达能力|普通话较标准,表达清晰,音量、语调、语速合

移动机器人导航与协调技术解析

# 移动机器人导航与协调技术解析 ## 1. 引言 在当今科技飞速发展的时代,移动机器人的应用越来越广泛,从工业生产到日常生活,它们都发挥着重要作用。而移动机器人的导航与协调技术则是其能够自主完成任务的关键。本文将深入探讨几种常见的移动机器人导航与协调技术,包括自组织映射(SOM)、模块化反向传播神经网络、有限状态机和定时Petri网等,并介绍它们在足球机器人中的应用。 ## 2. 自组织映射(SOM)算法 ### 2.1 SOM原理 自组织特征映射将一组二维点(神经元)映射到一组一维结构,使得映射后的维度远小于原二维平面的维度。其获取特征向量的原理如下: - 假设二维平面上的每个神经元都