常用中断
| INT | AH | 功能 | 调用参数 | 返回参数 |
| 10 |
0 |
设置显示方式: AL6~0为显示模式号,1.AL7=0:先清屏,再转为新模式 |
AL=00 40×25黑白方式 AL=01 40×25彩色方式 AL=02 80×25黑白方式 AL=03 80×25彩色方式 AL=04 320×200彩色图形方式 AL=05 320×200黑白图形方式 AL=06 320×200黑白图形方式 AL=07 80×25单色文本方式 AL=08 160×200 16色图形 (PCjr) AL=09 320×200 16色图形 (PCjr) AL=0A 640×200 16色图形 (PCjr) AL=0B 保留(EGA) AL=0C 保留(EGA) AL=0D 320×200 彩色图形 (EGA) AL=0E 640×200 彩色图形 (EGA) AL=0F 640×350 黑白图形 (EGA) AL=10 640×350 彩色图形 (EGA) AL=11 640×480 单色图形 (EGA) AL=12 640×480 16色图形 (EGA) AL=13 320×200 256色图形 (EGA) AL=40 80×30 彩色文本(CGE400) AL=41 80×50 彩色文本(CGE400) AL=42 640×400 彩色图形(CGE400) |
|
| 10 |
1 |
设置光标大小 (仅在文本显示模式下有效) |
(CH)0-3=光标起始处行号 (CL)0-3=光标结束处行号 |
|
| 10 |
2 |
设置光标位置 |
BH=光标所在处的页号 DH=行号 DL=列号 |
|
| 10 |
3 |
读光标当前所在位置 |
BH=页号 |
AX = 0000h (Phoenix BIOS) DH,DL=行,列 CH = 开始扫描行号 CL = 结束扫描行号 |
| 10 |
4 |
读光笔当前所在位置 (适用于EGA显示卡) |
AH=0 光笔未打开 =1 光笔已打开,且以下参数有效: CX=象素行(图形) BX=象素列(图形) DH=字符行(文本) DL=字符列(文本) |
|
| 10 | 5 | 置显示页 | AL=页号 | |
| 10 |
6 |
屏幕初始化或向上卷动屏幕 |
AL=上卷行数 AL=0 :整个窗口空白 AL!=0:屏幕底部为空白输入行 BH=空白行属性 CH=左上角行号 CL=左上角列号 DH=右下角行号 DL=右下角列号 |
|
| 10 |
7 |
屏幕初始化或向下卷动屏幕 |
AL=下卷行数 AL=0 整个窗口空白 AL!=0:屏幕顶部为空白输入行 BH=空白行属性 CH=左上角行号 CL=左上角列号 DH=右下角行号 DL=右下角列号 |
|
| 10 |
8 |
读光标位置的字符和属性 (仅文本显示模式下有效) |
BH=页号 |
AH=光标所在处字符属性 AL=光标所在处字符编码 |
| 10 |
9 |
在光标位置显示字符及属性 |
BH=页号 AL=欲写字符的编码 BL=欲写字符的属性 CX=字符重复次数 |
|
| 10 |
A |
在光标位置显示字符 |
BH=显示页 AL=欲写字符的编码 CX=字符重复次数 |
|
| 10 |
B |
置彩色调板(320×200图形)或边沿色/背景色 (适用于CGA显示卡) |
BH=0:文本模式下设置边沿色,图形模式下设置背景色,BL=将设置的颜色号; BH=1:设置调色板,BL=调色板号 |
|
| 10 |
C |
写象素 (仅在图形显示模式下有效) |
DX=行(0-199) CX=列(0-639) AL=点的前景色 |
|
| 10 |
D |
读指定页面指定点的颜色 |
BX=欲读点的页号 DX=行(0-199) CX=列(0-639) |
AL=读得该点的前景色 |
| 10 |
E |
显示字符 (光标前移一格,如到页尾则自动上卷一行,末行空白) |
AL=欲写字符的编码 BH=页号 BL=字符的前景色号 |
|
| 10 |
F |
取当前显示状态 | AH=当前每行字符数 BH=当前页号 AL6~0=显示模式号 AL7=1:上次转换未清屏 AL7=0:上次转换前先清屏 |
|
| 10 |
13 |
显示字符串(适用AT) |
ES:BP=串地址 |
|
| 11 |
设备检验 |
AX=返回值 bit0=1,配有磁盘 bit1=1,80287协处理器 bit4,5=01,40×25BW(彩色板) =10,80×25BW(彩色板) =11,80×25BW(黑白板) bit6,7=罗盘驱动器 bit9,10,11=RS-232板号 bit12=游戏适配器 bit13=串行打印机 bit14,15=打印机号 |
||
| 12 | 测定存储器容量 | AX=字节数(KB) | ||
| 13 | 0 | 磁盘复位 | DL=物理驱动器号(0、1:软盘,80H、81H硬盘) | CF=0:复位成功,此时AH=磁盘状态 CF=1:复位失败 |
| 13 | 1 | 读磁盘状态 | DL=物理驱动器号(0、1:软盘,80H、81H硬盘) | CF=0:读状态成功,此时AH=磁盘状态(*2*) CF=1:读状态失败 |
| 13 |
2 |
读扇区状态 |
AL=扇区数 CH,CL=磁道号,扇区号1-63 DH,DL=磁头号,驱动器号 ES:BX=数据缓冲区地址 |
CF=0:读成功, |
| 13 |
3 |
写指定的扇区 |
同上 |
CF=0:写成功 AH=0 AL=写入的扇区数 CF=1:写失败 AH=出错代码 |
| 13 |
4 |
检验磁盘扇区 |
同上(ES:BX不设置) |
CF=0:成功 |
| 13 |
5 |
对指定磁道格式化(硬盘格式化较复杂,这里只针对软盘格式化) | AL=每磁道扇区数 CH=磁道号 DH,DL=磁头号,驱动器号 ES:BX=指向扇区ID的地址指针 |
CF=0:成功 |
| 13 |
8 | 取当前驱动器参数 | DL=物理驱动器号 |
CF=0:成功 |
| 13 |
9 | 初始化双驱动器 |
CF=0:初始化成功 |
|
| 13 |
C | 查找柱面 | CH=磁道号 CL5~0=扇区号 CL7~6=磁道号高2位 DH=磁头号 DL=物理驱动器号 |
CF=0:查找成功 AH=磁盘状态 CF=1:查找失败 |
| 13 |
D | 备用硬盘复位 | DL=物理驱动器号 | CF=0:复位成功 AH=磁盘状态 CF=1:复位失败 |
| 13 |
10H | 检测硬盘是否准备好 | DL=物理驱动器号 | CF=0:准备好 AH=磁盘状态 CF=1:未准备好 |
| 13 |
11H | 调整硬盘驱动器 | DL=物理驱动器号 | CF=0:成功 AH=磁盘状态 CF=1:失败 |
| 13 |
14H | 硬盘驱动器内部诊断 | CF=0:成功 CF=1:失败 |
|
| 13 |
15H | 取DASD磁盘类型 | DL=物理驱动器号 | CF=0:成功 AH=DASD磁盘类型值(*4*) CF=1:失败 |
| 13 |
16H | 取软盘变化 | DL=物理驱动器号 | CF=0:成功 AH=软盘状态值(*5*) CF=1:失败 |
| 13 |
17H | 设置磁盘格式化类型 |
DL=物理驱动器号 |
CF=0:成功 AH=磁盘状态 CF=1:失败 |
| 13 |
18H | 设置软盘介质类型 | DL=物理驱动器号 CH=磁道数 CL=每磁道扇区数 ES:DI指向11个字节的介质参数表的首址指针 |
CF=0:设置成功 AH=磁盘状态 CF=1:设置失败 |
| 13 |
19H | 磁头复位 | DL=物理驱动器号 |
CF=0:复位成功 AH=磁盘状态 CF=1:复位失败 |
| 14 |
0 |
初始化串行通讯口 |
AL=初始化参数 DX=通讯口号(0,1) |
AH=通读口状态 AL=调制解调器状态 |
| 14 |
1 |
向串行通讯口写字符 |
AL=字符 DX=通讯口号(0,1) |
写成功:(AH)7=0 写失败:(AH)7=1 (AH)0-6=通讯口状态 |
| 14 |
2 |
从串行通讯口读字符 |
DX=通讯口号(0,1) |
读成功:(AH)7=0 (AL)=字符 写失败:(AH)7=1 (AH)0-6=通讯口状态 |
| 14 |
3 |
取通讯口状态 |
DX=通讯口号(0,1) |
AH=通讯口状态 AL=调制解调器状态 |
| 15 | 0 | 启动盒式磁带马达 | ||
| 15 | 1 | 停止盒式磁带马达 | ||
| 15 |
2 |
磁带分块读 |
ES:BX=数据传输区地址 CX=字节数 |
AH=状态字节 AH=00 读成功 =01 冗余检验错 =02 无数据传输 =04 无引导 |
| 15 |
3 |
磁带分块写 |
DS:BX=数据传输区地址 CX=字节数 |
同上 |
| 16 | 0 | 从键盘读字符 | AL=字符ASCII码 AH=字符的扫描码 |
|
| 16 |
1 |
读键盘缓冲区字符 |
ZF=0:键盘已准备好读、但键盘缓冲区指针并未改变 AL=字符ASCII码 AH=扫描码 ZF=1: 键盘尚未准备好读,缓冲区空 |
|
| 16 | 2 | 读转换键状态 | AL=转换键状态值(*7*) AH大多数BIOS会改变其值 |
|
| 16 |
3 |
设置按键速率和延迟时间 | AL=设置值 0:默认 1:增加延迟时间 2:按键速率减慢一半 3:增加延时且按键速率减慢一半 4:关闭重发字符 5:设置按键速率与延迟时间 BH=延迟时间 BL=按键速率 |
|
| 16 |
5 |
键盘写(将字符放回缓冲区) | CL=欲写的字符ASCII码 CH=字符的扫描码 |
AL=00H:成功 AL=01H:缓冲区已满,操作失败 |
| 16 |
10H |
读扩展键盘 | AL=读得字符的ASCII码 AH=字符的扫描码 |
|
| 16 |
11H |
读取扩展键盘状态 | ZF=0:键盘已准备好读、但键盘缓冲区指针并未改变 AL=字符ASCII码 AH=扫描码 ZF=1: 键盘尚未准备好读,缓冲区空 |
|
| 16 |
12H |
读取扩展转换键状态 | AL=转换键状态值(*7*) AH=扩展转换键状态值(*8*) |
|
| 17 |
0 |
打印一个字符 回送状态字节 |
AL=欲打印字符的ASCII码 DX= 打印机号(0~2) |
AH=打印机状态字节 AH7=0:打印机忙 AH7=1:打印机空闲 AH6=1:打印机响应 AH5=1:无打印纸 AH4=1:已联机 AH3=1:出错 AH2~1:保留 AH0=1:超时 |
| 17 |
1 |
初始化打印机 回送状态字节 |
DX=打印机号(0~2) |
AH=打印机状态字节(同上) |
| 17 | 2 | 取打印机状态 | DX=打印机号(0~2) | AH=打印机状态字节(同上) |
| 1A |
0 |
读时钟 |
CH:CL=时:分 DH:DL=秒:1/100秒 |
|
| 1A |
1 |
置时钟 |
CH:CL=时:分 DH:DL=秒:1/100秒 |
|
| 1A |
2 |
读实时钟 |
CH:CL=时:分(BCD) DH:DL=秒:1/100秒(BCD) |
|
| 1A | 6 | 置报警时间 | CH:CL=时:分(BCD) DH:DL=秒:1/100秒(BCD) |
|
| 1A | 7 | 清除报警 |
注:
(*1*)
例:
AL=0
串:char,char,...
(光标返回起始位置)
AL=1
串:char,char,...
(光标跟随移动)
AL=2,BL=属性串:char,attr,char,attr,...
(光标返回起始位置)
AL=3,BL=属性串:char,attr,char,attr,...
(光标跟随移动)
浙公网安备 33010602011771号