1、BIOS和DOS中断 BIOS和DOS中断 1 DOS中断: 2 1、字符功能调用类(Character-Oriented Function) 2 2、目录控制功能(Directory-Control Function) 4 3、磁盘管理功能(Disk-Management Function) 4 4、文件操作功能(File Operation Function) 6 5、文件操作功能(FCB)(File Operation Function) 9 6、记录操作功能(Record Function) 11 7、记录操作功能(FCB)(Record Function)
2、12 8、内存分配功能(Memory-Allocation Function) 14 9、系统功能(System Function) 14 10、进程控制功能(Process-Control Function) 20 11、时间和日期功能(Time and Date Function) 21 12、鼠标功能中断INT 33H 22 13、其它DOS中断 28 BIOS中断: 30 1、显示服务(Video Service——INT 10H) 30 2、直接磁盘服务(Direct Disk Service——INT 13H) 34 3、串行口服务(Serial Port Se
3、rvice——INT 14H) 40 4、杂项系统服务(Miscellaneous System Service——INT 15H) 41 5、键盘服务(Keyboard Service——INT 16H) 45 6、并行口服务(Parallel Port Service——INT 17H) 46 7、时钟服务(Clock Service——INT 1AH) 47 8、直接系统服务(Direct System Service) 49 DOS中断: 1、字符功能调用类(Character-Oriented Function) 01H、07H和08H —从标准输入设备输入字符
4、 02H —字符输出 03H —辅助设备的输入 04H —辅助设备的输出 05H —打印输出 06H —控制台输入/输出 09H —显示字符串 0AH — 键盘缓冲输入 0BH —检测输入状态 0CH —清输入缓冲区的输入功能 (1)、功能01H、07H和08H 功能描述:从标准输入设备(如:键盘)读入一个字符。该中断在处理过程中将一直处于等待状态直到有字符可读为止。该输入还可被重定向,如果这样做,则无法判断文件是否已到文件尾 入口参数:AH=01H,过滤掉控制字符,并回显 =07H,不过滤掉控制字符,不回显 =08H,过滤掉控制字符,不回显 出口参数:AL=
5、输入字符的ASCII码 (2)、功能02H 功能描述:向标准输出设备(如:屏幕)输出一个字符。该输出还可被重定向,如果这样做,则将无法判断磁盘是否满 入口参数:AH=02H DL=待输出字符的ASCII码 出口参数:无 (3)、功能03H 功能描述:从辅助设备读入一个字符,该辅助设备的缺省值为COM1 入口参数:AH=03H 出口参数:AL=读入字符的ASCII码 (4)、功能04H 功能描述:向辅助设备输出一个字符,该辅助设备的缺省值为COM1 入口参数:AH=04H DL=待输出字符的ASCII码 出口参数:无 (5)、功能05H 功能描述:向标准的输出设备
6、输出一个字符。该缺省的输出设备为LPT1端口的打印机,除非用MODE命令来改变 入口参数:AH=05H DL=待输出字符的ASCII码 出口参数:无 (6)、功能06H 功能描述:控制台(如:键盘、屏幕)输入/输出。如果输入/输出操作被重定向,那么,将无法判断文件是否已到文件尾,或磁盘已满 入口参数:AH=06H,DL=输入/输出功能选择 出口参数:若DL=00H-FEH,则此功能为输出,DL为待输出字符的ASCII码; 若DL=0FFH,则此功能为输入,此时:若ZF=1,则无字符可读,否则,AL=读入字符的ASCII码 (7)、功能09H 功能描述:输出一个字符串到标准输
7、出设备上。如果输出操作被重定向,那么,将无法判断磁盘已满 入口参数:AH=09H DS:DX=待输出字符的地址 说明:待显示的字符串以’$’作为其结束标志 出口参数:无 (8)、功能0AH 功能描述:从标准输入设备上读入一个字节字符串,遇到“回车键”结束输入(输入的字符在标准的输出设备上有回显)。如果该输入操作被重定向,那么,将无法判断文件是否已到文件尾 入口参数:AH=0AH DS:DX=存放输入字符的起始地址 接受输入字符串缓冲区的定义说明: 1、第一个字节为缓冲区的最大容量,可认为是入口参数; 2、第二个字节为实际输入的字符数(不包括回车键),可看作出口参数
8、 3、从第三个字节开始存放实际输入的字符串; 4、字符串以回车键结束,回车符是接受的最后一个字符; 5、若输入的字符数超过缓冲区的最大容量,则多出的部分被丢弃,系统并发出响铃,直到输入“回车”键才结束输入。 例如: BUFF 80, ?, 80 DUP(?) ;最多接受80个字符 出口参数:无 (9)、功能0BH 功能描述:检查标准输入设备上是否有字符可读。该输入操作可被重定向 入口参数:AH=0BH 出口参数:AL=00H——无字符可读;FFH——有字符可读 (10)、功能0CH 功能描述:清空当前的标准输入缓冲区,再读入字符。其输入操作可被重
9、定向 入口参数: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),
10、其含义见错误代码表 (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
11、=驱动器号(0=缺省,1=A,…) DS:SI=存放当前目录字符串的地址 出口参数:CF=0——读取成功,否则,AX=错误号(0FH),其含义见错误代码表 3、磁盘管理功能(Disk-Management Function) 0DH —磁盘复位 2EH —设置校验标志 0EH —选择磁盘36H —读取驱动器分配信息 19H —读取当前驱动器54H —读取校验标志 1BH, 1CH —读取驱动器数据 (1)、功能0DH 功能描述:清空当前的文件缓冲区,但在MS-DOS内,暂时写入缓冲区的数据将写入磁盘 入口参数:AH=0DH 出口参数:无 (2)、功能0EH 功能描述
12、指定当前驱动器 入口参数:AH=0EH DL=驱动器号(0=A,1=B,...) 出口参数:AL=系统中当前的驱动器号 (3)、功能19H 功能描述:取当前缺省驱动器号 入口参数:AH=19H 出口参数:AL=驱动器号(0=A,1=B,...) (4)、功能1BH和1CH 功能描述:获得驱动器的分配信息 入口参数:AH=1BH——为缺省驱动器 AH=1CH——为任意驱动器,DL=驱动器号(0=缺省,1=A,...) 出口参数:AL=0FFH——失败,否则, AL=每簇的扇区数 DS:BX=ID字节的地址 CX=物理扇区的大小(字节数) DX=驱
13、动器的簇数 (5)、功能2EH 功能描述:设置/清除操作系统自动读取检验标志 入口参数:AH=2EH DL=00H AL=00H——清除该标志,01H——设置该标志 出口参数:无 (6)、功能36H 功能描述:取选定驱动器的信息 入口参数:AH=36H DL=驱动器号(0-缺省,1=A,2=B,…) 出口参数:若功能调用失败,AX=0FFFFH,否则, AX=每簇的扇区数 BX=可用的簇数 CX=物理扇区的大小(字节数) DX=驱动器中的簇数 (7)、功能54H 功能描述:读取校验标志 入口参数:AH=54H 出口参数:AL=当前检验标志值
14、00H—关检验,01H—开检验 4、文件操作功能(File Operation Function) 3CH —创建文件 3DH —打开文件 3EH —关闭文件 41H —删除文件 43H —读取/设置文件属性 45H —复制文件句柄 46H —重定义文件句柄 4EH —查找到第一个文件 4FH —查找下一个文件 56H — 文件换名 57H —读取/设置文件的日期和时间 5AH —创建临时文件 5BH —创建新文件 67H —设置文件句柄数(最多文件数) 6CH —扩展的打开文件功能(打开、创建或替换文件) (1)、功能3CH 功能描述:用指定的文件名创建
15、一个新文件。如果指定的文件已存在,则设置其长度为0。创建后,该文件是打开的,并返回其句柄 入口参数:AH=3CH DS:DX=指定文件名字符串的地址(以0为字符串的结束标志) CX=文件属性(这些标志位可以组合) 位0=1——只读 位2=1——系统 位5=1——归档位1=1——隐含 位3=1——卷标号 其它位保留不用,并置为0 出口参数:CF=0——创建成功,AX=文件句柄,否则,AX=错误号(03H、04H或05H),其含义见错误代码表 (2)、功能3DH 功能描述:打开指定的驱动器、路径和文件名,并返回其文件句柄 入口参数:AH=3DH DS:DX=表明文件的字符串
16、以0为字符串的结束标志) AL为打开方式: 位0~2000—只读方式 001—写方式 010—读/写方式 位3保留,其值为0 位4~6共享模式 000—兼容模式001—不共享010—拒绝写 011—拒绝读100—不拒绝任何操作 位7继承标志——0/1:子进程继承或不继承句柄 出口参数:CF=0——打开成功,AX=文件句柄,否则,AX=错误号(02H、03H、04H、05H或0CH),其含义见错误代码表 (3)、功能3EH 功能描述:关闭指定句柄的文件 入口参数:AH=3EH BX=文件句柄 出口参数:CF=0——关闭成功,否则,AX=错误号(06H),其含义见错误代
17、码表 (4)、功能41H 功能描述:删除指定的文件 入口参数:AH=41H DS:DX=文件名字符串的地址 出口参数:CF=0——删除成功,否则,AX=错误号(02H、03H或05H),其含义见错误代码表 (5)、功能43H 功能描述:读取或设置指定文件的属性 入口参数:AH=43H BX=文件句柄 DS:DX=文件名字符串的地址 AL=00H/01H——读取/设置文件属性 CX=文件属性: 位0=1——只读位1=1——隐含 位2=1——系统位3=1——卷标号 位5=1——归档其它位保留不用,并置为0 出口参数:CF=0——关闭成功,CX=文件属性,否则,AX=错
18、误号(01H、02H、03H或05H),其含义见错误代码表 (6)、功能45H 功能描述:复制当前打开设备或文件的句柄,该句柄对应同样设备或文件的相同位置 入口参数:AH=45H BX=待复制的文件句柄 出口参数:CF=0——复制成功,AX=新句柄,否则,AX=错误号(04H或06H),其含义见错误代码表 (7)、功能46H 功能描述:指定二个句柄,把第二句柄指向第一个句柄,即第二个句柄被重定向 入口参数:AH=46H BX=文件或设备的句柄 CX=待重定向的文件句柄 出口参数:CF=0——重定向成功,否则,AX=错误号(04H或06H),其含义见错误代码表 (8)、功
19、能4EH 功能描述:获取第一个与给定的文件名相匹配的文件 入口参数:AH=4EH DS:DX=给定文件名的字符串 CX=搜索时使用的文件属性: 位0=1——只读 位1=1——隐含 位2=1——系统 位3=1——卷标号 位4=1——目录 位5=1——归档 其它位保留不用,并置为0 出口参数:CF=1——操作失败,AX=错误号(02H、03H或12H),其含义见错误代码表,否则,操作成功,DTA(Disk Transfer Area)按下列方式填入数据: 字节00~14H保留 字节15H匹配的文件属性 字节16~17H压缩的文件名 字节18~19H压缩的文件日期
20、字节1A~1DH文件大小 字节1E~2AH文件名字符串 (9)、功能4FH 功能描述:在中断21H的功能4EH成功使用之后,再搜索下一个文件名 入口参数:AH=4FH AL=返回的代码 出口参数:CF=1——操作失败,AX=错误号(12H),其含义见错误代码表,否则,操作成功,DTA中的数据如前面功能4EH所示 (10)、功能56H 功能描述:文件换名 入口参数:AH=56H DS:DX=当前文件名字符串地址 ES:DI=新文件名字符串地址 出口参数:CF=0——操作成功,否则,AX=错误号(02H、03H、05H、11H),其含义见错误代码表 (11)、功能57H
21、 功能描述:读取/设置文件的日期和时间 入口参数:AH=57H BX=文件句柄 读取日期和时间AL=00H 设置日期和时间AL=01H CX=时间(0F~0BH:小时,0AH~05H:分钟,04H~00H:2秒的个数) DX=日期(0F~09H:年(相对1980年),08H~05H:月,04H~00H:日) 出口参数:CF=1——操作失败,AX=错误号(01H、06H),其含义见错误代码表,否则,若是读文件信息,则,CX=时间,DX=日期 (12)、功能5AH 功能描述:创建临时文件 入口参数:AH=5AH DS:DX=路径名的地址 CX=文件属性(位可组合),其定义如下
22、 位0=1 只读位3-4=0 保留 位1=1 隐含位5=1 归档 位2=1 系统位6-15=0 保留 出口参数:CF=0——操作成功,AX=文件句柄,DS:DX=完整的路径文件地址,否则,AX=错误号(03H、04H或05H),其含义见错误代码表 (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、
23、05H或50H),其含义见错误代码表 (14)、功能67H 功能描述:设置文件句柄数(最多文件数) 入口参数:AH=67H BX=句柄的数量 出口参数:CF=0——操作成功,否则,AX=错误号,其含义见错误代码表 (15)、功能6CH 功能描述:扩展的打开文件功能(打开、创建或替换文件) 入口参数:AH=6CH AL=00H DS:SI=路径名的地址 BX=打开方式 位2~0000—只读 001—只写 010—可读、写 位3保留(0) 位6~4000—兼容 001—拒绝读写 010——拒绝写 011—拒绝读 100——不拒绝任何操作 位70—子进程继承
24、句柄,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——文
25、件存在,打开之 =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操作系统中,文件控制块的字段如下表所示。 字段名偏移量字段含义
26、 驱动器字00H1 for drive A, 2 for drive B,... 当前块字段0CH00H 记录大小字段0EH0080H 文件长度字段10H文件字节数 日期字段14H日期 时间字段16H时间 (2)、功能10H 功能描述:关闭文件 入口参数:AH=10H DS:DX=文件控制块的地址 出口参数:AL=00H——关闭成功,否则,AL=FFH (3)、功能11H和12H 功能描述:查找第一个或下一个相匹配的文件 入口参数:AH=11H——第一个相匹配的文件 =12H——下一个相匹配的文件 DS:DX=文件控制块的地址 出口参数:AL=00H——查
27、找到,否则,AL=FFH (4)、功能13H 功能描述:在指定(或缺省)的驱动器中,删除所有相匹配的文件 入口参数:AH=13H DS:DX=文件控制块的地址 出口参数:AL=00H——删除成功,否则,AL=FFH (5)、功能16H 功能描述:在当前目录中创建一个文件,其文件长度为0,并打开该文件,为随后的读/写操作作好必要的准备 入口参数:AH=16H DS:DX=未打开的文件控制块的地址 出口参数:AL=00H——创建成功,否则,AL=FFH(如:磁盘满) (6)、功能17H 功能描述:在指定的驱动器的当前目录中,把所有相匹配的文件换名 入口参数:AH=17H
28、 DS:DX=指定文件控制块的地址 出口参数:AL=00H——换名成功,否则,AL=FFH (7)、功能23H 功能描述:在当前目录中查找一个相匹配的文件。如果发现,则用其记录数来更新其文件大小 入口参数:AH=23H DS:DX=未打开的文件控制块的地址 出口参数:AL=00H——匹配成功,FCB中偏移量为21H的字段被设置为其记录数,否则,AL=0FFH (8)、功能29H 功能描述:分析一个字符串(文件名)置入FCB表中的不同字段 入口参数:AH=29H CX=要写入的记录数 DS:SI=字符串段的地址 ES:DI=FCB的地址 AL=分析的控制标志位 位3=1
29、——若字符串中有文件后缀,则FCB中的文件后缀将改变 =0——若后缀忽略修改,或若分析后无后缀,则FCB中后缀字段被置为“空” 位2=1——若字符串中有文件名,则FCB中的文件名将改变 =0——若文件名忽略修改,或若分析后无文件名,则FCB中文件名字段被置为“空” 位1=1——若字符串中指定了驱动器号,则FCB中的ID字节被修改 =0——若ID字节忽略修改,或若分析后没有指定驱动器号,则FCB中驱动器字段被置为0(缺省值) 位0=1—— =0——忽略前导分割符 不忽略前导分割符 出口参数:AL=00H—没有通配字符 01H—有通配字符 FFH—驱动器号非法 DS:SI=分析
30、后文件名第一个字符的地址 ES:DI=格式化后的、未打开的FCB地址 6、记录操作功能(Record Function) 1AH —设置数据传输区地址42H —设置文件指针 2FH —读取数据传输区地址5CH —文件区域加锁或解锁 3FH —读文件或设备68H —提交文件缓冲区数据 40H —写文件或设备 (2)、功能2FH 功能描述:为FCB读/写操作而获取DTA的当前地址 入口参数:AH=2FH 出口参数:ES:BX=DTA的段地址和偏移量 (3)、功能3FH 功能描述:从先前打开的文件中读出指定数目的字节,并移动文件指针 入口参数:AH=3FH BX=文件句柄
31、 CX=将要读出的字节数 DS:DX=存放字符的缓冲区地址 出口参数:CF=0——读取成功,AX=读取的字符数,否则,AX=错误号(05H或06H),其含义见错误代码表 (4)、功能40H 功能描述:向先前打开的文件写入指定数量的字节,并相应修改文件指针 入口参数:AH=40H BX=文件句柄 CX=写入的字节数 DS:DX=存放数据的缓冲区地址 出口参数:CF=0——关闭成功,AX=写入的字节数,否则,AX=错误号(05H或06H),其含义见错误代码表 (5)、功能42H 功能描述:设置文件指针的相对位置(相对与文件头、文件尾和当前位置) 入口参数:AH=42H
32、BX=文件句柄 CX=偏移量的高位 DX=偏移量的低位 AL=00H——从文件头开始的绝对偏移量 =01H——从当前文件指针开始的偏移量(可带符号) =02H——从文件尾开始的偏移量(可带符号) 出口参数:CF=0——设置成功,DX是指针的高位,AX是其低位,否则,AX=错误号(01H和06H),其含义见错误代码表。 (6)、功能5CH 功能描述:文件区域加锁或解锁 入口参数:AH=5CH AL=00H——区域加锁 01H——区域解锁 BX=文件句柄 CX:DX=区域偏移量 SI:DI=区域长度 DS:DX=路径名的地址 出口参数:CF=0——操作成功,否则
33、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=先前打开文件控制块的地址 出口
34、参数: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)、功能22
35、H 功能描述:把内存中的数据写入在文件中当前选定的记录 入口参数: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——读取成功
36、 01H——文件尾 02H——取消读操作 03H——部分记录在文件尾 CX=实际读出的记录数 (7)、功能28H 功能描述:从内存向文件中写入若干个记录 入口参数:AH=28H CX=要写入的记录数 DS:DX=先前打开文件控制块的地址 出口参数:AL=00H——写入成功 01H——磁盘满 02H——段缠绕 CX=实际写入的记录数 8、内存分配功能(Memory-Allocation Function) 48H —分配内存块 49H —释放内存块 4AH —重定义内存块的大小 58H —读取/设置内存分配策略 (1)、功能48H 功能描述:分配一
37、块内存单元,并返回该块内存单元的首地址 入口参数: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=被修改块的
38、段地址 出口参数:CF=0——修改成功,否则,AX=错误号(07H、08H或09H),其含义见错误代码表,BX=可用最大块的大小 (4)、功能58H 功能描述:读取/设置内存分配策略 入口参数:AH=58H 读取内存分配策略AL=00H 设置内存分配策略AL=01H BX=内存分配策略代码: 00H—第一满足 01H—最好满足 02H—最后满足 出口参数:CF=0——操作成功,AX=已选用的内存分配策略代码(含义如上说明),否则,AX=错误号(01H),其含义见错误代码表 9、系统功能(System Function) 25H —设置中断向量 30H
39、 —读取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
40、=中断处理程序的入口地址 出口参数:无 (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
41、 出口参数:取状态时,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)、
42、功能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—m
43、dy、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)、功能
44、44H 功能描述:输入/输出控制,其子功能描述: 00H—取设备信息01H—取设备信息 02H—从字符设备驱动器接受控制数据03H—发送控制数据到字符设备驱动器 04H—从块设备驱动器接受控制数据 05H—发送控制数据到块设备驱动器 06H—检查输入状态07H—检查输出状态 08H—检查块设备是否为可拆卸设备09H—检查设备是否为远程设备 0AH—检查句柄是否为远程对象0BH—改变共享访问入口数 0CH—字符设备的一般I/O控制信息0DH—块设备的一般I/O控制信息 0EH—读取逻辑驱动器映射关系0FH—设置逻辑驱动器映射关系 说明:输入/输出子功能中的00
45、H、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—系统软件内部错误
46、05h—硬件失败06h—系统软件失败,但不是活跃进程失败 07h—应用程序错08h—文件或数据项未发现 09h—文件或数据项类型或格式错0Ah—文件或数据项相互加锁 0Bh—驱动器中坏磁盘,磁盘中坏区域或存储问题 0Ch—其它错误 BL=建议采用的措施,其定义如下: 01h — 重试若干次后,再选"终止"或"忽略" 02h — 重试若干次(二次之间要等待)后,再选"终止"或"忽略" 03h — 从用户获取正确的信息 04h — 终止应用程序,并清除其所使用资源 05h — 立即终止程序,但没有清除其资源 06h — 忽略错误 07h — 消除错误原因,再重
47、试 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),其含义见错误代码表,否则, C
48、H=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),其含义见错误代码表 (
49、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=存放网络名的地址
50、②、子功能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—读取临时控制台标志






