INT 10H

INT 10H 是由 BIOS 对屏幕及显示器所提供的服务程序,而后倚天公司针对倚天中文提供了许多服务程序,这些服务程序也加挂在 INT 10H 内。使用 INT 10H 中断服务程序时,先指定 AH 寄存器为下表编号其中之一,该编号表示欲调用的功用,而其他寄存器的详细说明,参考表后文字,当一切设定好之后再调用 INT 10H。底下是它们的说明:

BIOS中断:
1、显示服务(Video Service——INT 10H)
00H —设置显示器模式
01H —设置光标形状
02H —设置光标位置
03H —读取光标信息
04H —读取光笔位置
05H —设置显示页
06H、07H —初始化或滚屏
08H —读光标处的字符及其属性
09H —在光标处按指定属性显示字符
0AH —在当前光标处显示字符
0BH —设置调色板、背景色或边框

0CH —写图形象素
0DH —读图形象素
0EH —在Teletype模式下显示字符
0FH —读取显示器模式
10H —颜色
11H —字体
12H —显示器的配置
13H —在Teletype模式下显示字符串
1AH —读取/设置显示组合编码
1BH —读取功能/状态信息
1CH —保存/恢复显示器状态
(1)、功能00H
功能描述:设置显示器模式
入口参数:AH=00H
AL=显示器模式,见下表所示
出口参数:无
可用的显示模式如下所列:
00H:40×25 16色 文本
01H:40×25 16色 文本
02H:80×25 16色 文本
03H: 80×25 16色 文本
04H:320×200 4色
05H:320×200 4色
06H:640×200 2色
07H:80×25 2色 文本
08H:160×200 16色
09H:320×200 16色
0AH:640×200 4色
0BH:保留 
0CH:保留
0DH:320×200 16色
0EH:640×200 16色
0FH:640×350 2(单色)
10H:640×350 4色
10H:640×350 16色
11H:640×480 2色
12H:640×480 16色
13H:640×480 256色
对于超级VGA显示卡,我们可用AX=4F02H和下列BX的值来设置其显示模式。
BX显示模式属性
100H:640×400 256色
101H:640×480 256色
102H:800×600 16色
103H:800×600 256色
104H:1024×768 16色
105H:1024×768 256色
106H:1280×1024 16色
107H:1280×1024 256色
108H:80×60 文本模式
109H:132×25 文本模式
10AH:132×43 文本模式
10BH:132×50 文本模式
10CH:132×60 文本模式

(2)、功能01H
功能描述:设置光标形状
入口参数:AH=01H
CH低四位=光标的起始行
CL低四位=光标的终止行
出口参数:无

(3)、功能02H
功能描述:用文本坐标下设置光标位置
入口参数:AH=02H
BH=显示页码
DH=行(Y坐标)
DL=列(X坐标)
出口参数:无

(4)、功能03H
功能描述:在文本坐标下,读取光标各种信息
入口参数:AH=03H
BH=显示页码
出口参数:CH=光标的起始行
CL=光标的终止行
DH=行(Y坐标)
DL=列(X坐标)

(5)、功能04H
功能描述:获取当前状态和光笔位置
入口参数:AH=04H
出口参数:AH=00h——光笔未按下/未触发,01h——光笔已按下/已触发
BX=象素列(图形X坐标)
CH=象素行(图形Y坐标,显示模式:04H~06H)
CX=象素行(图形Y坐标,显示模式:0DH~10H)
DH=字符行(文本Y坐标)
DL=字符列(文本X坐标)

(6)、功能05H
功能描述:设置显示页,即选择活动的显示页
入口参数:AH=05H
AL=显示页
对于CGA、EGA、MCGA和VGA,其显示页如下表所列: 模式页数显示器类型
00H、01H0~7CGA、EGA、MCGA、VGA
02H、03H0~3CGA
02H、03H0~7EGA、MCGA、VGA
07H0~7EGA、VGA
0DH0~7EGA、VGA
0EH0~3EGA、VGA
0FH0~1EGA、VGA
10H0~1EGA、VGA
对于PCjr:
AL=80H——读取CRT/CPU页寄存器
81H——设置CPU页寄存器
82H——设置CRT页寄存器
83H——设置CRT/CPU页寄存器
BH=CRT页(子功能号82H和83H)
BL=CPU页(子功能号81H和83H)
出口参数:对于前者,无出口参数,但对PCjr在子功能80H~83H调用下,有:BH=CRT页寄存器,BL=CPU页寄存器

(7)、功能06H和07H
功能描述:初始化屏幕或滚屏
入口参数:AH=06H——向上滚屏,07H——向下滚屏
AL=滚动行数(0——清窗口)
BH=空白区域的缺省属性
(CH、CL)=窗口的左上角位置(Y坐标,X坐标)
(DH、DL)=窗口的右下角位置(Y坐标,X坐标)
出口参数:无

