INT | AH | 功能 | 调用参数 | 返回参数 |
10 | 0 | 设置显示方式
| AL=00 40×25黑白方式 对于超级VGA显示卡, | |
10 | 1 | 置光标类型 | (CH)0-3=光标起始行 {CH低四位=光标的起始行} | |
10 | 2 | 置光标位置 | BH=页号 | |
10 | 3 | 读光标位置(在文本坐标下,读取光标各种信息) | BH=页号 | CH=光标起始行 DH=行,DL=列 |
10 | 4 | 读光笔位置(获取当前状态和光笔位置) | AH=0 光笔未触发 =1 光笔触发 CH=象素行 (图形Y坐标,显示模式:04H~06H) BX=象素列 (图形Y坐标,显示模式:0DH~10H) DH=字符行 (文本Y坐标) DL=字符列 (文本X坐标) | |
10 | 5 | 置显示页(即选择活动的显示页) | AL=页号 AL=显示页 | 对PCjr在子功能80H~83H调用下,有: BH=CRT页寄存器, BL=CPU页寄存器 |
10 | 6 | 屏幕初始化或上卷 | AL=上卷行数 AL=0 整个窗口空白 BH=卷入行属性 CH=左上角行号 (CH、CL)=窗口的左上角位置(Y坐标,X坐标) CL=左上角列号 DH=右下角行号 (DH、DL)=窗口的右下角位置(Y坐标,X坐标) DL=右下角列号 | |
10 | 7 | 屏幕初始化或下卷 | AL=下卷行数 AL=0 整个窗口空白 BH=卷入行属性 CH=左上角行号 (CH、CL)=窗口的左上角位置(Y坐标,X坐标) CL=左上角列号 DH=右下角行号 (CH、CL)=窗口的左上角位置(Y坐标,X坐标) DL=右下角列号 | |
10 | 8 | 读光标位置的字符和属性 | BH=显示页 | AH=属性 AL=字符 |
10 | 9 | 在光标位置显示字符及属性 | BH=显示页 AL=字符 BL=属性 属性(文本模式)或颜色(图形模式) CX=字符重复次数(重复输出字符的次数) | |
10 | A | 在光标位置显示字符 | BH=显示页 | |
10 | B | 置彩色调板(320×200图形) | BH=彩色调板ID 设置颜色: | |
10 | C | 写象素 | DX=行(0-199) | |
10 | D | 读象素 | DX=行(0-199) | AL=象素值 |
10 | E | 显示字符 (光标前移) | AL=字符 BL=前景色(图形模式) BH=页码 | |
10 | F | 取当前显示方式 | AH=字符列数 AL=显示方式(参见功能00H中的说明) | |
10 | 10 | 颜色中断 | 00H — 设置调色板寄存器 01H — 设置边框颜色 02H — 设置调色板和边框 03H — 触发闪烁/亮显位 07H — 读取调色板寄存器 08H — 读取边框颜色 09H — 读取调色板和边框 10H — 设置颜色寄存器 12H — 设置颜色寄存器块 13H — 设置颜色页状态 15H — 读取颜色寄存器 17H — 读取颜色寄存器块 1AH — 读取颜色页状态 1BH — 设置灰度值 | |
10 | 11 | 字体中断 | 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 读取字体信息 | |
10 | 12 | 显示器的配置中断 | 10H — 读取配置信息 20H — 选择屏幕打印 30H — 设置扫描行 31H — 允许/禁止装入缺省调色板 32H — 允许/禁止显示 33H — 允许/禁止灰度求和 34H — 允许/禁止光标模拟 35H — 切换活动显示 36H — 允许/禁止屏幕刷新 | |
10 | 13 | 显示字符串(适用AT) | ES:BP=串地址 CX=串长度 DH,DL=起始行,列 BH=页号 AL=0,BL=属性(闪烁1位,背景色3位,高亮1位,前景色3位.共8位) 串:char,char,... AL=1,BL=属性(闪烁1位,背景色3位,高亮1位,前景色3位.共8位) 串:char,char,... AL=2 串:char,attr,char,attr,... AL=3 串:char,attr,char,attr,... | 光标返回起始位置 光标跟随移动 光标返回起始位置 光标跟随移动 |
10 | 1A | 读取/设置显示组合编码,仅PS/2有效 | 略 | |
10 | 1B | 读取功能/状态信息,仅PS/2有效 | 略 | |
10 | 1C | 保存/恢复显示器状态,仅PS/2有效 | 略 | |
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=驱动器, 00H~7FH:软盘; 80H~0FFH:硬盘 | CF=0——操作成功,AH=00H, 否则,AH=状态代码,参见功能号01H中的说明 |
13 | 1 | 读软盘状态 | DL=驱动器, 00H~7FH:软盘; 80H~0FFH:硬盘 | 成功:CF=0 (13中断都可以依靠这个判断) AL=状态字节 00H — 无错 |
13 | 2 | 读磁盘 | AL=扇区数 | 读成功:CF=0,AH=0 AL=读取的扇区数 读失败:CF=1,AH=出错代码 (参见功能号01H中的说明) |
13 | 3 | 写磁盘 | 同上 | 写成功:CF=0,AH=0 AL=写入的扇区数 写失败:CF=1,AH=出错代码 |
13 | 4 | 检验磁盘扇区 | 同上(ES:BX不设置) | 成功:CF=0,AH=0 AL=检验的扇区数 失败:CF=1,AH=出错代码 |
13 | 5 | 格式化盘磁道 | ES:BX=磁道地址 AL=交替(Interleave) | 成功:CF=0,AH=0 失败:CF=1,AH=出错代码 |
13 | 6 | 格式化坏磁道 | AL=交替 CH=柱面 DH=磁头 DL=80H~0FFH:硬盘 ES:BX=地址域列表的地址 | 成功:CF=0,AH=0 失败:CF=1,AH=状态代码,参见功能号01H中的说明 |
13 | 7 | 格式化驱动器 | AL=交替 CH=柱面 DL=80H~0FFH:硬盘 | 成功:CF=0,AH=00H, 失败:CF=1,AH=状态代码,参见功能号01H中的说明 |
13 | 8 | 读取驱动器参数 | DL=驱动器: 00H~7FH:软盘; 80H~0FFH:硬盘 | 失败:CF=1,AH=状态代码,参见功能号01H中的说明 成功:CF=0, BL=01H — 360K =02H — 1.2M =03H — 720K =04H — 1.44M CH=柱面数的低8位 CL的位7-6=柱面数的该2位 CL的位5-0=扇区数 DH=磁头数 DL=驱动器数 ES:DI=磁盘驱动器参数表地址 |
13 | 9 | 初始化硬盘参数 | DL=80H~0FFH:硬盘(还有有关参数表问题,在此从略) | 操作成功,CF=0,AH=00H, 否则,CF=1,AH=状态代码,参见功能号01H中的说明 |
13 | A | 读长扇区,每个扇区随带四个字节的ECC编码 | AL=扇区数 CH=柱面 CL=扇区 DH=磁头 DL=80H~0FFH:硬盘 ES:BX=缓冲区的地址 | 成功:CF=0,AH=00H,AL=传输的扇区数, 否则:CF=1,AH=状态代码,参见功能号01H中的说明 |
13 | B | 写长扇区,每个扇区随带四个字节的ECC编码 | AL=扇区数 CH=柱面 CL=扇区 DH=磁头 DL=80H~0FFH:硬盘 ES:BX=缓冲区的地址 | 成功,CF=0,AH=00H,AL=传输的扇区数, 否则,CF=1,AH=状态代码,参见功能号01H中的说明 |
13 | C | 查寻 | CH=柱面的低8位 CL(7-6位)=柱面的高2位 DH=磁头 DL=80H~0FFH:硬盘 | 成功,CF=0,AH=00H, 否则,CF=1,AH=状态代码,参见功能号01H中的说明 |
13 | D | 硬盘系统复位 | DL=80H~0FFH:硬盘 | 成功,CF=0,AH=00H, 失败,CF=1,AH=状态代码,参见功能号01H中的说明 |
13 | E | 读扇区缓冲区 | ES:BX=缓冲区的地址 | 操作成功,CF=0, 否则,CF=1,AH=状态代码,参见功能号01H中的说明 |
13 | F | 写扇区缓冲区 | ES:BX=缓冲区的地址 | 操作成功,CF=0, 否则,CF=1,AH=状态代码,参见功能号01H中的说明 |
13 | 10 | 读取驱动器状态 | DL=80H~0FFH:硬盘 | 操作成功,CF=0,AH=00H, 否则,CF=1,AH=状态代码,参见功能号01H中的说明 |
13 | 11 | 校准驱动器 | DL=80H~0FFH:硬盘 | 操作成功,CF=0,AH=00H, 否则,CF=1,AH=状态代码,参见功能号01H中的说明 |
13 | 12 | 控制器RAM诊断 | 成功:CF=0, 否则,CF=1,AH=状态代码,参见功能号01H中的说明 | |
13 | 13 | 控制器驱动诊断 | AH=状态代码,参见功能号01H中的说明 | |
13 | 14 | 控制器内部诊断 | AH=状态代码,参见功能号01H中的说明 | |
13 | 15 | 读取磁盘类型 | DL=驱动器, 00H~7FH:软盘; 80H~0FFH:硬盘 | 失败,CF=1,AH=状态代码,参见功能号01H中的说明 否则,CF=0,AH=00H — 未安装驱动器 =01H — 无改变线支持的软盘驱动器 =02H — 带有改变线支持的软盘驱动器 =03H — 硬盘,CX:DX=512字节的扇区数 |
13 | 16 | 读取磁盘变化状态 | DL=00H~7FH:软盘 | 磁盘未改变,CF=0,AH=00H, 否则,CF=1,AH=06H,参见功能号01H中的说明 |
13 | 17 | 设置磁盘类型 | DL=00H~7FH:软盘 AL=00H — 未用 =01H — 360K在360K驱动器中 =02H — 360K在1.2M驱动器中 =03H — 1.2M在1.2M驱动器中 =04H — 720K在720K驱动器中 | 操作成功,CF=0,AH=00H, 否则,CF=1,AH=状态编码,参见功能号01H中的说明 |
13 | 18 | 设置格式化媒体类型 | CH=柱面数 CL=每磁道的扇区数 DL=00H~7FH:软盘 | 操作成功,CF=0,AH=00H, ES:DI=介质类型参数表地址, 否则,CF=1,AH=状态编码,参见功能号01H中的说明 |
13 | 19 | 磁头保护(仅在PS/2中有效) | ||
13 | 1A | 格式化ESDI驱动器(仅在PS/2中有效) | ||
13 | 41 | 检验扩展功能是否存在(是否为扩展8.46GB硬盘) | BX = 55AAh DL = 驱动器号 | CF=0,
|
13 | 42 | 扩展读 (大于8.46GB硬盘专用) | DL = 驱动器号 DS:DI = 磁盘地址数据包(Disk Address Packet) | 成功:CF=0,AH = 0 这个调用将磁盘上的数据读入内存。如果出现错误,DAP 的 BlockCount项中则记录了出错前实际读取的数据块个数 |
14 | 0 | 初始化串行通讯口 | AL=初始化参数
对于PS/2,可用INT 14H之功能04H和05H来初始化其通信速率大于9600。 | AH=通读口状态 AH=通信口状态, |
14 | 1 | 向串行通讯口写字符 | AL=字符 DX=通讯口号(COM0,COM1...) | 写成功:(AH)7=0 写失败:(AH)7=1 (AH)0-6=通讯口状态 |
14 | 2 | 从串行通讯口读字符 | DX=通讯口号(COM0,COM1...) | 读成功:(AH)7=0 (AL)=字符 写失败:(AH)7=1 (AH)0-6=通讯口状态 |
14 | 3 | 取通讯口状态 | DX=通讯口号(COM0,COM1...) | AH=通讯口状态 AL=调制解调器状态(参见功能号00H中的说明) |
14 | 4 | 扩充初始化通信口(仅在PS/2中有效) | ||
15 | 0 | 启动盒式磁带马达 | AH=状态(86H,若未安装盒式磁带机) | |
15 | 1 | 停止盒式磁带马达 | AH=状态(86H,若未安装盒式磁带机) | |
15 | 2 | 磁带分块读 | ES:BX=数据传输区地址 CX=字节数 | AH=状态字节 操作成功, |
15 | 3 | 磁带分块写 | DS:BX=数据传输区地址 CX=字节数 | 同上 |
15 | F | 格式化ESDI驱动器定期中断(仅在PS/2中有效) | ||
15 | 21 | 读/写自检(POST)错误记录(仅在PS/2中有效) | ||
15 | 4F | 键盘截听(仅在PS/2中有效) | ||
15 | 80 | 打开设备 | BX=设备号 CX=进程号 | 操作成功,AH=00H, 否则,AH=状态码 |
15 | 81 | 关闭设备 | BX=设备号 CX=进程号 | 操作成功,AH=00H, 否则,AH=状态码 |
15 | 82 | 进程终止 | BX=进程号 | 操作成功,AH=00H, 否则,AH=状态码 |
15 | 83 | 事件等待 | 若需要事件等待,则: AL=00H CX:DX=千分秒 ES:BX=信号量字节的地址 否则,调用参数为 AL=01H | 成功:CF=0, 否则:CF=1 |
15 | 84 | 读游戏杆 | DX=00H——读取开关设置 =01H——读取阻力输入 | CF=1H——操作失败, 否则, DX=00H时,AL=开关设置(位7~4) DX=01H时, AX:A(x) BX:A(y) CX:B(x) DX:B(y) |
15 | 85 | 系统请求(SysReq)键 | AL =00H——键按下 =01H——键放开 | 操作成功,AH=00H, 否则,AH=状态码 |
15 | 86 | 延迟 | CX:DX=千分秒 | 操作成功,AH=00H |
15 | 87 | 从常规内存和扩展内存之间移动扩展内存块 | 偏移量存储的信息 00h-0Fh 保留,但现全为0 10h-11h 段的长度(2CX-1或更大) 12h-14h 24位源地址 15h 访问权限字节(其值为93h) 16h-17h 保留,但现全为0 18h-19h 段的长度(2CX-1或更大) 1Ah-1Ch 24位目标源地址 1Dh 访问权限字节(其值为93h) 1Eh-2Fh 保留,但现全为0 | 操作成功,AH=00H,
|
15 | 88 | 读取扩展内存大小 | AX=扩展内存字节数(以K为单位) | |
15 | 89 | 进入保护模式,CPU从实模式进入保护模式 | BH=IRQ0的中断号 BL=IRQ8的中断号 ES:SI=GDT的地址(参见功能号87H) | 操作失败,AH=0FFH, 否则 ,AH=00H,CS、DS、ES和SS都是用户定义的选择器 |
15 | 90 | 设备等待 | AL=驱动器类型,具体的驱动器类型定义如下: =00H~7FH——串行再重用设备 =80H~0BFH——可重入式设备 =0C0H~0FFH——等待访问设备,没有自检功能 00h — 磁盘 02h — 键盘 80h — 网络 FDh — 软盘马达启动01h — 软盘 03h — 点设备(Pointing Device) FCh — 硬盘复位 FEh — 打印机 ES:BX=对驱动器类型80H~0FFH的请求块地址 | 操作失败, 否则,AH=00H |
15 | 91 | 设备加电自检 | AL=00H~7FH——串行再重用设备 =80H~0BFH——可重入式设备 | AH=00H |
15 | C0 | 读取系统环境 | 入口参数:AH=0C0H 出口参数: ES:BX=配置表地址, 配置表的定义如下: 偏移量含义说明 00h-01h表的大小(字节数) 02h系统模型 03h系统子模型 04hBIOS版本号 05h配置标志,其各位为1时的说明如下: 位7—DMA通道3使用 位6—存在从属8259 位5—实时时钟有效 位4—键盘截听有效 位3—等待外部事件有效 位2—扩展BIOS数据区 位1—微通道设施 位0—保留 06h-09h保留 | |
15 | C1 | 读取扩展BIOS数据区地址(仅在PS/2中有效) | ||
15 | C2 | 鼠标图形(仅在PS/2中有效) | ||
15 | C3 | 设置WatcHdog超时(仅在PS/2中有效) | ||
15 | C4 | 可编程选项选择,仅在PS/2中有效 | ||
16 | 0 | 从键盘读字符 | AL=字符码(ASCII码) AH=扫描码 | |
16 | 10 | 从键盘读字符(扩展) | 根据0000:0496H单元的内容判断:扩展键盘是否有效 | AL=字符码(ASCII码) AH=扫描码 |
16 | 1 | 读键盘缓冲区字符 | ZF=0 AL=字符码(ASCII码) AH=扫描码 ZF=1 缓冲区空 | |
16 | 11 | 读键盘缓冲区字符(扩展) | 根据0000:0496H单元的内容判断:扩展键盘是否有效 | ZF=0 AL=字符码(ASCII码) AH=扫描码 ZF=1 缓冲区空 |
16 | 2 | 读键盘状态字节 | AL=键盘状态字节 AL=键盘标志(02H和12H都有效), | |
16 | 12 | 读键盘状态字节(扩展) | 根据0000:0496H单元的内容判断:扩展键盘是否有效 | AL=键盘状态字节 AL=键盘标志, AH=扩展键盘的标志(12H有效), |
16 | 3 | 设置重复率 | 对于PC/AT和PS/2: AL=05H BH=重复延迟 BL=重复率 对于PCjr: AL=00H——装入缺省的速率和延迟 =01H——增加初始延迟 =02H——重复频率降低一半 =03H——增加延迟和降低一半重复频率 =04H——关闭键盘重复功能 | |
16 | 4 | 设置键盘点击 | AL=00H——关闭键盘点击功能 AL=01H——打开键盘点击功能 | |
16 | 5 | 字符及其扫描码进栈 | CH=字符的描述码 CL=字符的ASCII码 | 操作成功,AL=00H, 否则,AL=01H |
17 | 0 | 打印字符 回送状态字节 | AL=字符 DX=打印机号(0—LPT1,1—LPT2,2—LPT3,……) | AH=打印机状态字节 位7—打印机空闲 |
17 | 1 | 初始化打印机 回送状态字节 | DX=打印机号(0—LPT1,1—LPT2,2—LPT3,……) | AH=打印机状态字节 |
17 | 2 | 取状态字节 | DX=打印机号(0—LPT1,1—LPT2,2—LPT3,……) | 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 | 3 | 设置时间 | ||
1A | 4 | 读取日期 | CH=BCD码格式的世纪 CL=BCD码格式的年 DH=BCD码格式的月 DL=BCD码格式的日 CF=0——时钟在走,否则,时钟停止 | |
1A | 5 | 设置日期 | CH=BCD码格式的世纪 CL=BCD码格式的年 DH=BCD码格式的月 DL=BCD码格式的日 | |
1A | 6 | 置报警时间 | CH:CL=时:分(BCD) DH:DL=秒:1/100秒(BCD) | CF=0——操作成功, 否则,闹钟已设置或时钟已停止 |
1A | 7 | 清除报警(闹钟复位) | ||
1A | A | 读取天数计数(仅在PS/2有效) | ||
1A | B | 设置天数计数(仅在PS/2有效) | ||
1A | 80 | 设置声音源信息 | AL=声音源 =00H——8253可编程计时器,通道2 =01H——盒式磁带输入 =02H——I/O通道上的"Audio In" =03H——声音产生芯片 | |
0 | “0”作除数 | |||
1 | 单步中断 | |||
2 | 非屏蔽中断(NMI) | |||
3 | 断点中断 | |||
4 | 算术溢出错误 | |||
5 | 打印屏幕和BOUND越界 | |||
6 | 非法指令错误 | |||
7 | 处理器扩展无效 | |||
8 | 时钟中断 | |||
9 | 键盘输入 | |||
B | 通信口(COM2:) | |||
C | 通信口(COM1:) | |||
E | 磁盘驱动器输入/输出 | |||
11 | 读取设备配置 | |||
12 | 读取常规内存大小(返回值AX为内存容量,以K为单位) | |||
18 | ROM BASIC | 很多BIOS显示"PRESS A KEY TO REBOOT" | ||
19 | 重启动系统 | |||
1B | CTRL+BREAK处理程序 | |||
1C | 用户时钟服务 | |||
1D | 指向显示器参数表指针 | |||
1E | 指向磁盘驱动器参数表指针 | |||
1F | 指向图形字符模式表指针 | |||