INT-21H指令集详解:全面掌握21H功能与调用方法
需积分: 28 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系统至关重要,因为它揭示了当时的软件如何与硬件交互,尤其是在没有现代操作系统支持下的裸机编程。理解这些功能有助于开发者在设计模拟环境或复现历史应用程序时,准确地调用系统服务。
2010-06-10 上传
2010-11-13 上传
2011-01-17 上传
点击了解资源详情
2023-05-31 上传
2023-05-31 上传
2023-06-08 上传
gxdsdhr123
- 粉丝: 2
- 资源: 6
最新资源
- Python中快速友好的MessagePack序列化库msgspec
- 大学生社团管理系统设计与实现
- 基于Netbeans和JavaFX的宿舍管理系统开发与实践
- NodeJS打造Discord机器人:kazzcord功能全解析
- 小学教学与管理一体化:校务管理系统v***
- AppDeploy neXtGen:无需代理的Windows AD集成软件自动分发
- 基于SSM和JSP技术的网上商城系统开发
- 探索ANOIRA16的GitHub托管测试网站之路
- 语音性别识别:机器学习模型的精确度提升策略
- 利用MATLAB代码让古董486电脑焕发新生
- Erlang VM上的分布式生命游戏实现与Elixir设计
- 一键下载管理 - Go to Downloads-crx插件
- Java SSM框架开发的客户关系管理系统
- 使用SQL数据库和Django开发应用程序指南
- Spring Security实战指南:详细示例与应用
- Quarkus项目测试展示柜:Cucumber与FitNesse实践