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 10H - 显示器
INT 11H - 阅读设备配置
INT 12H - 读取常规内存大小(返回值)AX内存容量,以K为单位)
INT 16H - 键盘服务(Keyboard Service)
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 -- 光笔未按/未触发h -- 光笔已按/已触发
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
####################################################################
6、并行口服务(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 -- 标准时间,否则,夏令时
出口参数: 无
9楼
(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 -- 声音产生芯片
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
1、字符功能调用类(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码
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
2、目录控制功能(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 -- 文件不存在,创建之
-------------------------------------------------------------------------------------------------
5、文件操作功能(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 -- 文件不存在,创建之
-------------------------------------------------------------------------------------------------
5、文件操作功能(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=错误号,其含义见错误代码表
-------------------------------------------------------------------------------------------------
7、记录操作功能(FCB)(Record Function)
14H -顺序读 24H -设置相对记录数
15H -顺序写 27H -随机读块
21H -随机读 28H -随机写块
22H -随机写
(1)、功能14H
功能描述: 从文件中读出下一个顺序块,并相应增加文件的指针
入口参数: AH=14H
DS:DX=先前打开文件控制块的地址
出口参数: AL=00H -- 读取成功 01H -- 文件尾
02H -- 段缠绕 03H -- 部分记录在文件尾
(2)、功能15H
功能描述: 向文件写入下一个顺序数据块,并