骏洁 發表於 2014-3-4 13:17:32

BIOS和DOS中断大全

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