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