(8)、功能08H
功能描述:读光标处的字符及其属性
入口参数:AH=08H
BH=显示页码
出口参数:AH=属性
AL=字符

(9)、功能09H
功能描述:在当前光标处按指定属性显示字符
入口参数:AH=09H
AL=字符
BH=显示页码
BL=属性(文本模式)或颜色(图形模式)
CX=重复输出字符的次数
出口参数:无

(10)、功能0AH
功能描述:在当前光标处按原有属性显示字符
入口参数:AH=0AH
AL=字符
BH=显示页码
BL=颜色(图形模式,仅适用于PCjr)
CX=重复输出字符的次数
出口参数:无

(11)、功能0BH
功能描述:设置调色板、背景色或边框
入口参数:AH=0BH
设置颜色:BH=00H,01=颜色
选择调色板:BH=01H,BL=调色板(320×200、4种颜色的图形模式)
出口参数:无

(12)、功能0CH
功能描述:写图形象素
入口参数:AH=0CH
AL=象素值
BH=页码
(CX、DX)=图形坐标列(X)、行(Y)
出口参数:无

(13)、功能0DH
功能描述:读图形象素
入口参数:AH=0DH
BH=页码
(CX、DX)=图形坐标列(X)、行(Y)
出口参数:AL=象素值

(14)、功能0EH
功能描述:在Teletype模式下显示字符
入口参数:AH=0EH
AL=字符
BH=页码
BL=前景色(图形模式)
出口参数:无

(15)、功能0FH
功能描述:读取显示器模式
入口参数:AH=0FH
出口参数:AH=屏幕字符的列数
AL=显示模式(参见功能00H中的说明)
BH=页码

(16)、功能10H
功能描述:颜色中断。
其子功能说明如下:
00H — 设置调色板寄存器
01H — 设置边框颜色
02H — 设置调色板和边框
03H — 触发闪烁/亮显位
07H — 读取调色板寄存器
08H — 读取边框颜色
09H — 读取调色板和边框
10H — 设置颜色寄存器
12H — 设置颜色寄存器块
13H — 设置颜色页状态
15H — 读取颜色寄存器
17H — 读取颜色寄存器块
1AH — 读取颜色页状态
1BH — 设置灰度值

(17)、功能11H
功能描述:字体中断。
其子功能说明如下:
00H装入用户字体和可编程控制器
10H装入用户字体和可编程控制器
01H装入8×14 ROM字体和可编程控制器
11H装入8×14 ROM字体和可编程控制器
02H装入8×8 ROM字体和可编程控制器
12H装入8×8 ROM字体和可编程控制器
03H设置块指示器
04H装入8×16 ROM字体和可编程控制器
14H装入8×16 ROM字体和可编程控制器
20H设置INT 1Fh字体指针
21H为用户字体设置INT 43h
22H为8×14 ROM字体设置INT 43H
23H为8×8 ROM字体设置INT 43H
24H为8×16 ROM字体设置INT 43H
30H读取字体信息

(18)、功能12H
功能描述:显示器的配置中断。
其子功能说明如下:
10H — 读取配置信息
20H — 选择屏幕打印
30H — 设置扫描行
31H — 允许/禁止装入缺省调色板
32H — 允许/禁止显示
33H — 允许/禁止灰度求和
34H — 允许/禁止光标模拟
35H — 切换活动显示
36H — 允许/禁止屏幕刷新

(19)、功能13H
功能描述:在Teletype模式下显示字符串
入口参数:AH=13H
BH=页码
BL=属性(若AL=00H或01H)
CX=显示字符串长度
(DH、DL)=坐标(行、列)
ES:BP=显示字符串的地址 AL=显示输出方式
0——字符串中只含显示字符,其显示属性在BL中。显示后,光标位置不变
1——字符串中只含显示字符,其显示属性在BL中。显示后,光标位置改变
2——字符串中含显示字符和显示属性。显示后,光标位置不变
3——字符串中含显示字符和显示属性。显示后,光标位置改变
出口参数:无

(20)、功能1AH
功能描述:读取/设置显示组合编码,仅PS/2有效,在此从略

(21)、功能1BH
功能描述:读取功能/状态信息,仅PS/2有效,在此从略

(22)、功能1CH
功能描述:保存/恢复显示器状态,仅PS/2有效,在此从略

时间: 2024-09-03 00:39:08

INT 10H的相关文章

什么时候用INT 10H 的0E 号功能输出字符,而不是用INT 21H的2号功能输出?

