x86 系统中断
x86 系统中断
______________________________________________________________________________
直接系统服务(Direct System Service)
INT 00H - “0”作除数
INT 01H - 单步中断
INT 02H - 非屏蔽中断(NMI)
INT 03H - 断点中断
INT 04H - 算术溢出错误
INT 05H - 打印屏幕和BOUND越界
INT 06H - 非法指令错误
INT 07H - 处理器扩展无效
INT 08H - 时钟中断
INT 09H - 键盘输入
INT 0BH - 通信口(COM2:)
INT 0CH - 通信口(COM1:)
INT 0EH - 磁盘驱动器输入/输出
INT 11H - 读取设备配置
INT 12H - 读取常规内存大小(返回值AX为内存容量,以K为单位)
INT 18H - ROM BASIC
INT 19H - 重启动系统
INT 1BH - CTRL+BREAK处理程序
INT 1CH - 用户时钟服务
INT 1DH - 指向显示器参数表指针
INT 1EH - 指向磁盘驱动器参数表指针
INT 1FH - 指向图形字符模式表指针
______________________________________________________________________________
显示服务(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 显示模式属性 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、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
对于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
BL=颜色
选择调色板:
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有效,在此从略
______________________________________________________________________________
直接磁盘服务(Direct Disk Service -- INT 13H)
00H - 磁盘系统复位
01H - 读取磁盘系统状态
02H - 读扇区
03H - 写扇区
04H - 检验扇区
05H - 格式化磁道
06H - 格式化坏磁道
07H - 格式化驱动器
08H - 读取驱动器参数
09H - 初始化硬盘参数
0AH - 读长扇区
0BH - 写长扇区
0CH - 查寻
0DH - 硬盘系统复位
0EH - 读扇区缓冲区
0FH - 写扇区缓冲区
10H - 读取驱动器状态
11H - 校准驱动器
12H - 控制器RAM诊断
13H - 控制器驱动诊断
14H - 控制器内部诊断
15H - 读取磁盘类型
16H - 读取磁盘变化状态
17H - 设置磁盘类型
18H - 设置格式化媒体类型
19H - 磁头保护
1AH - 格式化ESDI驱动器
-------------------------------------------------------------------------------------------------
(1)、功能00H
功能描述: 磁盘系统复位
入口参数: AH=00H
DL=驱动器,00H~7FH:软盘;80H~0FFH:硬盘
出口参数: CF=0 -- 操作成功,AH=00H,否则,AH=状态代码,参见功能号01H中的说明
(2)、功能01H
功能描述: 读取磁盘系统状态
入口参数: AH=01H
DL=驱动器,00H~7FH:软盘;80H~0FFH:硬盘
出口参数:
AH=00H
AL=状态代码,其定义如下:
00H - 无错
01H - 非法命令
02H - 地址目标未发现
03H - 磁盘写保护(软盘)
04H - 扇区未发现
05H - 复位失败(硬盘)
06H - 软盘取出(软盘)
07H - 错误的参数表(硬盘)
08H - DMA越界(软盘)
09H - DMA超过64K界限
0AH - 错误的扇区标志(硬盘)
0BH - 错误的磁道标志(硬盘)
0CH - 介质类型未发现(软盘)
0DH - 格式化时非法扇区号(硬盘)
0EH - 控制数据地址目标被发现(硬盘)
0FH - DMA仲裁越界(硬盘)
10H - 不正确的CRC或ECC编码
11H - ECC校正数据错(硬盘)
CRC:Cyclic Redundancy Check code
ECC:Error Checking & Correcting code
20H - 控制器失败
40H - 查找失败
80H - 磁盘超时(未响应)
AAH - 驱动器未准备好(硬盘)
BBH - 未定义的错误(硬盘)
CCH - 写错误(硬盘)
E0H - 状态寄存器错(硬盘)
FFH - 检测操作失败(硬盘)
(3)、功能02H
功能描述: 读扇区
入口参数:
AH=02H
AL=扇区数
CH=柱面
CL=扇区
DH=磁头
DL=驱动器,00H~7FH:软盘;80H~0FFH:硬盘
ES:BX=缓冲区的地址
出口参数: CF=0 -- 操作成功,AH=00H,AL=传输的扇区数,否则,AH=状态代码,参见功能号01H中的说明
(4)、功能03H
功能描述: 写扇区
入口参数:
AH=03H
AL=扇区数
CH=柱面
CL=扇区
DH=磁头
DL=驱动器,00H~7FH:软盘;80H~0FFH:硬盘
ES:BX=缓冲区的地址
出口参数: CF=0 -- 操作成功,AH=00H,AL=传输的扇区数,否则,AH=状态代码,参见功能号01H中的说明
(5)、功能04H
功能描述: 检验扇区
入口参数:
AH=04H
AL=扇区数
CH=柱面
CL=扇区
DH=磁头
DL=驱动器,00H~7FH:软盘;80H~0FFH:硬盘
ES:BX=缓冲区的地址
出口参数: CF=0 -- 操作成功,AH=00H,AL=被检验的扇区数,否则,AH=状态代码,参见功能号01H中的说明
(6)、功能05H
功能描述: 格式化磁道
入口参数: AH=05H
AL=交替(Interleave)
CH=柱面
DH=磁头
DL=驱动器,00H~7FH:软盘;80H~0FFH:硬盘
ES:BX=地址域列表的地址
出口参数: CF=0 -- 操作成功,AH=00H,否则,AH=状态代码,参见功能号01H中的说明
(7)、功能06H
功能描述: 格式化坏磁道
入口参数:
AH=06H
AL=交替
CH=柱面
DH=磁头
DL=80H~0FFH:硬盘
ES:BX=地址域列表的地址
出口参数: CF=0 -- 操作成功,AH=00H,否则,AH=状态代码,参见功能号01H中的说明
(8)、功能07H
功能描述: 格式化驱动器
入口参数:
AH=07H
AL=交替
CH=柱面
DL=80H~0FFH:硬盘
出口参数: CF=0 -- 操作成功,AH=00H,否则,AH=状态代码,参见功能号01H中的说明
(9)、功能08H
功能描述: 读取驱动器参数
入口参数: AH=08H
DL=驱动器,00H~7FH:软盘;80H~0FFH:硬盘
出口参数: CF=1 -- 操作失败,AH=状态代码,参见功能号01H中的说明,否则, BL
=01H - 360K
=02H - 1.2M
=03H - 720K
=04H - 1.44M
CH=柱面数的低8位
CL的位7-6=柱面数的该2位
CL的位5-0=扇区数
DH=磁头数
DL=驱动器数
ES:DI=磁盘驱动器参数表地址
(10)、功能09H
功能描述: 初始化硬盘参数
入口参数: AH=09H
DL=80H~0FFH:硬盘(还有有关参数表问题,在此从略)
出口参数: CF=0 -- 操作成功,AH=00H,否则,AH=状态代码,参见功能号01H中的说明
(11)、功能0AH
功能描述: 读长扇区,每个扇区随带四个字节的ECC编码
入口参数: AH=0AH
AL=扇区数
CH=柱面
CL=扇区
DH=磁头
DL=80H~0FFH:硬盘
ES:BX=缓冲区的地址
出口参数: CF=0 -- 操作成功,AH=00H,AL=传输的扇区数,否则,AH=状态代码,参见功能号01H中的说明
(12)、功能0BH
功能描述: 写长扇区,每个扇区随带四个字节的ECC编码
入口参数: AH=0BH
AL=扇区数
CH=柱面
CL=扇区
DH=磁头
DL=80H~0FFH:硬盘
ES:BX=缓冲区的地址
出口参数: CF=0 -- 操作成功,AH=00H,AL=传输的扇区数,否则,AH=状态代码,参见功能号01H中的说明
(13)、功能0CH
功能描述: 查寻
入口参数: AH=0CH
CH=柱面的低8位
CL(7-6位)=柱面的高2位
DH=磁头
DL=80H~0FFH:硬盘
出口参数: CF=0 -- 操作成功,AH=00H,否则,AH=状态代码,参见功能号01H中的说明
(14)、功能0DH
功能描述: 硬盘系统复位
入口参数: AH=0DH
DL=80H~0FFH:硬盘
出口参数: CF=0 -- 操作成功,AH=00H,否则,AH=状态代码,参见功能号01H中的说明
(15)、功能0EH
功能描述: 读扇区缓冲区
入口参数: AH=0EH
ES:BX=缓冲区的地址
出口参数: CF=0 -- 操作成功,否则,AH=状态代码,参见功能号01H中的说明
(16)、功能0FH
功能描述: 写扇区缓冲区
入口参数: AH=0FH
ES:BX=缓冲区的地址
出口参数: CF=0 -- 操作成功,否则,AH=状态代码,参见功能号01H中的说明
(17)、功能10H
功能描述: 读取驱动器状态
入口参数: AH=10H
DL=80H~0FFH:硬盘
出口参数: CF=0 -- 操作成功,AH=00H,否则,AH=状态代码,参见功能号01H中的说明
(18)、功能11H
功能描述: 校准驱动器
入口参数: AH=11H
DL=80H~0FFH:硬盘
出口参数: CF=0 -- 操作成功,AH=00H,否则,AH=状态代码,参见功能号01H中的说明
(19)、功能12H
功能描述: 控制器RAM诊断
入口参数: AH=12H
出口参数: CF=0 -- 操作成功,否则,AH=状态代码,参见功能号01H中的说明
(20)、功能13H
功能描述: 控制器驱动诊断
入口参数: AH=13H
出口参数: CF=0 -- 操作成功,否则,AH=状态代码,参见功能号01H中的说明
(21)、功能14H
功能描述: 控制器内部诊断
入口参数: AH=14H
出口参数: CF=0 -- 操作成功,否则,AH=状态代码,参见功能号01H中的说明
(22)、功能15H
功能描述: 读取磁盘类型
入口参数: AH=15H
DL=驱动器,00H~7FH:软盘;80H~0FFH:硬盘
出口参数: CF=1 -- 操作失败,AH=状态代码,参见功能号01H中的说明, 否则,AH =00H - 未安装驱动器
=01H - 无改变线支持的软盘驱动器
=02H - 带有改变线支持的软盘驱动器
=03H - 硬盘,CXX=512字节的扇区数
(23)、功能16H
功能描述: 读取磁盘变化状态
入口参数: AH=16H
DL=00H~7FH:软盘
出口参数: CF=0 -- 磁盘未改变,AH=00H,否则,AH=06H,参见功能号01H中的说明
(24)、功能17H
功能描述: 设置磁盘类型
入口参数: AH=17H
DL=00H~7FH:软盘 AL =00H - 未用
=01H - 360K在360K驱动器中
=02H - 360K在1.2M驱动器中
=03H - 1.2M在1.2M驱动器中
=04H - 720K在720K驱动器中
出口参数: CF=0 -- 操作成功,AH=00H,否则,AH=状态编码,参见功能号01H中的说明
(25)、功能18H
功能描述: 设置格式化媒体类型
入口参数: AH=18H
CH=柱面数
CL=每磁道的扇区数
DL=00H~7FH:软盘
出口参数: CF=0 -- 操作成功,AH=00H,ESI=介质类型参数表地址,否则,AH=状态编码,参见功能号01H中的说明
(26)、功能19H
功能描述: 磁头保护,仅在PS/2中有效,在此从略
(27)、功能1AH
功能描述: 格式化ESDI驱动器,仅在PS/2中有效,在此从略
______________________________________________________________________________
串行口服务(Serial Port Service -- INT 14H)
00H - 初始化通信口
01H - 向通信口输出字符
02H - 从通信口读入字符
03H - 读取通信口状态
04H - 扩充初始化通信口
------------------------------------------------------------------------------------------------
(1)、功能00H
功能描述: 初始化通信口
入口参数: AH=00H
DX=初始化通信口号(0=COM1,1=COM2,……)
AL=初始化参数,参数的说明如下: 波特率 奇偶位 停止位 字的位数
765 43 2 10
000 = 110 X0 = None 0 = 1 bit 10 = 7 bits
001 = 150 01 = Odd 1 = 2 bits 11 = 8 bits
010 = 300 11 = Even
011 = 600
100 = 1200
101 = 2400
110 = 4800
111 = 9600
对于PS/2,可用INT 14H之功能04H和05H来初始化其通信速率大于9600。
出口参数: AH=通信口状态,各状态位为1时的含义如下: 位7-超时
位6-传递移位寄存器为空
位5-传递保持寄存器为空
位4-发现终止 位3-发现帧错误
位2-发现奇偶错
位1-发现越界错
位0-接受数据准备好
AL=Modem状态
位7-接受单线信号诊断
位6-环指示器
位5-数据发送准备好
位4-清除数据,再发送 位3-改变在接受线上的信号诊断
位2-后边界环指示器
位1-改变“数据准备好”状态
位0-改变“清除-发送”状态
(2)、功能01H
功能描述: 向通信口输出字符
入口参数: AH=01H
AL=字符
DX=初始化通信口号(0=COM1,1=COM2,……)
出口参数: AL的值不变
AH的位7=0 -- 操作成功,通信口状态,AH的位6~0是其状态位
(3)、功能02H
功能描述: 从通信口读入字符
入口参数: AH=02H
DX=初始化通信口号(0=COM1,1=COM2,……)
出口参数: AL=接受的字符
AH的位7=0 -- 操作成功,通信口状态,AH的位6~0是其状态位
(4)、功能03H
功能描述: 读取通信口状态
入口参数: AH=03H
DX=初始化通信口号(0=COM1,1=COM2,……)
出口参数: AH=通信口状态,AL=Modem状态,参见功能号00H中的说明
(5)、功能04H
功能描述: 扩充初始化通信口,仅在PS/2中有效,在此从略
______________________________________________________________________________
杂项系统服务(Miscellaneous System Service -- INT 15H)
00H - 开盒式磁带机马达
01H - 关盒式磁带机马达
02H - 读盒式磁带机
03H - 写盒式磁带机
0FH - 格式化ESDI驱动器定期中断
21H - 读/写自检(POST)错误记录
4FH - 键盘截听
80H - 设备打开
81H - 设备关闭
82H - 进程终止
83H - 事件等待
84H - 读游戏杆
85H - 系统请求(SysReq)键
86H - 延迟
87H - 移动扩展内存块
88H - 读取扩展内存大小
89H - 进入保护模式
90H - 设备等待
91H - 设备加电自检
C0H - 读取系统环境
C1H - 读取扩展BIOS数据区地址
C2H - 鼠标图形
C3H - 设置WatcHdog超时
C4H - 可编程选项选择
------------------------------------------------------------------------------------------------
(1)、功能00H
功能描述: 开盒式磁带机马达
入口参数: AH=00H
出口参数: CF=0 -- 操作成功,否则,AH=状态(86H,若未安装盒式磁带机)
(2)、功能01H
功能描述: 关盒式磁带机马达
入口参数: AH=01H
出口参数: CF=0 -- 操作成功,否则,AH=状态(86H,若未安装盒式磁带机)
(3)、功能02H
功能描述: 读盒式磁带机
入口参数: AH=02H
CX=读入的字节数
ES:BX=存放数据的缓冲区地址
出口参数: CF=0 -- 操作成功,DX=实际读入的字节数,ES:BX指向最后一个字节的后面地址,否则,AH=状态码,其值含义如下: 01H --
CRC校验码错 80H -- 非法命令
02H -- 位信号混乱 86H -- 未安装盒式磁带机
04H -- 无发现数据
(4)、功能03H
功能描述: 写盒式磁带机
入口参数: AH=03H
CX=要写入的字节数
ES:BX=已存数据的缓冲区地址
出口参数: CF=0 -- 操作成功,CX=00H,ES:BX指向最后一个字节的后面地址,否则,AH=状态码,其值含义如下: 80H -- 非法命令
86H -- 未安装盒式磁带机
(5)、功能0FH
功能描述: 格式化ESDI驱动器定期中断,仅在PS/2中有效,在此从略
(6)、功能21H
功能描述: 读/写自检(POST)错误记录,仅在PS/2中有效,在此从略
(7)、功能4FH
功能描述: 键盘截听,仅在PS/2中有效,在此从略
(8)、功能80H
功能描述: 打开设备
入口参数: AH=80H
BX=设备号
CX=进程号
出口参数: CF=0 -- 操作成功,AH=00H,否则,AH=状态码
(9)、功能81H
功能描述: 关闭设备
入口参数: AH=81H
BX=设备号
CX=进程号
出口参数: CF=0 -- 操作成功,AH=00H,否则,AH=状态码
(10)、功能82H
功能描述: 进程终止
入口参数: AH=81H
BX=进程号
出口参数: CF=0 -- 操作成功,AH=00H,否则,AH=状态码
(11)、功能83H
功能描述: 事件等待
入口参数: AH=83H 若需要事件等待,则: AL=00H
CX:DX=千分秒
ES:BX=信号量字节的地址
否则,调用参数为 AL=01H
出口参数: 若调用时,AL=00H,操作成功 -- CF=0,否则,CF=1
(12)、功能84H
功能描述: 读游戏杆
入口参数: AH=84H
DX=00H -- 读取开关设置
=01H -- 读取阻力输入
出口参数: CF=1H -- 操作失败,否则,
DX=00H时,AL=开关设置(位7~4)
DX=01H时,AX、BX、CX和DX分别为A(x)、A(y)、B(x)和B(y)的值
(13)、功能85H
功能描述: 系统请求(SysReq)键
入口参数: AH=85H
AL=00H -- 键按下
=01H -- 键放开
出口参数: CF=0 -- 操作成功,AH=00H,否则,AH=状态码
(14)、功能86H
功能描述: 延迟
入口参数: AH=86H
CXX=千分秒
出口参数: CF=0 -- 操作成功,AH=00H
(15)、功能87H
功能描述: 从常规内存和扩展内存之间移动扩展内存块
入口参数: AH=87H
CX=移动的字数
ES:SI=GDT(Global Descriptor Table)的地址,其结构定义如下: 偏移量 存储的信息
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
出口参数: CF=0 -- 操作成功,AH=00H,否则,AH=状态码,其含义如下:
01H -- RAM奇偶错
02H -- 异常中断错
03H -- 20号线门地址失败
(16)、功能88H
功能描述: 读取扩展内存大小
入口参数: AH=88H
出口参数: AX=扩展内存字节数(以K为单位)
(17)、功能89H
功能描述: 进入保护模式,CPU从实模式进入保护模式
入口参数: AH=89H
BH=IRQ0的中断号
BL=IRQ8的中断号
ES:SI=GDT的地址(参见功能号87H)
出口参数: CF=1 -- 操作失败,AH=0FFH,否则,AH=00H,CS、DS、ES和SS都是用户定义的选择器
(18)、功能90H
功能描述: 设备等待
入口参数: AH=90H AL =驱动器类型,具体的驱动器类型定义如下:
=00H~7FH -- 串行再重用设备
=80H~0BFH -- 可重入式设备
=0C0H~0FFH -- 等待访问设备,没有自检功能
00h - 磁盘
02h - 键盘
80h - 网络
FDh - 软盘马达启动 01h - 软盘
03h - 点设备(Pointing Device)
FCh - 硬盘复位
FEh - 打印机
ES:BX=对驱动器类型80H~0FFH的请求块地址
出口参数: CF=1 -- 操作失败,否则,AH=00H
(19)、功能91H
功能描述: 设备加电自检
入口参数: AH=91H
AL=00H~7FH -- 串行再重用设备
=80H~0BFH -- 可重入式设备
出口参数: AH=00H
(20)、功能0C0H
功能描述: 读取系统环境
入口参数: AH=0C0H
出口参数: ES:BX=配置表地址,配置表的定义如下: 偏移量 含义说明
00h-01h 表的大小(字节数)
02h 系统模型
03h 系统子模型
04h BIOS版本号
05h 配置标志,其各位为1时的说明如下:
位7-DMA通道3使用
位6-存在从属8259
位5-实时时钟有效
位4-键盘截听有效
位3-等待外部事件有效
位2-扩展BIOS数据区
位1-微通道设施
位0-保留
06h-09h 保留
(21)、功能C1H
功能描述: 读取扩展BIOS数据区地址,仅在PS/2中有效,在此从略
(22)、功能C2H
功能描述: 鼠标图形,仅在PS/2中有效,在此从略
(23)、功能C3H
功能描述: 设置WatcHdog超时,仅在PS/2中有效,在此从略
(24)、功能C4H
功能描述: 可编程选项选择,仅在PS/2中有效,在此从略
______________________________________________________________________________
键盘服务(Keyboard Service -- INT 16H)
00H、10H - 从键盘读入字符
01H、11H - 读取键盘状态
02H, 12H - 读取键盘标志
03H - 设置重复率
04H - 设置键盘点击
05H - 字符及其扫描码进栈
------------------------------------------------------------------------------------------------
(1)、功能00H和10H
功能描述: 从键盘读入字符
入口参数: AH
=00H -- 读键盘
=10H -- 读扩展键盘,可根据0000:0496H单元的内容判断:扩展键盘是否有效
出口参数: AH=键盘的扫描码
AL=字符的ASCII码
(2)、功能01H和11H
功能描述: 读取键盘状态
入口参数: AH =01H -- 检查普通键盘
=11H -- 检查扩展键盘
出口参数: ZF=1 -- 无字符输入,否则,AH=键盘的扫描码,AL=ASCII码。
(3)、功能02H和12H
功能描述: 读取键盘标志
入口参数: AH =02H -- 普通键盘的移位标志
=12H -- 扩展键盘的移位标志
出口参数: AL=键盘标志(02H和12H都有效),其各位之值为1时的含义如下: 位7-INS开状态
位3-ALT键按下
位6-CAPS LOCK开状态 位2-CTRL键按下
位5-NUM LOCK开状态 位1-左SHIFT键按下
位4-SCROLL LOCK开状态 位0-右SHIFT键按下
AH=扩展键盘的标志(12H有效),其各位之值为1时的含义如下:
位7-SysReq键按下 位3-右ALT键按下
位6-CAPS LOCK键按下 位2-右CTRL键按下
位5-NUM LOCK键按下 位1-左ALT键按下
位4-SCROLL键按下 位0-左CTRL键按下
(4)、功能03H
功能描述: 设置重复率
入口参数: AH=03H 对于PC/AT和PS/2: AL=05H
BH=重复延迟
BL=重复率
对于PCjr: AL
=00H -- 装入缺省的速率和延迟
=01H -- 增加初始延迟
=02H -- 重复频率降低一半
=03H -- 增加延迟和降低一半重复频率
=04H -- 关闭键盘重复功能
出口参数: 无
(5)、功能04H
功能描述: 设置键盘点击
入口参数: AH=04H AL =00H -- 关闭键盘点击功能
=01H -- 打开键盘点击功能
出口参数: 无
(6)、功能05H
功能描述: 字符及其扫描码进栈
入口参数: AH=05H
CH=字符的描述码
CL=字符的ASCII码
出口参数: CF=1 -- 操作成功,AL=00H,否则,AL=01H
______________________________________________________________________________
并行口服务(Parallel Port Service -- INT 17H)
00H - 向打印机输出字符
01H - 初始化打印机端口
02H - 读取打印机状态
------------------------------------------------------------------------------------------------
(1)、功能00H
功能描述: 向打印机输出字符
入口参数: AH=00H
AL=输出的字符
DX=打印机号(0-LPT1,1-LPT2,2-LPT3,……)
出口参数: AH=打印机状态。其各位为1时的含义如下: 位7-打印机空闲 位3-I/O错误
位6-打印机响应 位2-保留
位5-无纸 位1-保留
位4-打印机被选 位0-打印机超时
(2)、功能01H
功能描述: 初始化打印机端口
入口参数: AH=01H
DX=打印机号(0-LPT1,1-LPT2,2-LPT3,……)
出口参数: AH=打印机状态。各位定义如下功能00H所示
(3)、功能02H
功能描述: 读取打印机状态
入口参数: AH=02H
DX=打印机号(0-LPT1,1-LPT2,2-LPT3,……)
出口参数: AH=打印机状态。各位定义如下功能00H所示
______________________________________________________________________________
时钟服务(Clock Service -- INT 1AH)
00H - 读取时钟“滴答”计数
01H - 设置时钟“滴答”计数
02H - 读取时间
03H - 设置时间
04H - 读取日期
05H - 设置日期
06H - 设置闹钟
07H - 闹钟复位
0AH - 读取天数计数
0BH - 设置天数计数
80H - 设置声音源信息
-------------------------------------------------------------------------------------------------
(1)、功能00H
功能描述: 读取时钟“滴答”计数
入口参数: AH=00H
出口参数: AL=00H -- 未过午夜,否则,表示已过午夜
CX:DX=时钟“滴答”计数
(2)、功能01H
功能描述: 设置时钟“滴答”计数
入口参数: AH=01H
CX:DX=时钟“滴答”计数
出口参数: 无
(3)、功能02H
功能描述: 读取时间
入口参数: AH=02H
出口参数:
CH=BCD码格式的小时
CL=BCD码格式的分钟
DH=BCD码格式的秒
DL=00H -- 标准时间,否则,夏令时
CF=0 -- 时钟在走,否则,时钟停止
(4)、功能03H
功能描述: 设置时间
入口参数:
AH=03H
CH=BCD码格式的小时
CL=BCD码格式的分钟
DH=BCD码格式的秒
DL=00H -- 标准时间,否则,夏令时
出口参数: 无
(5)、功能04H
功能描述: 读取日期
入口参数: AH=04H
出口参数:
CH=BCD码格式的世纪
CL=BCD码格式的年
DH=BCD码格式的月
DL=BCD码格式的日
CF=0 -- 时钟在走,否则,时钟停止
(6)、功能05H
功能描述: 设置日期
入口参数:
AH=05H
CH=BCD码格式的世纪
CL=BCD码格式的年
DH=BCD码格式的月
DL=BCD码格式的日
出口参数: 无
(7)、功能06H
功能描述: 设置闹钟
入口参数:
AH=06H
CH=BCD码格式的小时
CL=BCD码格式的分钟
DH=BCD码格式的秒
出口参数: CF=0 -- 操作成功,否则,闹钟已设置或时钟已停止
(8)、功能07H
功能描述: 闹钟复位
入口参数: AH=07H
出口参数: 无
(9)、功能0AH
功能描述: 读取天数计数,仅在PS/2有效,在此从略
(10)、功能0BH
功能描述: 设置天数计数,仅在PS/2有效,在此从略
(11)、功能80H
功能描述: 设置声音源信息
入口参数:
AH =80H
AL =声音源
=00H -- 8253可编程计时器,通道2
=01H -- 盒式磁带输入
=02H -- I/O通道上的"Audio In"
=03H -- 声音产生芯片
______________________________________________________________________________
字符功能调用类(Character-Oriented Function)
01H、07H和08H - 从标准输入设备输入字符
02H - 字符输出
03H - 辅助设备的输入
04H - 辅助设备的输出
05H - 打印输出
06H - 控制台输入/输出
09H - 显示字符串
0AH - 键盘缓冲输入(输入字符串)
0BH - 检测输入状态
0CH - 清输入缓冲区的输入功能
-------------------------------------------------------------------------------------------------
(1)、功能01H、07H和08H
功能描述:
从标准输入设备(如:键盘)读入一个字符。该中断在处理过程中将一直处于等待状态直到有字符可读为止。该输入还可被重定向,如果这样做,则无法判断文件是否已到文件尾
入口参数: AH=01H,过滤掉控制字符,并回显
=07H,不过滤掉控制字符,不回显
=08H,过滤掉控制字符,不回显
出口参数: AL=输入字符的ASCII码
(2)、功能02H
功能描述: 向标准输出设备(如:屏幕)输出一个字符。该输出还可被重定向,如果这样做,则将无法判断磁盘是否满
入口参数: AH=02H
DL=待输出字符的ASCII码
出口参数: 无
(3)、功能03H
功能描述: 从辅助设备读入一个字符,该辅助设备的缺省值为COM1
入口参数: AH=03H
出口参数: AL=读入字符的ASCII码
(4)、功能04H
功能描述: 向辅助设备输出一个字符,该辅助设备的缺省值为COM1
入口参数: AH=04H
DL=待输出字符的ASCII码
出口参数: 无
(5)、功能05H
功能描述: 向标准的输出设备输出一个字符。该缺省的输出设备为LPT1端口的打印机,除非用MODE命令来改变
入口参数: AH=05H
DL=待输出字符的ASCII码
出口参数: 无
(6)、功能06H
功能描述: 控制台(如:键盘、屏幕)输入/输出。如果输入/输出操作被重定向,那么,将无法判断文件是否已到文件尾,或磁盘已满
入口参数: AH=06H,DL=输入/输出功能选择
出口参数: 若DL=00H-FEH,则此功能为输出,DL为待输出字符的ASCII码;
若DL=0FFH,则此功能为输入,此时:若ZF=1,则无字符可读,否则,AL=读入字符的ASCII码
(7)、功能09H
功能描述: 输出一个字符串到标准输出设备上。如果输出操作被重定向,那么,将无法判断磁盘已满
入口参数: AH=09H
DS:DX=待输出字符的地址
说明:待显示的字符串以’$’作为其结束标志
出口参数: 无
(8)、功能0AH
功能描述:
从标准输入设备上读入一个字节字符串,遇到“回车键”结束输入(输入的字符在标准的输出设备上有回显)。如果该输入操作被重定向,那么,将无法判断文件是否已到文件尾
入口参数: AH=0AH
DS:DX=存放输入字符的起始地址
接受输入字符串缓冲区的定义说明:
1、第一个字节为缓冲区的最大容量,可认为是入口参数;
2、第二个字节为实际输入的字符数(不包括回车键),可看作出口参数;
3、从第三个字节开始存放实际输入的字符串;
4、字符串以回车键结束,回车符是接受的最后一个字符;
5、若输入的字符数超过缓冲区的最大容量,则多出的部分被丢弃,系统并发出响铃,直到输入“回车”键才结束输入。
例如:
BUFF 80, ?, 80 DUP(?) ;最多接受80个字符
出口参数: 无
(9)、功能0BH
功能描述: 检查标准输入设备上是否有字符可读。该输入操作可被重定向
入口参数: AH=0BH
出口参数: AL=00H -- 无字符可读;FFH -- 有字符可读
(10)、功能0CH
功能描述: 清空当前的标准输入缓冲区,再读入字符。其输入操作可被重定向
入口参数: AH=0CH
AL=01H、06H、07H、08H或0AH
出口参数: 若入口参数AL为0AH,则DS:DX=存放输入字符的起始地址,否则,出口参数AL=输入字符的ASCII码
______________________________________________________________________________
目录控制功能(Directory-Control Function)
39H - 创建目录
3AH - 删除目录
3BH - 设置当前目录
47H - 读取当前目录
-------------------------------------------------------------------------------------------------
(1)、功能39H
功能描述: 用指定的驱动器和路径创建一个新目录
入口参数: AH=39H
DS:DX=指定路径的字符串地址(以0为字符串的结束标志)
出口参数: CF=0 -- 创建成功,否则,AX=错误号(03H或05H),其含义见错误代码表
(2)、功能3AH
功能描述: 删除指定的驱动器和路径的目录
入口参数: AH=3AH
DS:DX=指定路径的字符串地址(以0为字符串的结束标志)
出口参数: CF=0 -- 删除成功,否则,AX=错误号(03H或05H),其含义见错误代码表
(3)、功能3BH
功能描述: 用指定的驱动器和路径设置为当前目录
入口参数: AH=3BH
DS:DX=指定路径的字符串地址(以0为字符串的结束标志)
出口参数: CF=0 -- 设置成功,否则,AX=错误号(03H),其含义见错误代码表
(4)、功能47H
功能描述: 取当前目录的完全路径字符串
入口参数: AH=47H
DL=驱动器号(0=缺省,1=A,…)
DS:SI=存放当前目录字符串的地址
出口参数: CF=0 -- 读取成功,否则,AX=错误号(0FH),其含义见错误代码表
(13)、功能5BH
功能描述: 创建新文件
入口参数: AH=5BH
DS:DX=路径名的地址
CX=文件属性(位可组合),其定义如下: 位0=1 只读 位4=0 保留
位1=1 隐含 位5=1 归档
位2=1 系统 位6-15=0 保留
位3=1 卷标号
出口参数: CF=0 -- 操作成功,AX=文件句柄,否则,AX=错误号(03H、04H、05H或50H),其含义见错误代码表
(14)、功能67H
功能描述: 设置文件句柄数(最多文件数)
入口参数: AH=67H
BX=句柄的数量
出口参数: CF=0 -- 操作成功,否则,AX=错误号,其含义见错误代码表
(15)、功能6CH
功能描述: 扩展的打开文件功能(打开、创建或替换文件)
入口参数: AH=6CH
AL=00H
DS:SI=路径名的地址
BX=打开方式 位2~0 000-只读 001-只写 010-可读、写
位3 保留(0)
位6~4 000-兼容 001-拒绝读写 010 -- 拒绝写
011-拒绝读 100 -- 不拒绝任何操作
位7 0-子进程继承句柄,1-子进程不继承句柄
位12~8 保留(0)
位13 致命错误处理程序,0-执行INT 24H,否则,返回错误代码给进程
位14 写入方式:0-写入缓冲区,1-直接写入文件
位15 保留(0)
CX=文件属性
位0=1 只读 位4=0 保留
位1=1 隐含 位5=1 归档
位2=1 系统 位6-15=0 保留
位3=1 卷标签
DX=打开标志 位3~0 0-打开失败,1-打开文件,2-替换文件
位7~4 0-打开失败,1-创建文件
位15~8 0-保留
出口参数: CF=1 -- 操作失败,AX=错误号,其含义见错误代码表,否则,
AX=文件句柄
CX=1 -- 文件存在,打开之
=2 -- 文件不存在,创建之
______________________________________________________________________________
文件操作功能(FCB)(File Operation Function)
0FH - 打开文件 16H -创建文件
10H - 关闭文件 17H -文件换名
11H、12H - 查找第一个或下一个文件 23H -读取文件的大小
13H - 删除文件 29H -分析文件名
-------------------------------------------------------------------------------------------------
(1)、功能0FH
功能描述: 打开文件,并使之为顺序读/写作好准备
入口参数: AH=0FH
DS:DX=文件控制块的地址
出口参数: AL=00H -- 打开成功,否则,AL=FFH(如文件找不到)
在MS-DOS操作系统中,文件控制块的字段如下表所示。 字段名 偏移量 字段含义
驱动器字 00H 1 for drive A, 2 for drive B,...
当前块字段 0CH 00H
记录大小字段 0EH 0080H
文件长度字段 10H 文件字节数
日期字段 14H 日期
时间字段 16H 时间
(2)、功能10H
功能描述: 关闭文件
入口参数: AH=10H
DS:DX=文件控制块的地址
出口参数: AL=00H -- 关闭成功,否则,AL=FFH
(3)、功能11H和12H
功能描述: 查找第一个或下一个相匹配的文件
入口参数: AH=11H -- 第一个相匹配的文件
=12H -- 下一个相匹配的文件
DS:DX=文件控制块的地址
出口参数: AL=00H -- 查找到,否则,AL=FFH
(13)、功能5BH
功能描述: 创建新文件
入口参数: AH=5BH
DS:DX=路径名的地址
CX=文件属性(位可组合),其定义如下: 位0=1 只读 位4=0 保留
位1=1 隐含 位5=1 归档
位2=1 系统 位6-15=0 保留
位3=1 卷标号
出口参数: CF=0 -- 操作成功,AX=文件句柄,否则,AX=错误号(03H、04H、05H或50H),其含义见错误代码表
(14)、功能67H
功能描述: 设置文件句柄数(最多文件数)
入口参数: AH=67H
BX=句柄的数量
出口参数: CF=0 -- 操作成功,否则,AX=错误号,其含义见错误代码表
(15)、功能6CH
功能描述: 扩展的打开文件功能(打开、创建或替换文件)
入口参数: AH=6CH
AL=00H
DS:SI=路径名的地址
BX=打开方式 位2~0 000-只读 001-只写 010-可读、写
位3 保留(0)
位6~4 000-兼容 001-拒绝读写 010 -- 拒绝写
011-拒绝读 100 -- 不拒绝任何操作
位7 0-子进程继承句柄,1-子进程不继承句柄
位12~8 保留(0)
位13 致命错误处理程序,0-执行INT 24H,否则,返回错误代码给进程
位14 写入方式:0-写入缓冲区,1-直接写入文件
位15 保留(0)
CX=文件属性
位0=1 只读 位4=0 保留
位1=1 隐含 位5=1 归档
位2=1 系统 位6-15=0 保留
位3=1 卷标签
DX=打开标志 位3~0 0-打开失败,1-打开文件,2-替换文件
位7~4 0-打开失败,1-创建文件
位15~8 0-保留
出口参数: CF=1 -- 操作失败,AX=错误号,其含义见错误代码表,否则,
AX=文件句柄
CX=1 -- 文件存在,打开之
=2 -- 文件不存在,创建之
______________________________________________________________________________
文件操作功能(FCB)(File Operation Function)
0FH - 打开文件 16H -创建文件
10H - 关闭文件 17H -文件换名
11H、12H - 查找第一个或下一个文件 23H -读取文件的大小
13H - 删除文件 29H -分析文件名
-------------------------------------------------------------------------------------------------
(1)、功能0FH
功能描述: 打开文件,并使之为顺序读/写作好准备
入口参数: AH=0FH
DS:DX=文件控制块的地址
出口参数: AL=00H -- 打开成功,否则,AL=FFH(如文件找不到)
在MS-DOS操作系统中,文件控制块的字段如下表所示。 字段名 偏移量 字段含义
驱动器字 00H 1 for drive A, 2 for drive B,...
当前块字段 0CH 00H
记录大小字段 0EH 0080H
文件长度字段 10H 文件字节数
日期字段 14H 日期
时间字段 16H 时间
(2)、功能10H
功能描述: 关闭文件
入口参数: AH=10H
DS:DX=文件控制块的地址
出口参数: AL=00H -- 关闭成功,否则,AL=FFH
(3)、功能11H和12H
功能描述: 查找第一个或下一个相匹配的文件
入口参数: AH=11H -- 第一个相匹配的文件
=12H -- 下一个相匹配的文件
DS:DX=文件控制块的地址
出口参数: AL=00H -- 查找到,否则,AL=FFH
(6)、功能5CH
功能描述: 文件区域加锁或解锁
入口参数: AH=5CH
AL=00H -- 区域加锁 01H -- 区域解锁
BX=文件句柄
CX:DX=区域偏移量
SI:DI=区域长度
DS:DX=路径名的地址
出口参数: CF=0 -- 操作成功,否则,AX=错误号(01H、06H、21H或24H),其含义见错误代码表
(7)、功能68H
功能描述: 提交文件缓冲区数据
入口参数: AH=68H
BX=文件句柄
出口参数: CF=0 -- 操作成功,否则,AX=错误号,其含义见错误代码表
______________________________________________________________________________
记录操作功能(FCB)(Record Function)
14H -顺序读 24H -设置相对记录数
15H -顺序写 27H -随机读块
21H -随机读 28H -随机写块
22H -随机写
-------------------------------------------------------------------------------------------------
(1)、功能14H
功能描述: 从文件中读出下一个顺序块,并相应增加文件的指针
入口参数: AH=14H
DS:DX=先前打开文件控制块的地址
出口参数: AL=00H -- 读取成功 01H -- 文件尾
02H -- 段缠绕 03H -- 部分记录在文件尾
(2)、功能15H
功能描述: 向文件写入下一个顺序数据块,并相应增加文件的指针
入口参数: AH=15H
DS:DX=先前打开文件控制块的地址
出口参数: AL=00H -- 写入成功 01H -- 磁盘满 02H -- 段缠绕
(3)、功能21H
功能描述: 从文件中读出当前选定的记录
入口参数: AH=21H
DS:DX=先前打开文件控制块的地址
出口参数: AL=00H -- 读取成功 01H -- 文件尾
02H -- 取消读操作 03H -- 部分记录在文件尾
(4)、功能22H
功能描述: 把内存中的数据写入在文件中当前选定的记录
入口参数: AH=22H
DS:DX=先前打开文件控制块的地址
出口参数: AL=00H-写入成功 01H-磁盘满 02H-取消写操作
(5)、功能24H
功能描述: 设置FCB中相对记录数作为被打开FCB中的记录数
入口参数: AH=24H
DS:DX=先前打开文件控制块的地址
出口参数: AL的值被破坏,其它寄存器不受影响,FCB中偏移量21H单元被修改
(6)、功能27H
功能描述: 从文件中读出若干个记录到内存中
入口参数: AH=27H
DS:DX=先前打开文件控制块的地址
出口参数: AL=00H -- 读取成功 01H -- 文件尾
02H -- 取消读操作 03H -- 部分记录在文件尾
CX=实际读出的记录数
(7)、功能28H
功能描述: 从内存向文件中写入若干个记录
入口参数: AH=28H
CX=要写入的记录数
DS:DX=先前打开文件控制块的地址
出口参数: AL=00H -- 写入成功 01H -- 磁盘满 02H -- 段缠绕
CX=实际写入的记录数
______________________________________________________________________________
内存分配功能(Memory-Allocation Function)
48H - 分配内存块
49H - 释放内存块
4AH - 重定义内存块的大小
58H - 读取/设置内存分配策略
-------------------------------------------------------------------------------------------------
(1)、功能48H
功能描述: 分配一块内存单元,并返回该块内存单元的首地址
入口参数: AH=48H
BX=需要申请的内存单元字节数
出口参数: CF=0 -- 分配成功,AX=存储单元的首地址,否则,AX=错误号(07H或08H),其含义见错误代码表,BX=还可用的最大块数
(2)、功能49H
功能描述: 释放内存单元块以便为其它程序使用
入口参数: AH=49H
ES=被申请块的段地址
出口参数: CF=0 -- 释放成功,否则,AX=错误号(07H或09H),其含义见错误代码表
(3)、功能4AH
功能描述: 根据程序的需要,动态地改变一个内存块
入口参数: AH=4AH
BX=需要一个新存储块的大小
ES=被修改块的段地址
出口参数: CF=0 -- 修改成功,否则,AX=错误号(07H、08H或09H),其含义见错误代码表,BX=可用最大块的大小
(4)、功能58H
功能描述: 读取/设置内存分配策略
入口参数: AH=58H 读取内存分配策略 AL=00H
设置内存分配策略 AL=01H
BX=内存分配策略代码:
00H-第一满足
01H-最好满足
02H-最后满足
出口参数: CF=0 -- 操作成功,AX=已选用的内存分配策略代码(含义如上说明),否则,AX=错误号(01H),其含义见错误代码表
______________________________________________________________________________
系统功能(System Function)
25H - 设置中断向量
30H - 读取MS-DOS版本号
33H - 读取/设置Break标志
34H - 读取InDOS标志的地址
35H - 读取中断向量
38H - 读取/设置国家信息
44H - IOCTL(I/O控制)
50H - 设置程序段前缀(PSP)地址
51H - 读取程序段前缀(PSP)地址
59H - 读取扩展的错误信息
5EH - 读取机器名,读取/设置打印机配置
5FH - 设备重定向
63H - 读取前导字节表
65H - 读取扩展的国家信息
66H - 读取/设置代码页
5D0AH - 设置扩展的错误信息
-------------------------------------------------------------------------------------------------
(1)、功能25H
功能描述: 设置中断向量表
入口参数: AH=中断号
DS:DX=中断处理程序的入口地址
出口参数: 无
(2)、功能30H
功能描述: 取MS-DOS操作系统的版本号
入口参数: AH=30H
出口参数: AL=0 -- V 1.0;对其它高版本有:AL=主要版本号
AH=次版本号(MS-DOS 3.1=0AH,...)
BH=OEM的序列号(Original Equipment Manufacturer)
BL:CX=24位用户序列号
(3)、功能33H
功能描述: 获得或改变操作系统中断的状态。在功能调用期间,将影响^C的检测
入口参数: AH=33H
AL=00H -- 取状态
=01H -- 设置状态,DL=00/01表示置该状态OFF/ON
出口参数: 取状态时,DL=00/01 -- 分别表示OFF/ON
说明:
1、若AL中存入其它的功能号,则返回时,AL的值为0FFH;
2、若置AL为5,则启动驱动器号返回在DL中(1-A,2-B,…)
(4)、功能34H
功能描述: 获得InDos标志的远地址,它由DOS维护表示DOS时活跃的
入口参数: AH=34H
出口参数: ES:BX=InDos标志的远地址
若该单元值为1,表示DOS功能在执行,否则,则不是。
(5)、功能35H
功能描述: 取指定中断号的入口地址
入口参数: AH=35H
AL=中断号
出口参数: ES:BX=中断处理程序的入口地址
(6)、功能38H
功能描述: 读取或设置国家信息
入口参数: AH=38H 当读取国家信息时
DS:DX=存放返回信息的地址
AL=0 -- 取当前国家信息
AL=1~0FEH -- 取国家代码小于255的国家信息
AL=0FFH -- 取代码大于等于255的国家信息,BX=国家代码
设置国家信息时
DX=0FFFFH
AL=0~0FEH -- 设置国家代码小于255的国家信息
AL=0FFH -- 置代码大于等于255的国家信息,BX=国家代码
出口参数: CF=0 -- 调用成功,BX=国家代码,否则。AX=错误代码(02H),其含义见错误代码表 说明国家信息如下所示:
字节0-1H: 日期格式:0-mdy、1-dmy、2-ymd
字节2-6H: 货币字符
字节7-8H: 数值千位分割符
字节9-0AH: 数值精度分割符
字节0B-0CH: 日期间隔符
字节0D-0EH: 时间间隔符
字节0FH: 货币格式
位0=0 -- 货币符号在前,否则,货币符号在后
位1=0 -- 货币符号和数据之间无空格,否则,二者之间有一个空格
位2=0 -- 货币符号和小数点分开,否则,货币符号代替小数点
字节10H: 货币的小数位数
字节11H: 时间格式。位0=0-12小时制,否则,24小时制
字节12~15H: Case-Map调用地址
字节16~17H: 字符串分割符
字节18~21H: 保留
(7)、功能44H
功能描述: 输入/输出控制,其子功能描述:
00H-取设备信息 01H-取设备信息
02H-从字符设备驱动器接受控制数据 03H-发送控制数据到字符设备驱动器
04H-从块设备驱动器接受控制数据 05H-发送控制数据到块设备驱动器
06H-检查输入状态 07H-检查输出状态
08H-检查块设备是否为可拆卸设备 09H-检查设备是否为远程设备
0AH-检查句柄是否为远程对象 0BH-改变共享访问入口数
0CH-字符设备的一般I/O控制信息 0DH-块设备的一般I/O控制信息
0EH-读取逻辑驱动器映射关系 0FH-设置逻辑驱动器映射关系
说明:输入/输出子功能中的00H、06H和07H仅针对文件句柄,子功能00H~ 08H不支持网络设备。
(8)、功能50H
功能描述: 设置程序段前缀(PSP)地址
入口参数: AH=50H
BX=新的PSP地址
出口参数: 无
(9)、功能51H
功能描述: 读取程序段前缀(PSP)地址
入口参数: AH=51H
出口参数: BX=PSP地址
(10)、功能59H
功能描述: 读取扩展的错误信息
入口参数: AH=59H
BX=00H
出口参数: AX=扩展的错误代码,其含义见错误代码表
BH=错误类型,其定义如下: 01h-资源短缺 02h-处于临时状态而非错误
03h-权限问题 04h-系统软件内部错误
05h-硬件失败 06h-系统软件失败,但不是活跃进程失败
07h-应用程序错 08h-文件或数据项未发现
09h-文件或数据项类型或格式错 0Ah-文件或数据项相互加锁
0Bh-驱动器中坏磁盘,磁盘中坏区域或存储问题
0Ch-其它错误
BL=建议采用的措施,其定义如下:
01h - 重试若干次后,再选"终止"或"忽略"
02h - 重试若干次(二次之间要等待)后,再选"终止"或"忽略"
03h - 从用户获取正确的信息
04h - 终止应用程序,并清除其所使用资源
05h - 立即终止程序,但没有清除其资源
06h - 忽略错误
07h - 消除错误原因,再重试
CH=错误地点,其定义如下:
01h - 不知道
02h - 块设备(磁盘或磁盘模拟器)
03h - 网络
04h - 串行设备
05h - 内存
ES:DI=插入磁盘标签的字符串,若AX=0022h(非法改变磁盘)
(11)、功能5EH
功能描述: 读取机器名,读取/设置打印机配置 子功能号功能描述
00h 读取机器名
02h 设置打印机安装字符串
03h 读取打印机安装字符串
①、子功能1
入口参数: AH=5EH
AL=00H
DS:DX=接受字符串缓冲区的地址
出口参数: CF=1 -- 操作失败,AX=错误号(01H),其含义见错误代码表,否则,
CH=00H -- 机器名未定义,否则,机器名已定义
CL=NetBIOS名称号(当CH≠00H时)
DS:DX=标识符地址(当CH≠00H时)
②、子功能2
入口参数: AH=5EH
AL=02H
BX=重定向列表索引
CX=安装字符串的长度
DS:SI=安装字符串的地址
出口参数: CF=0 -- 操作成功,否则,AX=错误号(01H),其含义见错误代码表
③、子功能3
入口参数: AH=5EH
AL=03H
BX=重定向列表索引
ES:DI=接受字符串缓冲区的地址
出口参数: CF=0 -- 操作成功,CX=接受字符串的长度,否则,AX=错误号(01H),其含义见错误代码表
(12)、功能5FH
功能描述: 设备重定向 子功能号功能描述
02h 读取重定向列表索引
03h 重定向设备
①、子功能1
入口参数: AH=5FH
AL=02H
BX=重定向列表索引
DS:SI=接受本地设备名的16字节存储区地址
ES:DI=接受网络名的128字节存储区地址
出口参数: CF=1 -- 操作失败,AX=错误号(01H或12H),其含义见错误代码表,否则,BH位0=0H -- 设备合法,否则,设备非法
BL=设备类型 -- 03H:打印机,04H:驱动器
CX=存储参数值
DX=被破坏
BP=被破坏
DS:SI=存放本地设备名的地址
ES:DI=存放网络名的地址
②、子功能2
入口参数: AH=5FH
AL=03H
BL=设备类型 -- 03H:打印机,04H:驱动器
CX=调用者保存的参数
DS:SI=本地设备名的16字节存储区地址
ES:DI=网络名的128字节存储区地址,紧跟其后是密码
出口参数: CF=0 -- 操作成功,否则,AX=错误号(01H、03H、05H、08H、0FH或12H),其含义见错误代码表
(13)、功能63H
功能描述: 读取前导字节表
入口参数: AH=63H AL =子功能
=00H-读取系统前导字节表地址
=01H-设置/清除临时控制台标志(DL=00H/01H-清除/设置标志)
=02H-读取临时控制台标志值
出口参数: BX=1 -- 操作失败,AX=错误号(01H),其含义见错误代码表,否则,调用时,
若AL=00H,则,DS:SI=系统前导字节表地址;
若AL=02H,则,DL=临时控制台标志值
(14)、功能65H
功能描述: 读取扩展的国家信息
入口参数: AH=65H
BX=代码页(-1=活跃的CON设备)
CX=接受信息的缓冲区大小
DX=国家标识(-1=缺省)
ES:DI=接受信息的缓冲区地址 AL =子功能
=01H -- 读取一般的国家信息
=02H -- 读取指向大写字母表的指针
=04H -- 读取指向文件名大写字母表的指针
=06H -- 读取指向校对表的指针
=07H -- 读取指向DBCS向量的指针
出口参数: CF=0 -- 操作成功,需要的数据存入调用的缓冲区,否则,AX=错误号(02H),其含义见错误代码表
(15)、功能66H
功能描述: 读取/设置代码页
入口参数: AH=66H
AL=子功能号:01H -- 读取代码页,02H -- 选择代码页
BX=选择的代码页(当AL=02H)
出口参数: CF=0 --
操作成功,当调用子功能01H时,BX=活跃的代码页,DX=缺省的代码页,否则,AX=错误号(02H或65H),其含义见错误代码表
(16)、功能5D0AH
功能描述: 设置扩展的错误信息
入口参数: AX=5D0AH
DS:DX=扩展错误结构的地址,该结构的说明如下: EXTEND_ERR STRUCT
RAx WORD ? ;AX
RBx WORD ? ;BX
RCx WORD ? ; CX
RDx WORD ? ; DX
RSi WORD ? ; SI
RDi WORD ? ; DI
RDs WORD ? ; DS
REs WORD ? ; ES
Pad WORD 3 DUP(0)
EXTEND_ERR ENDS
出口参数: 无
______________________________________________________________________________
进程控制功能(Process-Control Function)
00H - 终止进程
26H - 创建新的程序段前缀(PSP)
31H - 终止并驻留
4BH - 执行程序(EXEC)
4CH - 带返回码方式的终止进程
4DH - 读取返回代码
62H - 读取PSP地址
-------------------------------------------------------------------------------------------------
(1)、功能00H
功能描述: 终止进程。这是程序可以使用的终止进程的方法之一
入口参数: AH=00H
CS=代码段地址
出口参数: 无
(2)、功能26H
功能描述: 把当前正在执行程序的程序段前缀(PSP)拷贝到内存中的指定地址中,并可改变其为其它程序所使用
入口参数: AH=26H
DX=新程序段前缀的段地址
出口参数: 无
(3)、功能31H
功能描述: 终止程序的运行,传递一个返回代码给其父进程,但该程序部分或全部驻留在内存中
入口参数: AH=31H
AL=返回代码号
DX=驻留在内存中的字节数
出口参数: 无
(4)、功能4BH
功能描述: 执行程序(EXEC)
入口参数: AH=4BH
ES:BX=参数块的地址
DS:DX=程序的入口地址
AL=00H -- 装入并执行程序,03H -- 以覆盖的形式装入
出口参数: CF=0 --
操作成功,除CS和IP之外,其它寄存器的值都被破坏,否则,AX=错误号(01H、02H、03H、05H、08H、0AH或0BH),其含义见错误代码表
(5)、功能4CH
功能描述: 终止程序的执行,并可返回一个代码
入口参数: AH=4CH
AL=返回的代码
出口参数: 无
(6)、功能4DH
功能描述: 父进程获取子进程的返回代码
入口参数: AH=4DH
出口参数: AH=00H -- 用中断20H、中断21H的功能0或4C正常终止
=01H -- 用户按^C终止
=02H -- 因致命错误而终止
=03H -- 用中断21H的功能31H,或中断27H终止
AL=子进程的返回码:00H -- 子进程由中断20H、中断21H的功能0或4C终止
(7)、功能62H
功能描述: 读取PSP地址
入口参数: AH=62H
出口参数: BX=PSP的偏移量
______________________________________________________________________________
时间和日期功能(Time and Date Function)
2AH - 读取日期
2BH - 设置日期
2CH - 读取时间
2DH - 设置时间
-------------------------------------------------------------------------------------------------
(1)、功能2AH
功能描述: 取系统日期
入口参数: AH=2AH
出口参数: CX=年(1980~2099),DH=月(1~12),DL=日(1~31)
AL=星期几(0=Sunday,1=Monday,...)
(2)、功能2BH
功能描述: 置系统日期
入口参数: AH=2BH
CX=年(1980~2099),DH=月(1~12),DL=日(1~31)
出口参数: AL=00H -- 设置成功,0FFH -- 设置失败
(3)、功能2CH
功能描述: 取系统时间
入口参数: AH=2CH
出口参数: CH=时(0~23),CL=分(0~59),DL=秒(0~59),AL=百分秒(0~99)
(4)、功能2DH
功能描述: 置系统时间
入口参数: AH=2DH
CH=时(0~23),CL=分(0~59),DL=秒(0~59),AL=百分秒(0~99)
出口参数: 出口参数:AL=00H -- 设置成功,0FFH -- 设置失败
______________________________________________________________________________
鼠标功能中断INT33H
00H - 初始化鼠标
01H - 显示鼠标指针
02H - 隐藏鼠标指针
03H - 读取鼠标位置及其按钮状态
04H - 设置鼠标指针位置
05H - 读取鼠标按键信息
06H - 读取鼠标按钮释放信息
07H - 设置鼠标水平边界
08H - 设置鼠标垂直边界
09H - 设置图形鼠标形状
0AH - 设置本文鼠标形状
0BH - 读取鼠标移动计数
0CH - 为鼠标事件设置处理程序
0DH - 允许光笔仿真
0EH - 关闭光笔仿真
0FH - 设置鼠标计数与象素比
10H - 设置鼠标指针隐藏区域
13H - 设置倍速的阈值
14H - 替换鼠标事件中断
15H - 读取鼠标驱动器状态的缓冲区大小
16H - 存储鼠标驱动器状态
17H - 重装鼠标驱动器状态
18H - 为鼠标事件设置替换处理程序
19H - 读取替换处理程序的地址
1AH - 设置鼠标的灵敏度
1BH - 读取鼠标的灵敏度
1CH - 设置鼠标中断速率
1DH - 为鼠标指针选择显示页
1EH - 读取鼠标指针的显示页
1FH - 禁止鼠标驱动程序
20H - 启动鼠标驱动程序
21H - 鼠标驱动程序复位
22H - 设置鼠标驱动程序信息语言
23H - 读取语种
24H - 读取鼠标信息
25H - 读取鼠标驱动程序信息
26H - 读取最大有效坐标
-------------------------------------------------------------------------------------------------
(1)、功能00H
功能描述: 初始化鼠标,该操作只需要执行一次
入口参数: AX=00H
出口参数: AX=0000H -- 不支持鼠标功能,FFFFH -- 支持鼠标功能
BX=鼠标按钮个数(在支持鼠标功能时)
在支持鼠标功能的情况下,鼠标还被设置如下参数: 1、 鼠标指针放在屏幕中央
2、 如果当前鼠标指针是显示的,则操作后,鼠标指针被隐藏
3、 鼠标指针的显示页为0
4、 根据屏幕的显示模式显示鼠标指针:文本-反向显示矩形块,图形-尖头形状
5、 水平象素比=8:8,垂直象素比=16:8
6、 设置水平和垂直的显示边界为当前显示模式的最大边界
7、 允许光笔仿真
8、 双速门槛值=64
(2)、功能01H
功能描述: 显示鼠标指针,通常在鼠标初始化后,用此功能显示其指针
入口参数: AX=01H
出口参数: 无
(3)、功能02H
功能描述: 隐藏鼠标指针,一般在程序结束时,调用此功能
入口参数: AX=02H
出口参数: 无
(4)、功能03H
功能描述: 读取鼠标位置及其按钮状态
入口参数: AX=03H
出口参数: BX=按键状态: 位0=1 -- 按下左键
位1=1 -- 按下右键
位2=1 -- 按下中键
其它位 -- 保留,内部使用
CX=水平位置
DX=垂直位置
(5)、功能04H
功能描述: 设置鼠标指针位置
入口参数: AX=04H,CX=水平位置,DX=垂直位置
出口参数: 无
(6)、功能05H
功能描述: 读取鼠标按键信息
入口参数: AX=05H,BX=指定的按键:0-左键,1-右键,2-中键
出口参数: AX=按键状态,参见功能3H中BX的说明
BX=按键次数
CX=水平位置(最后按键时)
DX=垂直位置(最后按键时)
(7)、功能06H
功能描述: 读取鼠标按钮释放信息
入口参数: AX=06H,BX=指定的按键:0-左键,1-右键,2-中键
出口参数: AX=按键状态,参见功能3H中BX的说明
BX=释放的次数
CX=水平位置(最后释放时)
DX=垂直位置(最后释放时)
(8)、功能07H
功能描述: 设置鼠标水平边界
入口参数: AX=07H
CX=最小水平位置
DX=最大水平位置
出口参数: 无,鼠标有可能因新区域变小而自动移进新区域内
(9)、功能08H
功能描述: 设置鼠标垂直边界
入口参数: AX=08H
CX=最小垂直位置
DX=最大垂直位置
出口参数: 无,鼠标有可能因新区域变小而自动移进新区域内
(10)、功能09H
功能描述: 设置图形鼠标形状
入口参数: AX=09H
BX=指针的水平位置
CX=指针的垂直位置
ES:DX=16×16位光标的映象地址 参数说明: (BX,CX)是鼠标的指针在16×16点阵中的位置,(0,0)是左上角;
ES:DX指向的存储单元内存放16×16点阵的位映象隐码,紧跟其后的是16×16点阵的光标掩码。
鼠标指针的显示方法: 位映象隐码“逻辑与”上屏幕显示区的内容,然后再用光标掩码内容“异或”前面运算的结果。
出口参数: 无
(11)、功能0AH
功能描述: 设置本文鼠标形状
入口参数: AX=0AH
BX=光标类型: 0 - CX和DX的各位含义如下: 位7~0 鼠标指针符号
位10~8 字符前景色
位11 亮度
位14~12 字符背景色
位15 闪烁
1 - CX=光标的起始扫描线
DX=光标的结束扫描线
出口参数: 无
(12)、功能0BH
功能描述: 读取鼠标移动计数
入口参数: AX=0BH
出口参数: CX=水平移动距离:正数 -- 向右移,负数 -- 向左移
DX=垂直移动距离:正数 -- 向下移,负数 -- 向上移
(13)、功能0CH
功能描述: 为鼠标事件设置处理程序
入口参数: AX=0CH
CX=中断掩码 位0=1 -- 鼠标指针位置发送变化
位1=1 -- 按下左按钮
位2=1 -- 释放左按钮
位3=1 -- 按下右按钮
位4=1 -- 释放右按钮
位5=1 -- 按下中间按钮
位6=1 -- 释放中间按钮
位7~15=0 -- 保留
ES:DX=中断处理程序的地址
在进入中断处理程序时,有关寄存器的值含义:
AX=中断掩码
BX=按键状态
CX=鼠标指针的水平位置
DX=鼠标指针的垂直位置
SI=水平位置的变化量
DI=垂直位置的变化量
出口参数: 无
(14)、功能0DH
功能描述: 允许光笔仿真
入口参数: AX=0DH
出口参数: 无
(15)、功能0EH
功能描述: 关闭光笔仿真
入口参数: AX=0EH
出口参数: 无
(16)、功能0FH
功能描述: 设置鼠标计数与象素比
入口参数: AX=0FH
CX=水平比例
DX=垂直比例
出口参数: 无
(17)、功能10H
功能描述: 设置鼠标指针隐藏区域
入口参数: AX=10H
CX=左上角X坐标
DX=左上角Y坐标
SI=右下角X坐标
DI=右下角Y坐标
出口参数: 无
(18)、功能13H
功能描述: 设置倍速的阈值,其缺省值为64
入口参数: AX=13H
DX=阀值
出口参数: 无
(19)、功能14H
功能描述: 替换鼠标事件中断
入口参数: AX=14H
CX=中断掩码
ES:DX=中断处理程序的地址
出口参数: CX=旧的中断掩码
ES:DX=旧的中断处理程序地址
(20)、功能15H
功能描述: 读取鼠标驱动器状态的缓冲区大小
入口参数: AX=15H
出口参数: BX=存放鼠标驱动器状态所需缓冲区的大小
(21)、功能16H
功能描述: 存储鼠标驱动器状态
入口参数: AX=16H
ES:DX=存储鼠标驱动器状态的地址
出口参数: 无
(22)、功能17H
功能描述: 重装鼠标驱动器状态
入口参数: AX=17H
ES:DX=鼠标驱动器状态的地址
出口参数: 无
(23)、功能18H
功能描述: 为鼠标事件设置可选的处理程序
入口参数: AX=18H
CX=替换中断掩码
ES:DX=替换中断处理程序的地址
CF=0
出口参数: 无
(24)、功能19H
功能描述: 读取替换处理程序的地址
入口参数: AX=19H
CX=替换中断掩码
出口参数: 若AX=-1 -- 不成功,否则,ES:DX=中断处理程序的地址
(25)、功能1AH
功能描述: 设置鼠标的灵敏度,其取值1~100
入口参数: AX=1AH
BX=水平灵敏度(每8个象素鼠标需要移动的数量,一般为8)
CX=垂直灵敏度(每8个象素鼠标需要移动的数量,一般为16)
DX=倍速阀值
出口参数: 无
(26)、功能1BH
功能描述: 读取鼠标的灵敏度
入口参数: AX=1BH
出口参数: BX=水平灵敏度
CX=垂直灵敏度
DX=倍速阀值
(27)、功能1CH
功能描述: 设置鼠标中断速率
入口参数: AX=1CH
BX=每秒钟中断的次数:0-关中断,1-30/S,2-50/S,3-100/S,4-200/S
出口参数: 无
(28)、功能1DH
功能描述: 为鼠标指针选择显示页
入口参数: AX=1DH
BX=显示页
出口参数: 无
(29)、功能1EH
功能描述: 读取鼠标指针的显示页
入口参数: AX=1EH
出口参数: BX=显示页
(30)、功能1FH
功能描述: 禁止鼠标驱动程序
入口参数: AX=1FH
出口参数: 若AX=-1 -- 不成功,否则,ES:BX=鼠标驱动程序的地址
(31)、功能20H
功能描述: 启动鼠标驱动程序
入口参数: AX=20H
出口参数: 无
(32)、功能21H
功能描述: 鼠标驱动程序复位
入口参数: AX=21H
出口参数: 若AX=-1 -- 不成功,否则,BX=2
(33)、功能22H
功能描述: 设置鼠标驱动程序信息语言
入口参数: AX=22H
BX=语言代码:0-英语,1-法语,2-荷兰语,3-德语,4-瑞典语,5-芬兰语,6-西班牙语,7-葡萄牙语,8-意大利语
出口参数: 无
(34)、功能23H
功能描述: 读取语种
入口参数: AX=23H
出口参数: BX=语言代码
(35)、功能24H
功能描述: 读取鼠标信息
入口参数: AX=24H
出口参数: BH=主版本号,BL=辅版本号
CL=中断请求号
CH=鼠标类型:1-Bus Mouse,2-Serial Mouse,3-InPort Mouse,4-PS/2 Mouse,5-HP Mouse
(36)、功能25H
功能描述: 读取鼠标驱动程序信息
入口参数: AX=25H
出口参数: AX=鼠标驱动程序信息: 位15 -- 0: 驱动程序是.SYS文件,否则,为.COM文件
位14 -- 0: 不完全鼠标显示驱动程序,否则,为完全的
位13-12 -- 00: 软件文本光标
01: 硬件文本光标
1X: 图形光标
(37)、功能26H
功能描述: 读取最大有效坐标
入口参数: AX=26H
出口参数: BX=鼠标驱动程序状态
CX=最大水平坐标
DX=最大垂直坐标
______________________________________________________________________________
其它DOS中断
INT 20H - 终止程序运行
INT 22H - 终止处理程序的地址
INT 23H - Ctrl+C处理程序
INT 24H - 致命错误处理程序
INT 25H - 读磁盘扇区(忽略逻辑结构)
INT 26H - 写磁盘扇区(忽略逻辑结构)
INT 27H - 终止,并驻留在内存
INT 28H - DOS空闲
INT 2FH - 多重中断服务
-------------------------------------------------------------------------------------------------
(1)、中断INT 20H
功能描述: 终止当前正在运行的程序,它是几种终止程序运行方法之一
入口参数: CS=PSP的段地址
出口参数: 无
(2)、中断INT 22H
功能描述: 终止处理程序的地址,该地址在程序装入内存运行前被放入PSP的0AH~0DH的单元内。该中断指令从不直接书写在程序之中
(3)、中断INT 23H
功能描述: Ctrl+C处理程序。该中断指令从不直接书写在程序之中
(4)、中断INT 24H
功能描述: 致命错误处理程序。该中断指令从不直接书写在程序之中
(5)、中断INT 25H
功能描述: 绝对读磁盘,直接从逻辑设备中读出数据到内存单元中
入口参数: AL=驱动器号(0=A、1=B、……) 分区容量≤32M,有:
CX=读出的扇区数
DX=起始扇区数
DS:BX=存放数据缓冲区的地址
否则,有:
CX=-1
DS:BX=参数块缓冲区的地址,该参数块的结构如下: 字节 描述
00~03H 32位扇区数
04~05H 将被读出的扇区数
06~07H 存放数据的缓冲区的偏移量
08~09H 存放数据的缓冲区的段地址
出口参数: CF=0--操作成功,否则,AX=错误号,其含义见下错误代码表 错误代码 错误含义
80H 附件响应失败
40H 定位操作失败
20H 设备控制器失败
10H 数据错(错误的CRC)
08H DMA失败
04H 需要的扇区未发现
02H 错误的地址标志
01H 错误命令
(6)、INT 26H
功能描述: 绝对写磁盘,直接把内存单元中的内容写入逻辑设备
入口参数: 与前面的INT 25H相一致
出口参数: 与前面的INT 25H相一致
(7)、INT 27H
功能描述: 终止,并驻留在内存
入口参数: CS=PSP的段值
DX=被保护程序最后一个字节的偏移量再加1
出口参数: 无
(8)、INT 28H
功能描述: DOS空闲中断
入口参数: 无
出口参数: 无
(9)、INT 2FH
功能描述: 多重中断服务,允许多个驻留程序通过单个中断与其它进程通信。
入口参数: AH=标识号,AL=功能号,功能号及其含义如下: 功能号 功能描述
01H 假脱机打印
06H 驻留ASSIGN命令
10H 驻留SHARE命令
B7H 驻留APPEND命令
出口参数: 若入口AL为0,则出口AL=0FFH,否则,其值取决于处理程序