INT-21H指令集详解:全面掌握21H功能与调用方法

需积分: 28 2 下载量 116 浏览量 更新于2024-07-17 1 收藏 170KB DOC 举报
INT-21H是早期IBM PC及其兼容机使用的中断向量之一,它为程序员提供了一套丰富的系统调用接口,用于实现基本的输入输出操作、文件管理以及设备控制等功能。这份文档列出了INT-21H的21个功能号及其详细描述,涵盖了硬件操作的各个方面。 1. **INT 21H (00): 程序终止** 这个函数相当于INT 20H,主要用于终止当前执行的程序,通常在系统初始化或错误处理时使用。 2. **INT 21H (01): 键盘输入与回显** 通过AL寄存器接收用户输入的字符,并将输入字符回显到屏幕,使得程序员能够直接获取用户输入。 3. **INT 21H (02): 显示输出** 使用DL寄存器传递字符到视频缓冲区,用于屏幕输出文本。 4. **INT 21H (03): 异步通信输入** 接收外部设备的数据,如串行端口,将输入数据保存在AL寄存器。 5. **INT 21H (04): 异步通信输出** 向外部设备发送数据,如将DL寄存器的数据通过串行端口传出。 6. **INT 21H (05): 打印机输出** 控制打印机进行打印操作,DL寄存器包含要打印的字符。 7. **INT 21H (06): 直接控制台I/O** 用于控制台输入输出,包括读取和写入字符,AL寄存器可以同时接收输入和用于输出。 8. **INT 21H (07) 和 08: 键盘输入(无回显)** 分别提供了两种键盘输入方式,一种带回显,另一种不带回显,都通过AL寄存器接收输入。 9. **INT 21H (09): 显示字符串** 在DS:DX指定的内存地址处显示字符串,以$结束,常用于屏幕输出固定文本。 10. **INT 21H (0A): 键盘输入到缓冲区** 用户输入被存储在DS:DX指定的缓冲区中,允许程序员按需读取。 11. **INT 21H (0B): 检查键盘状态** AL寄存器指示是否有输入活动,00表示有输入,FF表示无输入。 12. **INT 21H (0C): 清除输入缓冲区和请求特定输入功能** AL寄存器指示需要执行的输入功能,如清除输入缓冲区或设置特定输入功能号。 13. **INT 21H (0D): 磁盘复位** 用于清除磁盘缓存,确保数据一致性。 14. **INT 21H (0E): 指定默认磁盘驱动器** 更改程序使用的默认磁盘驱动器,DL寄存器设置驱动器号,AL寄存器表示驱动器数量。 15. **INT 21H (0F-18): 文件操作** 包括打开、关闭、查找、删除、读取、写入文件等,涉及文件控制台功能。 16. **INT 21H (19): 取当前默认磁盘驱动器** 返回当前程序使用的缺省磁盘驱动器号。 17. **INT 21H (1B): 置DTA地址** 设置动态存储器传输地址,用于数据传输操作。 18. **INT 21H (1C): 读取FAT信息** 获取文件分配表(FAT)信息,用于磁盘管理。 这份文档对于理解和编程早期PC系统至关重要,因为它揭示了当时的软件如何与硬件交互,尤其是在没有现代操作系统支持下的裸机编程。理解这些功能有助于开发者在设计模拟环境或复现历史应用程序时,准确地调用系统服务。