Int 10 中断功能 详解
INT 10H 是由 BIOS 对屏幕及显示器所提供的服务程序,而后倚天公司针对倚天中文提供了许多服务程序,这些服务程序也加挂在 INT 10H 内。使用 INT 10H 中断服务程序时,先指定 AH 寄存器为下表编号其中之一,该编号表示欲调用的功用,而其他寄存器的详细说明,参考表后文字,当一切设定好之后再调用 INT 10H。底下是它们的说明:
AH
|
功 能
|
调用参数
|
返回参数 / 注释
|
1
|
置光标类型
|
(CH)0―3 = 光标开始行
(CL)0―3 = 光标结束行 |
|
2
|
置光标位置
|
BH = 页号
DH = 行 DL = 列 |
|
3
|
读光标位置
|
BH = 页号
|
CH = 光标开始行
CL = 光标结束行 DH = 行 DL = 列 |
4
|
置显示页
|
AL = 显示页号
|
|
5
|
屏幕初始化或上卷
|
||
6
|
屏幕初始化或上卷
|
AL = 上卷行数
AL =0全屏幕为空白 BH = 卷入行属性 CH = 左上角行号 CL = 左上角列号 DH = 右下角行号 DL = 右下角列号 |
|
7
|
屏幕初始化或下卷
|
AL = 下卷行数
AL = 0全屏幕为空白 BH = 卷入行属性 CH = 左上角行号 CL = 左上角列号 DH = 右下角行号 DL = 右下角列号 |
|
8
|
读光标位置的属性和字符
|
BH = 显示页
|
AH = 属性
AL = 字符 |
9
|
在光标位置显示字符及其属性
|
BH = 显示页
AL = 字符 BL = 属性 CX = 字符重复次数 |
|
A
|
在光标位置只显示字符
|
BH = 显示页
AL = 字符 CX = 字符重复次数 |
|
E
|
显示字符(光标前移)
|
AL = 字符
BL = 前景色 |
光标跟随字符移动
|
13
|
显示字符串
|
ES:BP = 串地址
CX = 串长度 DH, DL = 起始行列 BH = 页号 AL = 0,BL = 属性 串:Char,char,……,char AL = 1,BL = 属性 串:Char,char,……,char AL = 2 串:Char,attr,……,char,attr AL = 3 串:Char,attr,……,char,attr |
光标返回起始位置 光标跟随移动 光标返回起始位置 光标跟随串移动 |
AH=00H
AH=00/INT 10H 是用来设定显示模式的服务程序,AL 寄存器表示欲设定的模式:
AL | 文字/图形 | 分辨率 | 颜色 |
00 | 文字 | 40*25 | 2 |
01 | 文字 | 40*25 | 16 |
02 | 文字 | 80*25 | 2 |
03 | 文字 | 80*25 | 16 |
04 | 图形 | 320*200 | 2 |
05 | 图形 | 320*200 | 4 |
06 | 图形 | 640*200 | 2 |
AH=01H
您可以把光标想成一个小的矩形,平时这个矩形扁平位于某字底部,但藉由此功能可以改变其大小与位置。光标起始处与终止处分别由 CL 与 CH 的 0 到 4 位表示,参考下图:
而 CH 的第 7 位必须是 0,第 5、6 位表示光标属性:
位 6 位 5 属性0 0 正常0 1 隐形1 01 1 闪烁缓慢
AH=02H
AH=03H
AH=04H
AH=05H
这个功能是把指定的显示页显示于屏幕上,欲显示的显示页于 AL 寄存器中指定。此功能只能在文字模式下才能发生作用。
AH=06H/07H
AH=07H/INT 10H 和 AH=06H/INT 10H 相似,只是卷动方像不同而已。
AH=08H
这个服务程序是用来取得光标所在位置的字符及属性,调用前,BH 表示欲读取之显示页,返回时,AL 为该位置之 ASCII 字符,AH 为其属性。有关属性的说明,请参考注一。
AH=09H
AH=0AH
这个功能和 AH=09H/INT 10H 一样,差别在 AH=0AH 只能写入一个字符,而且不能改变字符属性。
AH=0BH
调色盘 0 的三色是绿、红、黄;调色盘 1 的三色是青、紫红、白。背景色有 16 六种可供选择,这 16 种就是注一的 16 色。调用此中断时,先决定要设定背景色抑或调色盘,
AH=0CH
显示模式 | X 座标 | Y 座标 | 颜色 |
4 | 0~319 | 0~199 | 0、1 |
5 | 0~319 | 0~199 | 0~3 |
6 | 0~639 | 0~199 | 0、1 |
AH=0DH/INT 10H 则是读取某一位置之点像,您必须指定 CX、DX,而 INT 10H 会传回该位置点像之颜色。
AH=0EH
AL 寄存器存要显示的字符,BH 为目前的显示页,如果是在图形模式,则 BH 须设为 0,假如是在图形模式下,也可以设定 BL 来表示文字的颜色,文字模式下的 BL 则无功能。
AH=0FH
注一: 所谓属性是指字符的颜色、背景颜色、是否闪烁、有没有底线等性质。在彩色显示卡 ( CGA/EGA/VGA 等 ) 的文字模式中,颜色是用 4 个位表示,故可以表现出 16 种颜色,如下表:
二进制数 | 颜色 | 例子 | 二进制数 | 颜色 | 例子 |
0000 | 黑色 | black | 1000 | 灰色 | gray |
0001 | 蓝色 | blue | 1001 | 淡蓝色 | light blue |
0010 | 绿色 | green | 1010 | 淡绿色 | light green |
0011 | 青色 | cyan | 1000 | 淡青色 | light cyan |
0100 | 红色 | red | 1100 | 淡红色 | light red |
0101 | 紫红色 | magenta | 1101 | 淡紫红色 | light magenta |
0110 | 棕色 | brown | 1110 | 黄色 | yellow |
0111 | 银色 | light gray | 1111 | 白色 | white |
但是在单色显示器里,如 MDA 和 Hercules 卡中,这些颜色表并无意义,所以属性解释方式不同,请看下表:
数值 | 属性 |
00H | 空格,不显示任何数据 |
77H | 显示白色方块 |
07H | 正常的黑底白字 |
70H | 反白的白底黑字 |
01H | 加底线 |
Int 10 中断功能 详解相关推荐
- BIOS INT 10中断功能详解
NT 10H 是由 BIOS 对屏幕及显示器所提供的服务程序,而后提供了许多服务程序,这些服务程序也加挂在 INT 10H 内. 使用 INT 10H 中断服务程序时,先指定 AH 寄存器为下表编号其 ...
- BIOS INT 10中断功能
INT 10H 是由 BIOS 对屏幕及显示器所提供的服务程序,而后倚天公司针对倚天中文提供了许多服务程序,这些服务程序也加挂在 INT 10H 内.使用 INT 10H 中断服务程序时,先指定 AH ...
- Linux下的tar归档及解压缩功能详解
Linux下的tar归档及解压缩功能详解 一.Linux下解压缩工具 二.gzip工具的使用方法 三.其他解压缩工具 一.Linux下解压缩工具 二.gzip工具的使用方法 三.其他解压缩工具 一.L ...
- python 数列筛选_对numpy中的数组条件筛选功能详解
在程序设计中,时常会遇到数据的唯一化.相同.相异信息的提取等工作,在格式化的向量存储矩阵中南,numpy能够提供比较不错的快速处理功能. 1,唯一化的实现: In [63]: data = np.ar ...
- 【毕设项目】新闻推荐平台功能详解----新闻推荐系统
系列目录 基于Python网络爬虫与推荐算法新闻推荐平台 新闻推荐平台功能详解----新闻爬虫 新闻推荐平台功能详解----数据分析系统 文章目录 系列目录 功能介绍 一.结构 二.具体实现 1.标签 ...
- C语言 -- string.h中函数功能详解与手动实现 - 02(常用函数memcpy、memmove、strcpy、strdup、strcat、strtok...)
内容预览 3.5.搬迁类型 --- 函数功能详细说明 :将内存空间中内容移动.复制到另一内存空间 3.6.搬迁类型 --- 函数功能测试与手动实现 3.6.1.memcpy.memccpy 3.6.2 ...
- IOS视频编辑功能详解上篇-添加水印
前言 用代码在简单视频编辑中,主要就是加美颜.水印(贴图).视频截取.视频拼接.音视频的处理,在美颜中,使用GPUImage即可实现多种滤镜.磨皮美颜的功能,并且可以脸部识别实时美颜等功能,这个有很多 ...
- redis stream持久化_Beetlex.Redis之Stream功能详解
原标题:Beetlex.Redis之Stream功能详解 有一段时间没有写文章,techempower的测试规则评分竟然发生了变化,只能忘着补充一下占比权重最多的数据更新示例了和深入设计一下组件模块化 ...
- mysql int(3)与int(11)的区别详解
这篇文章主要介绍了mysql int(3)与int(11)的区别详解的相关资料,需要的朋友可以参考下 mysql int(3)与int(11)的区别 总结,int(M) zerofill,加上zero ...
最新文章
- JavaScript-也来谈--闭包
- Oracle sessions,processes 和 transactions 参数 关系 说明
- iPad,耳机,手机,电脑,都能用typec
- [Medical Image Process] 3.2 GrayScale Morphology(灰阶图像形态学及基本运算)
- 打包指令_DD19A电动热熔打包机,更换易损件方法
- 棉花糖多少钱_如何在6.0棉花糖及更高版本中访问Android的正在运行的应用程序列表...
- PTA19、通过两个列表构建字典 (10 分)
- Java开发中遇到具有挑战的事_170道Java工程师面试题,你敢挑战吗?
- 遇到一个php的错误,php初学者常见的几个错误及解决方法
- 正则表达式总结regex
- centos yum
- html页面加载蒙版,HTML / CSS - 在图像上创建alpha蒙版
- 教你怎么搞定P2P终结者的网速限制
- 长文:读《经济学32定律》
- 指纹识别综述(3): 特征提取
- 联想小新潮7000-13安装黑苹果笔记,无需无线网卡(无需U盘+win双系统+opencore)
- video网页能播放.mp4视频,微信不能播放的问题
- 视频会议行业应用软件分析
- html打印指定区域
- 前缀码的判断(个人摸索的小技巧)
热门文章
- 【C 语言】二级指针作为输出 ( 指针输入 | 指针输出 | 二级指针 作为 函数形参 使用示例 )
- 【Android 逆向】Frida 框架 ( Frida 框架使用环境 | Frida 框架作用 | Frida 框架模块 )
- 【计算理论】计算复杂性 ( 时间复杂度时间单位 : 步数 | 算法分析 | 算法复杂性分析 )
- 【Android 安全】DEX 加密 ( Proguard 简介 | 默认 ProGuard 分析 )
- 【Java 网络编程】NIO Buffer 简介 ( 概念 | 数据传输 | 标记 | 位置 | 限制 | 容量 | 标记 | 重置 | 清除 | 翻转 | 重绕 | 链式操作 )
- 【Java 网络编程】Socket TCP UDP 联系
- 【面向对象设计模式】 接口型模式 (一)
- FireBug的控制台管理
- Linux的目录结构和头文件相关;哪里找- sys/types.h, sys/stat.h
- MASM5.0汇编环境安装