BIOS与DOS中断调用详解:从显示到键盘操作
需积分: 10 71 浏览量
更新于2024-07-10
收藏 435KB PPT 举报
"BIOS功能调用是计算机系统中的一种重要机制,它允许低级软件,如操作系统或应用程序,通过调用BIOS(基本输入/输出系统)的中断子程来访问硬件设备。BIOS包含了一系列中断服务程序,涵盖了对显示器、磁盘、键盘、打印机等常见外设的控制。这些中断服务通常由中断类型码来标识,例如0-1CH。BIOS功能调用涉及到对这些中断子程的直接调用,以实现特定的功能。
在BIOS功能调用中,有几个常见的例子:
1. 设置显示方式:通过调用10H类型的中断,功能号00H,可以改变显示器的工作模式,比如从文本模式切换到图形模式。
2. 置光标位置:使用10H类型中断,功能号02H,可以定位屏幕上的光标位置,这对于文本输出和用户界面的交互非常有用。
3. 清屏与清窗口:10H类型的中断,功能号06H或07H,用于清除屏幕或指定区域的内容,帮助刷新屏幕或准备新的显示内容。
DOS系统功能调用主要通过21H类型的中断进行,这些调用提供了更多的系统级服务:
1. 显示单字符:功能号02H,允许在屏幕上显示一个字符。
2. 显示字符串:功能号09H,用于打印字符串,常用于输出消息或用户输入的验证。
3. 单字符输入:功能号01H、07H、08H,支持从键盘接收单个字符输入,并提供回退和删除功能。
4. 字符串输入:功能号0AH,可以接收用户输入的一行字符,常用于命令行参数或用户密码的输入。
5. 检测键盘状态:功能号0BH,用于查询键盘是否有按键被按下,有助于实现无延迟的用户交互。
6. 保存和设置中断向量:功能号35H和25H,用于保存和替换中断处理程序,这是更高级的系统编程中常用的技术。
在汇编语言编程中,使用INT指令可以调用这些中断。例如,以下代码片段展示了如何使用BIOS的0AH功能输入字符串,然后用09H功能显示输入的内容:
```assembly
dataSEGMENT
stringDB 'HelloWorld!', '$'
maxDB 11, ?, 4DUP(?)
dataENDS
codeSEGMENT
ASSUME CS:code, DS:data
start:
MOV AX, data ; 置缓冲区地址于DS:DX
MOV DS, AX
LEA DX, max
MOVAH, 0AH ; 调用0AH输入功能
INT 21H
LEA DX, string
MOVAH, 09H ; 调用09H显示功能
INT 21H
MOVAH, 4CH
INT 21H ; 返回DOS
codeENDS
END start
```
这段代码首先设置了数据段,然后调用21H中断的0AH功能读取用户输入,接着调用09H功能显示输入的字符串。如果在DOS环境下运行,当用户输入'123456789'并回车,屏幕上会显示'HelloWorld!',因为0AH功能的输入会被截断在第一个空格处,所以'123456789'会被存储为'123456789',而不是'HelloWorld!'。
总结来说,BIOS和DOS中断调用是早期个人计算机系统中与硬件交互的关键手段,它们提供了标准化的方法来访问和控制各种设备,而无需了解底层硬件的具体细节。这种抽象层使得软件开发更加便捷,同时也为高级操作系统和应用程序的构建奠定了基础。"
点击了解资源详情
点击了解资源详情
点击了解资源详情
2010-04-16 上传
2011-11-16 上传
2021-10-11 上传
105 浏览量
2009-02-18 上传
涟雪沧
- 粉丝: 22
- 资源: 2万+
最新资源
- 3G无线知识入门 4
- 3G无线知识入门 3
- 网上营业厅积分支付接口文档 电信积分接口说明
- 3G无线知识入门 1
- ejb3.0入门经典教程
- php5.ini.doc
- Pro WPF in C Sharp 2008
- ea7 入门教程.0
- Eclipse整合開發環境.pdf
- HP ProLiant DL160 G6服务器
- 中国电信集团公司技术标准_短信息网关协议(SMGP)规范(V3.1).pdf
- SCP1-040156draft.doc
- FTP命令详解及使用技巧.doc
- c语言嵌入式系统编程修炼之道
- Android Anatomy and Physiology.pdf
- HP ProLiant BL490 G6刀片服务器