问题描述 什么时候用INT 10H 的0E 号功能输出字符,而不是用INT 21H的2号功能输出? 什么时候用INT 10H 的0E 号功能输出字符,而不是用INT 21H的2号功能输出? 解决方案 INT10h是BIOS功能调用.INT21H是DOS功能调用. 换句话说,即使没有操作系统在,INT10H仍可以使用,而只有DOS(WINDOWS)启动了之后,才能使用INT21H

汇编中断知识之INT 1CH

最近在编写汇编程序遇到一个使用INT 1CH的程序,INT 1CH是实现定时或周期性的工作,难道INT 1CH就像INT 21H一样直接调用它里面的功能号吗?下面就通过一个程序简单的看看传说中的INT 1CH的.这个程序是实现屏幕背景颜色1秒钟变换一次的实验.1.INT 1CH中断INT 1CH其实是调用INT 21H中的25号功能:置中断向量AL=中断号,DS:DX=入口,同时INT21H中的35号功能:取中断向量,AL=中断号,ES:BX=中断程序入口.2.该程序中的INT1CH 该程序中是

[汇编] 在屏幕中央显示时钟

很简单的一段代码.可能对于刚学习的同学有两点知识需要补充: (1)        mov ah,2Ch     ;ch=时,cl=分,dh=秒         用来获取系统的时间,并且分别放在注释中的寄存器中       int 21h         ;获取时间 (2)    用来设置光标的位置 [cpp] view plain copy   setshow proc     ;设置光标位置    mov dh,12  ;行号12       mov dl,35  ;列号35     mov 

DOS6.0源程序中的硬盘引导记录源程序FDBOOT.ASM

;/*; * Microsoft Confidential; * Copyright (C) Microsoft Corporation 1983 - 1991; * All Rights Reserved.; */; BOOT - IBM hard disk boot record 6/8/82;;; This is the standard boot record that will be shipped on all hard disks. It contains:;; 1. Code t

汇编源代码之汇编语言制作的光带菜单及源程序(1.0)

这个是我上大二的时候的汇编语言课程设计.自己做得很满意.现在拿出来,给大家看看.我对部分代码又从新做了调整.编译后大小比原来大了一点,不过速度上去了.其实就是一个图形接口.你只要在中间加上自己的实用功能,就可以直接用了.代码我都有注释,读起来应该不会有什么问题.当然,汇编的代码本身就很难读.所以有什么不是很好懂的地方,可以直接同我联系. 我还给同学做过一个C语言版的光带菜单,不过很可惜的是自己做得不是很满意,就把程序给删掉了.大家也就看不到了 本程序用 tasm 进行编译,tlink 进行连接.

汇编源代码之一个有趣的打字游戏

;--------------------------------------------------------------------------------;此模板是纯DOS程序代码,需要MASM5.0,编译时请使用"编译 -> DOS"方式.;--------------------------------------------------------------------------------Init_game macro op1,op2,op3,op4,op5,

汇编源代码之图形显示方式屏幕的保存和恢复

在程序中常常要暂时的保存图形显示方式屏幕上的内容,然后把自己的信息输出到屏幕上,结束后再恢复原来的屏幕内容,特别在内存驻留程序弹出一个窗口时更要用到,但是图形方式下显示缓冲区的容量巨大,在常用的 80 x 25 文本方式下,显示缓冲区仅大小仅为 80 x 25 x 2 = 4000 字节,而在模式 13H 320 x 200 x 256 色时为 320 x 200 = 64000 字节,现在常用的高彩色.真彩色下如 800 x 600 x 65535 色时为 800 x 600 x 2 = 96

汇编源代码之CIH文件型病毒检测消除程序

;本程序在Tasm下编译通过;CIH文件型病毒检测消除程序GOFIRST MACROXOR CX,CXXOR DX,DXMOV AX,4200HINT 21H ;文件指针指到文件首ENDMALTERLINE MACROMOV DL,0DHMOV AH,02HINT 21H ;回车MOV DL,0AHMOV AH,02HINT 21H ;换行ENDMCOPYHANDLE MACROPUSH BXMOV AH,45HINT 21H ;复制文件把柄MOV BX,AXMOV AH,3EHINT 21H

汇编源码之跑动的男孩

;个人汇编小网站:http://www.x86asm.com ;一个跑动的男孩,生成.exe文件后刚1K多,这个程序是我在大2的时候研究出来的! ;该程序没有用到时间延时,而是巧妙的用了LOOP指令使图形字符不断的覆盖,就可以达到了跑动的效果! ;如果在DOS命令提示符下执行.exe,退出时会显示我的个人资料! ;该程序用TASM5.0和MASM5.0都可以编译通过! ;大家试试看吧!祝好运! .model small ;-------------------------------------