C语言INT10中断号:视频服务函数详解

0 下载量 146 浏览量 更新于2024-06-28 收藏 315KB DOC 举报
本文档主要介绍了C语言中的INT10中断号及其相关的视频服务程序。INT10是早期IBM PC系列计算机的标准键盘中断(INT n,其中n为10),在早期的MS-DOS操作系统中扮演着关键角色,它提供了与视频硬件交互的接口。 1. 视频服务程序00H (设置视频模式): - 当调用AH=00H,AL寄存器用于设置所需的视频模式,比如CGA、EGA或MCGA/VGA的不同分辨率和颜色深度。设置新模式后,屏幕会被清空。 - 适用于初始化或切换到特定的视频配置。 2. 视频服务程序01H (设置光标大小): - 输入参数AH=01H,CH和CL分别表示光标开始和结束扫描行。根据显示器类型(如CGA、EGA或MCGA/VGA),有不同的行数限制。程序主要用于控制光标显示的行数。 - 缺省设置:CGA的光标在6~7行,EGA在11~12行,MCGA和VGA在13~15行。 3. 视频服务程序02H (设置光标位置): - 使用AH=02H调用,BH存储页号,DH和DL分别表示光标行号和列号。该程序移动光标到指定位置,仅在正文模式下显示。 4. 视频服务程序03H (读取光标位置): - 当调用AH=03H时,程序返回光标的位置信息,包括光标所在的页号、扫描行范围以及实际的行号和列号。 5. 视频服务程序05H (设置活动显示页): - 通过AH=05H,AL用于指定活动显示页号,对于大部分正文模式,页号范围为0~7,而对于EGA和VGA的多页图形模式,可以设置更大的范围。默认情况下,活动页为第0页。 6. 视频服务程序06H (向上翻滚活动窗口): - 通过AH=06H,用户可以定义一个正文窗口并进行翻滚,输入参数包括翻滚的行数、空白行属性以及窗口的上下左右边界。如果翻滚行数为00H,窗口将被清空。 这些INT10中断号下的服务程序,为当时的计算机程序提供了一种标准的方式来操作视频输出,包括调整分辨率、控制光标、定位和更新屏幕内容等,对于理解早期计算机编程和操作系统内核工作原理具有重要意义。