INT 10 中断详解


引自……夕辉的空间


功能号:00H

功能:设置显示模式
入口参数:AH=00H
   AL=显示模式
显示模式列表:

显示模式 显示模式属性
00H       40×25    16色 文本
01H       40×25    16色 文本
02H       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色
11H       640×480   2色
12H       640×480 16色
13H       320×200 256色

功能号01H

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

功能号:02H

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

功能号:03H

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

功能号:04H

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

功能号:05H

功能:设置显示页,即选择活动的显示页 
入口参数:AH=05H
          AL=显示页
对于CGA、EGA、MCGA和VGA,其显示页如下表所列:
模式   页数        显示器类型 
00H    01H 0~7     CGA、EGA、MCGA、VGA 
02H    03H 0~3     CGA 
02H    03H 0~7     EGA、MCGA、VGA 
07H     0~7        EGA、VGA 
0DH    0~7         EGA、VGA 
0EH    0~3         EGA、VGA 
0FH    0~1         EGA、VGA 
10H    0~1         EGA、VGA

功能号:06H和07H

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

功能号:08H

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

功能号:09H

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

功能号:0AH

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

功能号:0BH

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

功能号:0CH

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

功能号:0DH

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

功能号:0EH

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

功能号:0FH

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

功能号:10H

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

功能号: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      读取字体信息 

功能号:12H

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

功能号:13H

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

出口参数: 无

功能号:1AH

功能:读取/设置显示组合编码,仅PS/2有效,在此从略

功能号:1BH

功能:读取功能/状态信息,仅PS/2有效,在此从略

功能号:1CH

功能:保存/恢复显示器状态,仅PS/2有效,在此从略


INT 0x10 是BIOS提供的用于屏幕显示和图形操作的中断调用,在汇编语言编程中,可通过它实现字符显示、设置显示模式等功能。使用时需确定调用 INT 0x10 中断,找到 ah 功能号,因为单纯中断号范围太小,不能包含全部功能,需要 ah 作为功能号来进行指令的拓展[^1]。 以下是 INT 0x10 的部分功能及参数说明: - **功能 0x06**:通过 `mov ax,0x0600` 可知,ah 为 0x6,需查阅手册了解该功能具体内容,但文档未详细提及此功能具体用途[^1]。 - **功能 0x09**:显示字符并设置其属性。接受参数包括:AH 为 0x09,AL 为字符的 ASCII 码,BH 为视频页,BL 为属性值,CX 为重复次数;无返回值。注意在显示字符之后并不前进光标,在文本和图形模式下均可调用该功能,显示完字符后,若还要继续显示字符,必须调用 INT 0x10 功能 0x02 前进光标[^4]。 - **功能 0x0e**:在提供的代码中,`MOV AH,0x0e` 和 `INT 0x10` 结合使用,可实现 BIOS 显示功能,从代码上下文推测,该功能用于逐个显示字符串中的字符[^4]。 - **功能 0x02**:文档中未详细说明该功能具体用途,但提到显示完字符后若要继续显示字符,必须调用 INT 0x10 功能 0x02 前进光标[^4]。 以下是使用 INT 0x10 中断显示字符串的示例代码: ```asm ;learn2-os ;启动区部分 ORG 0x7c00 ;启动区装载地址 JMP entry DB 0x90 DB " lxaipro";启动区名称 DW 512;每个扇区大小 DB 1;簇的大小 DW 1;FAT的起始位置(从第一个扇区开始) DB 2;FAT个数(2) DW 224;根目录大小 DW 2880;该磁盘大小。2880扇区 DB 0xf0;磁盘的种类 DW 9;FAT长度,9扇区 DW 18;1个磁道有几个扇区 DW 2;磁头数(必须是2) DD 0;不使用分区,必须是0 DD 2880;重写一次磁盘大小 DB 0,0,0x29;扩展引导标记 固定0x29 DD 0xffffffff ;卷列序号 DB "lxaipro-os ";磁盘名称(11个字节) DB "FAT12 ";磁盘格式名(8个字节) TIMES 18 DB 0; 先空出18字节 ;程序主体 entry: MOV AX,0 ; 寄存器初始化 MOV SS,AX MOV SP,0x7c00 MOV DS,AX MOV ES,AX MOV SI,msg ;显示字符 showchar: MOV AL,[SI] ADD SI,1 ; SI自增1,调出下一个字符 CMP AL,0 ;如果当前为0,表示字符串结尾,退出循环 JE fin ;退出循环,字符串取完字符 MOV AH,0x0e ; MOV BX,15 ; 颜色 INT 0x10 ; 调入软中断,BIOS显示功能 JMP showchar fin: HLT ; CPU待机 JMP fin ;信息显示部分 msg: DB 0x0a, 0x0a,0x0a,0x0a ; 4个换行符 DB "hi" DB 0x0a ;换行 DB "mypro3" DB 0x0a, 0x0a;2个换行符 DB 0 TIMES 0x7dfe-($-$$) DB 0 ; 0X00直到0x001fe DB 0x55, 0xaa ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值