DOS系统功能调用实验:子程序实现十进制到二进制与十六进制转换

需积分: 10 0 下载量 136 浏览量 更新于2024-08-25 收藏 315KB PPT 举报
"实验4-子程序设计" 是一个针对IT初学者的实践课程,旨在让学生熟悉BIOS、DOS系统功能调用的基本原理,以及掌握程序设计中的子程序运用。实验目标包括学习如何利用DOS的01号和02号系统功能调用来进行控制字符的输入和输出,理解二进制、十进制和十六进制之间的转换,以及熟练掌握子程序的调用、返回、嵌套和递归。 在实验中,子程序的定义结构包含过程名、属性(如NEAR或FAR),用于标识子程序的起始地址、调用方式(在同一代码段或不同代码段)。实验内容分为几个部分: 1. 编程任务:设计一个程序,接受用户输入的4位十进制数,将其转换为二进制,并以十六进制形式在屏幕上显示。如果输入非十进制数字,程序应退出并返回到DOS环境。 2. 子程序结构:这个任务需要至少三个子程序,分别是: - 数据输入及转换子程序:负责接收键盘输入并将其转换为二进制,存储在BX寄存器中。 - 十六进制显示子程序:将转换后的二进制数以十六进制形式在屏幕上显示。 - 回车换行子程序:处理屏幕输出时的换行,避免内容重叠。 3. 编程提示:使用DOS功能调用的1号功能(键盘输入字符)和特定的比较、计算操作来实现输入检测和转换。例如,通过将输入的ASCII码减去30H('0'的ASCII码)来将其转换为数值。 4. 主程序流程:主程序调用这些子程序,首先显示提示信息,然后执行数据输入和转换,接着显示十六进制结果,每次显示后都调用回车换行子程序,直到循环结束。 5. 子程序代码示例:如`decinproc`子程序,通过一个循环接收字符,检查是否在0-9范围内,进行相应的数值计算,并更新BX寄存器。当输入字符计数为0时,表示已读取完整个十进制数,否则继续接收。 通过这样的实验,学生可以深入理解低级编程语言的工作原理,同时提升程序设计能力,尤其是子程序的组织和管理,以及与硬件交互的能力。这对于理解操作系统底层工作原理,以及后续高级语言编程的学习都有极大的帮助。