DOS及BIOS INT 21H功能调用详解

需积分: 33 3 下载量 92 浏览量 更新于2024-10-31 收藏 159KB DOC 举报
"INT 21H是MS-DOS操作系统中常用的一个系统调用接口,它提供了与BIOS(基本输入输出系统)和DOS进行交互的一系列功能。通过调用INT 21H中断,程序员可以实现诸如输入输出、文件管理、磁盘操作等基本的系统任务。本文档详细列出了INT 21H的功能调用一览表,包括功能号、入口参数和出口参数。" 在编程中,INT 21H是IBM PC兼容机上DOS系统的核心组成部分,它提供了一种方法,让应用程序能够利用DOS和BIOS提供的服务。当调用INT 21H时,通常需要按照以下步骤进行: 1. **准备参数**:根据不同的功能调用,将所需参数放入特定的寄存器。例如,功能号可能需要放入AH寄存器,而子功能号可能放入AL寄存器。 2. **调用中断**:一旦参数准备好,就可以通过执行中断指令INT 21H来触发DOS或BIOS的服务。中断处理程序会读取寄存器中的参数并执行相应的功能。 3. **检查返回值**:服务执行完毕后,DOS或BIOS会将结果或状态信息放回特定的寄存器,如AL或AX。这时,调用程序需要检查这些返回值以确认操作是否成功。 以下是部分INT 21H功能调用的说明: - **编号0**:程序终止,通过将CS和PSP段地址传入,结束当前程序。 - **编号1**:带回显的字符输入,将输入的字符读入AL寄存器,并在屏幕上显示。 - **编号2**:字符输出,将DL寄存器中的8位数据(一个字符)输出到屏幕或打印机。 - **编号9**:显示字符串,将DS:DX指向的字符串输出到屏幕。 - **编号OAHH**:缓冲输入,从指定的缓冲区读取字符,功能号可以用于不同类型的输入操作。 - **编号OCHH**:重置输入缓冲区后输入,根据功能号(如1/6/7/8/OAH)重置输入缓冲区。 - **编号OEH**:置缺省盘驱动器,设置默认驱动器为指定的驱动器号(DL=0=A,1=B等)。 - **编号OFHH**:打开文件,通过FCB(文件控制块)打开文件,AL返回0表示成功,-1表示失败。 - **编号14H**:顺序读,从文件中读取数据,返回码在AL中。 - **编号15H**:顺序写,向文件中写入数据,返回码同样在AL中。 - **编号1AH**:设置DTA(数据传输区),允许程序指定一个内存区域作为数据传输的默认位置。 这些功能调用涵盖了文件操作、设备I/O、字符串处理、驱动器管理和系统信息查询等多个方面,构成了DOS编程的基础。通过熟练掌握INT 21H,开发者可以编写出能在DOS环境下运行的各种应用程序。