<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>中断 on 软件开发大郭的技术博客</title>
		<link>https://blog.grabbyte.com/tags/%E4%B8%AD%E6%96%AD/</link>
		<description>Recent content in 中断 on 软件开发大郭的技术博客</description>
		<generator>Hugo</generator>
		<language>en</language>
		
		
		
		
			<lastBuildDate>Wed, 28 Jun 2023 22:23:47 +0800</lastBuildDate>
		
			<atom:link href="https://blog.grabbyte.com/tags/%E4%B8%AD%E6%96%AD/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>DJGPP下调用中断的方法</title>
				<link>https://blog.grabbyte.com/p/2023/06/28-2223.html</link>
				<pubDate>Wed, 28 Jun 2023 22:23:47 +0800</pubDate>
				<guid>https://blog.grabbyte.com/p/2023/06/28-2223.html</guid>
				<description>&lt;p&gt;DJGPP是DOS下完整的32位的C/C++保护模式的编译器，运行于386以上机器。DJGPP有一个好帮手叫作Allegro，它是个图形/声音编程库，功能非常强大，应用于界面编程非常方便。可以Allegro编程库编写程序，然后用DJGPP编译。&lt;/p&gt;</description>
			</item>
			<item>
				<title>BIOS中断服务</title>
				<link>https://blog.grabbyte.com/p/2023/06/28.html</link>
				<pubDate>Wed, 28 Jun 2023 11:40:29 +0800</pubDate>
				<guid>https://blog.grabbyte.com/p/2023/06/28.html</guid>
				<description>&lt;p&gt;&lt;strong&gt;1、显示服务(Video Service——INT 10H)&lt;/strong&gt;&#xA;00H —设置显示器模式0CH —写图形象素&#xA;01H —设置[光标形状0DH —读图形象素&#xA;02H —设置光标位置0EH —在Teletype模式下显示字符&#xA;03H —读取光标信息0FH —读取显示器模式&#xA;04H —读取光笔位置10H —颜色&#xA;05H —设置显示页11H —字体&#xA;06H、07H —初始化或滚屏12H —显示器的配置&#xA;08H —读光标处的字符及其属性13H —在Teletype模式下显示字符串&#xA;09H —在光标处按指定属性显示字符1AH —读取/设置显示组合编码&#xA;0AH —在当前光标处显示字符1BH —读取功能/状态信息&#xA;0BH —设置调色板、背景色或边框1CH —保存/恢复显示器状态&#xA;(1)、功能00H&#xA;功能描述：设置显示器模式&#xA;入口参数：AH＝00H&#xA;AL＝显示器模式，见下表所示&#xA;出口参数：无&#xA;可用的显示模式如下所列：&#xA;显示模式显示模式属性显示模式显示模式属性&#xA;00H40×2516色 文本01H40×2516色 文本&#xA;02H80×2516色 文本03H80×2516色 文本&#xA;04H320×2004色05H320×2004色&#xA;06H640×2002色07H80×252色 文本&#xA;08H160×20016色09H320×20016色&#xA;0AH640×2004色0BH保留　&#xA;0CH保留0DH320×20016色&#xA;0EH640×20016色0FH640×3502(单色)&#xA;10H640×3504色10H640×35016色&#xA;11H640×4802色12H640×48016色&#xA;13H640×480256色&#xA;对于超级VGA显示卡，我们可用AX＝4F02H和下列BX的值来设置其显示模式。&#xA;BX显示模式属性BX显示模式属性&#xA;100H640×400256色101H640×480256色&#xA;102H800×60016色103H800×600256色&#xA;104H1024×76816色105H1024×768256色&#xA;106H1280×102416色107H1280×1024256色&#xA;108H80×60文本模式109H132×25文本模式&#xA;10AH132×43文本模式10BH132×50文本模式&#xA;10CH132×60文本模式&#xA;(2)、功能01H&#xA;功能描述：设置光标形状&#xA;入口参数：AH＝01H&#xA;CH低四位＝光标的起始行&#xA;CL低四位＝光标的终止行&#xA;出口参数：无&#xA;(3)、功能02H&#xA;功能描述：用文本坐标下设置光标位置&#xA;入口参数：AH＝02H&#xA;BH＝显示页码&#xA;DH＝行(Y坐标)&#xA;DL＝列(X坐标)&#xA;出口参数：无&#xA;(4)、功能03H&#xA;功能描述：在文本坐标下，读取光标各种信息&#xA;入口参数：AH＝03H&#xA;BH＝显示页码&#xA;出口参数：CH＝光标的起始行&#xA;CL＝光标的终止行&#xA;DH＝行(Y坐标)&#xA;DL＝列(X坐标)&#xA;(5)、功能04H&#xA;功能描述：获取当前状态和光笔位置&#xA;入口参数：AH＝04H&#xA;出口参数：AH＝00h——光笔未按下/未触发，01h——光笔已按下/已触发&#xA;BX＝象素列(图形X坐标)&#xA;CH＝象素行(图形Y坐标，显示模式：04H~06H)&#xA;CX＝象素行(图形Y坐标，显示模式：0DH~10H)&#xA;DH＝字符行(文本Y坐标)&#xA;DL＝字符列(文本X坐标)&#xA;(6)、功能05H&#xA;功能描述：设置显示页，即选择活动的显示页&#xA;入口参数：AH＝05H&#xA;AL＝显示页&#xA;对于CGA、EGA、MCGA和VGA，其显示页如下表所列： 模式页数显示器类型&#xA;00H、01H0~7CGA、EGA、MCGA、VGA&#xA;02H、03H0~3CGA&#xA;02H、03H0~7EGA、MCGA、VGA&#xA;07H0~7EGA、VGA&#xA;0DH0~7EGA、VGA&#xA;0EH0~3EGA、VGA&#xA;0FH0~1EGA、VGA&#xA;10H0~1EGA、VGA&#xA;对于PCjr：&#xA;AL＝80H——读取CRT/CPU页寄存器&#xA;81H——设置CPU页寄存器&#xA;82H——设置CRT页寄存器&#xA;83H——设置CRT/CPU页寄存器&#xA;BH＝CRT页(子功能号82H和83H)&#xA;BL＝CPU页(子功能号81H和83H)&#xA;出口参数：对于前者，无出口参数，但对PCjr在子功能80H~83H调用下，有：BH＝CRT页寄存器，BL＝CPU页寄存器&#xA;(7)、功能06H和07H&#xA;功能描述：初始化屏幕或滚屏&#xA;入口参数：AH＝06H——向上滚屏，07H——向下滚屏&#xA;AL＝滚动行数(0——清窗口)&#xA;BH＝空白区域的缺省属性&#xA;(CH、CL)＝窗口的左上角位置(Y坐标，X坐标)&#xA;(DH、DL)＝窗口的右下角位置(Y坐标，X坐标)&#xA;出口参数：无&#xA;(8)、功能08H&#xA;功能描述：读光标处的字符及其属性&#xA;入口参数：AH＝08H&#xA;BH＝显示页码&#xA;出口参数：AH＝属性&#xA;AL＝字符&#xA;(9)、功能09H&#xA;功能描述：在当前光标处按指定属性显示字符&#xA;入口参数：AH＝09H&#xA;AL＝字符&#xA;BH＝显示页码&#xA;BL＝属性(文本模式)或颜色(图形模式)&#xA;CX＝重复输出字符的次数&#xA;出口参数：无&#xA;(10)、功能0AH&#xA;功能描述：在当前光标处按原有属性显示字符&#xA;入口参数：AH＝0AH&#xA;AL＝字符&#xA;BH＝显示页码&#xA;BL＝颜色(图形模式，仅适用于PCjr)&#xA;CX＝重复输出字符的次数&#xA;出口参数：无&#xA;(11)、功能0BH&#xA;功能描述：设置调色板、背景色或边框&#xA;入口参数：AH＝0BH&#xA;设置颜色：BH＝00H，BL＝颜色&#xA;选择调色板：BH＝01H，BL＝调色板(320×200、4种颜色的图形模式)&#xA;出口参数：无&#xA;(12)、功能0CH&#xA;功能描述：写图形象素&#xA;入口参数：AH＝0CH&#xA;AL＝象素值&#xA;BH＝页码&#xA;(CX、DX)＝图形坐标列(X)、行(Y)&#xA;出口参数：无&#xA;(13)、功能0DH&#xA;功能描述：读图形象素&#xA;入口参数：AH＝0DH&#xA;BH＝页码&#xA;(CX、DX)＝图形坐标列(X)、行(Y)&#xA;出口参数：AL＝象素值&#xA;(14)、功能0EH&#xA;功能描述：在Teletype模式下显示字符&#xA;入口参数：AH＝0EH&#xA;AL＝字符&#xA;BH＝页码&#xA;BL＝前景色(图形模式)&#xA;出口参数：无&#xA;(15)、功能0FH&#xA;功能描述：读取显示器模式&#xA;入口参数：AH＝0FH&#xA;出口参数：AH＝屏幕字符的列数&#xA;AL＝显示模式(参见功能00H中的说明)&#xA;BH＝页码&#xA;(16)、功能10H&#xA;功能描述：颜色中断。其子功能说明如下： 功能号　子功能名称功能号　子功能名称&#xA;00H — 设置调色板寄存器01H — 设置边框颜色&#xA;02H — 设置调色板和边框03H — 触发闪烁/亮显位&#xA;07H — 读取调色板寄存器08H — 读取边框颜色&#xA;09H — 读取调色板和边框10H — 设置颜色寄存器&#xA;12H — 设置颜色寄存器块13H — 设置颜色页状态&#xA;15H — 读取颜色寄存器17H — 读取颜色寄存器块&#xA;1AH — 读取颜色页状态1BH — 设置灰度值&#xA;(17)、功能11H&#xA;功能描述：字体中断。其子功能说明如下： 子功能号子功能名称&#xA;00H装入用户字体和可编程控制器&#xA;10H装入用户字体和可编程控制器&#xA;01H装入8×14 ROM字体和可编程控制器&#xA;11H装入8×14 ROM字体和可编程控制器&#xA;02H装入8×8 ROM字体和可编程控制器&#xA;12H装入8×8 ROM字体和可编程控制器&#xA;03H设置块指示器&#xA;04H装入8×16 ROM字体和可编程控制器&#xA;14H装入8×16 ROM字体和可编程控制器&#xA;20H设置INT 1Fh字体指针&#xA;21H为用户字体设置INT 43h&#xA;22H为8×14 ROM字体设置INT 43H&#xA;23H为8×8 ROM字体设置INT 43H&#xA;24H为8×16 ROM字体设置INT 43H&#xA;30H读取字体信息&#xA;(18)、功能12H&#xA;功能描述：显示器的配置中断。其子功能说明如下： 功能号 功能名称 功能号 功能名称&#xA;10H — 读取配置信息20H — 选择屏幕打印&#xA;30H — 设置扫描行31H — 允许/禁止装入缺省调色板&#xA;32H — 允许/禁止显示33H — 允许/禁止灰度求和&#xA;34H — 允许/禁止光标模拟35H — 切换活动显示&#xA;36H — 允许/禁止屏幕刷新&#xA;(19)、功能13H&#xA;功能描述：在Teletype模式下显示字符串&#xA;入口参数：AH＝13H&#xA;BH＝页码&#xA;BL＝属性(若AL=00H或01H)&#xA;CX＝显示字符串长度&#xA;(DH、DL)＝坐标(行、列)&#xA;ES:BP＝显示字符串的地址 AL＝显示输出方式&#xA;0——字符串中只含显示字符，其显示属性在BL中。显示后，光标位置不变&#xA;1——字符串中只含显示字符，其显示属性在BL中。显示后，光标位置改变&#xA;2——字符串中含显示字符和显示属性。显示后，光标位置不变&#xA;3——字符串中含显示字符和显示属性。显示后，光标位置改变&#xA;出口参数：无&#xA;(20)、功能1AH&#xA;功能描述：读取/设置显示组合编码，仅PS/2有效，在此从略&#xA;(21)、功能1BH&#xA;功能描述：读取功能/状态信息，仅PS/2有效，在此从略&#xA;(22)、功能1CH&#xA;功能描述：保存/恢复显示器状态，仅PS/2有效，在此从略&#xA;&lt;strong&gt;2、直接磁盘服务(Direct Disk Service——INT 13H)&lt;/strong&gt;&#xA;00H —磁盘系统复位0EH —读扇区缓冲区&#xA;01H —读取磁盘系统状态0FH —写扇区缓冲区&#xA;02H —读扇区10H —读取驱动器状态&#xA;03H —写扇区11H —校准驱动器&#xA;04H —检验扇区12H —控制器RAM诊断&#xA;05H —格式化磁道13H —控制器驱动诊断&#xA;06H —格式化坏磁道14H —控制器内部诊断&#xA;07H —格式化驱动器15H —读取磁盘类型&#xA;08H —读取驱动器参数16H —读取磁盘变化状态&#xA;09H —初始化硬盘参数17H —设置磁盘类型&#xA;0AH —读长扇区18H —设置格式化媒体类型&#xA;0BH —写长扇区19H —磁头保护&#xA;0CH —查寻1AH —格式化ESDI驱动器&#xA;0DH —硬盘系统复位&#xA;(1)、功能00H&#xA;功能描述：磁盘系统复位&#xA;入口参数：AH＝00H&#xA;DL＝驱动器，00H~7FH：软盘；80H~0FFH：硬盘&#xA;出口参数：CF＝0——操作成功，AH＝00H，否则，AH＝状态代码，参见功能号01H中的说明&#xA;(2)、功能01H&#xA;功能描述：读取磁盘系统状态&#xA;入口参数：AH＝01H&#xA;DL＝驱动器，00H~7FH：软盘；80H~0FFH：硬盘&#xA;出口参数：AH＝00H，AL＝状态代码，其定义如下：&#xA;00H — 无错 01H — 非法命令&#xA;02H — 地址目标未发现03H — 磁盘写保护(软盘)&#xA;04H — 扇区未发现05H — 复位失败(硬盘)&#xA;06H — 软盘取出(软盘)07H — 错误的参数表(硬盘)&#xA;08H — DMA越界(软盘)09H — DMA超过64K界限&#xA;0AH — 错误的扇区标志(硬盘)0BH — 错误的磁道标志(硬盘)&#xA;0CH — 介质类型未发现(软盘)0DH — 格式化时非法扇区号(硬盘)&#xA;0EH — 控制数据地址目标被发现(硬盘)0FH — DMA仲裁越界(硬盘)&#xA;10H — 不正确的CRC或ECC编码11H — ECC校正数据错(硬盘)&#xA;　CRC:Cyclic Redundancy Check code&#xA;　ECC:Error Checking &amp;amp; Correcting code&#xA;20H — 控制器失败40H — 查找失败&#xA;80H — 磁盘超时(未响应)AAH — 驱动器未准备好(硬盘)&#xA;BBH — 未定义的错误(硬盘)CCH — 写错误(硬盘)&#xA;E0H — 状态寄存器错(硬盘)FFH — 检测操作失败(硬盘)&#xA;(3)、功能02H&#xA;功能描述：读扇区&#xA;入口参数：AH＝02H&#xA;AL＝扇区数&#xA;CH＝柱面&#xA;CL＝扇区&#xA;DH＝磁头&#xA;DL＝驱动器，00H~7FH：软盘；80H~0FFH：硬盘&#xA;ES:BX＝缓冲区的地址&#xA;出口参数：CF＝0——操作成功，AH＝00H，AL＝传输的扇区数，否则，AH＝状态代码，参见功能号01H中的说明&#xA;(4)、功能03H&#xA;功能描述：写扇区&#xA;入口参数：AH＝03H&#xA;AL＝扇区数&#xA;CH＝柱面&#xA;CL＝扇区&#xA;DH＝磁头&#xA;DL＝驱动器，00H~7FH：软盘；80H~0FFH：硬盘&#xA;ES:BX＝缓冲区的地址&#xA;出口参数：CF＝0——操作成功，AH＝00H，AL＝传输的扇区数，否则，AH＝状态代码，参见功能号01H中的说明&#xA;(5)、功能04H&#xA;功能描述：检验扇区&#xA;入口参数：AH＝04H&#xA;AL＝扇区数&#xA;CH＝柱面&#xA;CL＝扇区&#xA;DH＝磁头&#xA;DL＝驱动器，00H~7FH：软盘；80H~0FFH：硬盘&#xA;ES:BX＝缓冲区的地址&#xA;出口参数：CF＝0——操作成功，AH＝00H，AL＝被检验的扇区数，否则，AH＝状态代码，参见功能号01H中的说明&#xA;(6)、功能05H&#xA;功能描述：格式化磁道&#xA;入口参数：AH＝05H&#xA;AL＝交替(Interleave)&#xA;CH＝柱面&#xA;DH＝磁头&#xA;DL＝驱动器，00H~7FH：软盘；80H~0FFH：硬盘&#xA;ES:BX＝地址域列表的地址&#xA;出口参数：CF＝0——操作成功，AH＝00H，否则，AH＝状态代码，参见功能号01H中的说明&#xA;(7)、功能06H&#xA;功能描述：格式化坏磁道&#xA;入口参数：AH＝06H&#xA;AL＝交替&#xA;CH＝柱面&#xA;DH＝磁头&#xA;DL＝80H~0FFH：硬盘&#xA;ES:BX＝地址域列表的地址&#xA;出口参数：CF＝0——操作成功，AH＝00H，否则，AH＝状态代码，参见功能号01H中的说明&#xA;(8)、功能07H&#xA;功能描述：格式化驱动器&#xA;入口参数：AH＝07H&#xA;AL＝交替&#xA;CH＝柱面&#xA;DL＝80H~0FFH：硬盘&#xA;出口参数：CF＝0——操作成功，AH＝00H，否则，AH＝状态代码，参见功能号01H中的说明&#xA;(9)、功能08H&#xA;功能描述：读取驱动器参数&#xA;入口参数：AH＝08H&#xA;DL＝驱动器，00H~7FH：软盘；80H~0FFH：硬盘&#xA;出口参数：CF＝1——操作失败，AH＝状态代码，参见功能号01H中的说明，否则， BL＝01H — 360K&#xA;＝02H — 1.2M&#xA;＝03H — 720K&#xA;＝04H — 1.44M&#xA;CH＝柱面数的低8位&#xA;CL的位7-6＝柱面数的该2位&#xA;CL的位5-0＝扇区数&#xA;DH＝磁头数&#xA;DL＝驱动器数&#xA;ES:DI＝磁盘驱动器参数表地址&#xA;(10)、功能09H&#xA;功能描述：初始化硬盘参数&#xA;入口参数：AH＝09H&#xA;DL＝80H~0FFH：硬盘(还有有关参数表问题，在此从略)&#xA;出口参数：CF＝0——操作成功，AH＝00H，否则，AH＝状态代码，参见功能号01H中的说明&#xA;(11)、功能0AH&#xA;功能描述：读长扇区，每个扇区随带四个字节的ECC编码&#xA;入口参数：AH＝0AH&#xA;AL＝扇区数&#xA;CH＝柱面&#xA;CL＝扇区&#xA;DH＝磁头&#xA;DL＝80H~0FFH：硬盘&#xA;ES:BX＝缓冲区的地址&#xA;出口参数：CF＝0——操作成功，AH＝00H，AL＝传输的扇区数，否则，AH＝状态代码，参见功能号01H中的说明&#xA;(12)、功能0BH&#xA;功能描述：写长扇区，每个扇区随带四个字节的ECC编码&#xA;入口参数：AH＝0BH&#xA;AL＝扇区数&#xA;CH＝柱面&#xA;CL＝扇区&#xA;DH＝磁头&#xA;DL＝80H~0FFH：硬盘&#xA;ES:BX＝缓冲区的地址&#xA;出口参数：CF＝0——操作成功，AH＝00H，AL＝传输的扇区数，否则，AH＝状态代码，参见功能号01H中的说明&#xA;(13)、功能0CH&#xA;功能描述：查寻&#xA;入口参数：AH＝0CH&#xA;CH＝柱面的低8位&#xA;CL(7-6位)＝柱面的高2位&#xA;DH＝磁头&#xA;DL＝80H~0FFH：硬盘&#xA;出口参数：CF＝0——操作成功，AH＝00H，否则，AH＝状态代码，参见功能号01H中的说明&#xA;(14)、功能0DH&#xA;功能描述：硬盘系统复位&#xA;入口参数：AH＝0DH&#xA;DL＝80H~0FFH：硬盘&#xA;出口参数：CF＝0——操作成功，AH＝00H，否则，AH＝状态代码，参见功能号01H中的说明&#xA;(15)、功能0EH&#xA;功能描述：读扇区缓冲区&#xA;入口参数：AH＝0EH&#xA;ES:BX＝缓冲区的地址&#xA;出口参数：CF＝0——操作成功，否则，AH＝状态代码，参见功能号01H中的说明&#xA;(16)、功能0FH&#xA;功能描述：写扇区缓冲区&#xA;入口参数：AH＝0FH&#xA;ES:BX＝缓冲区的地址&#xA;出口参数：CF＝0——操作成功，否则，AH＝状态代码，参见功能号01H中的说明&#xA;(17)、功能10H&#xA;功能描述：读取驱动器状态&#xA;入口参数：AH＝10H&#xA;DL＝80H~0FFH：硬盘&#xA;出口参数：CF＝0——操作成功，AH＝00H，否则，AH＝状态代码，参见功能号01H中的说明&#xA;(18)、功能11H&#xA;功能描述：校准驱动器&#xA;入口参数：AH＝11H&#xA;DL＝80H~0FFH：硬盘&#xA;出口参数：CF＝0——操作成功，AH＝00H，否则，AH＝状态代码，参见功能号01H中的说明&#xA;(19)、功能12H&#xA;功能描述：控制器RAM诊断&#xA;入口参数：AH＝12H&#xA;出口参数：CF＝0——操作成功，否则，AH＝状态代码，参见功能号01H中的说明&#xA;(20)、功能13H&#xA;功能描述：控制器驱动诊断&#xA;入口参数：AH＝13H&#xA;出口参数：CF＝0——操作成功，否则，AH＝状态代码，参见功能号01H中的说明&#xA;(21)、功能14H&#xA;功能描述：控制器内部诊断&#xA;入口参数：AH＝14H&#xA;出口参数：CF＝0——操作成功，否则，AH＝状态代码，参见功能号01H中的说明&#xA;(22)、功能15H&#xA;功能描述：读取磁盘类型&#xA;入口参数：AH＝15H&#xA;DL＝驱动器，00H~7FH：软盘；80H~0FFH：硬盘&#xA;出口参数：CF＝1——操作失败，AH＝状态代码，参见功能号01H中的说明， 否则，AH＝00H — 未安装驱动器&#xA;＝01H — 无改变线支持的软盘驱动器&#xA;＝02H — 带有改变线支持的软盘驱动器&#xA;＝03H — 硬盘，CX:DX＝512字节的扇区数&#xA;(23)、功能16H&#xA;功能描述：读取磁盘变化状态&#xA;入口参数：AH＝16H&#xA;DL＝00H~7FH：软盘&#xA;出口参数：CF＝0——磁盘未改变，AH＝00H，否则，AH＝06H，参见功能号01H中的说明&#xA;(24)、功能17H&#xA;功能描述：设置磁盘类型&#xA;入口参数：AH＝17H&#xA;DL＝00H~7FH：软盘 AL＝00H — 未用&#xA;＝01H — 360K在360K驱动器中&#xA;＝02H — 360K在1.2M驱动器中&#xA;＝03H — 1.2M在1.2M驱动器中&#xA;＝04H — 720K在720K驱动器中&#xA;出口参数：CF＝0——操作成功，AH＝00H，否则，AH＝状态编码，参见功能号01H中的说明&#xA;(25)、功能18H&#xA;功能描述：设置格式化媒体类型&#xA;入口参数：AH＝18H&#xA;CH＝柱面数&#xA;CL＝每磁道的扇区数&#xA;DL＝00H~7FH：软盘&#xA;出口参数：CF＝0——操作成功，AH＝00H，ES:DI＝介质类型参数表地址，否则，AH＝状态编码，参见功能号01H中的说明&#xA;(26)、功能19H&#xA;功能描述：磁头保护，仅在PS/2中有效，在此从略&#xA;(27)、功能1AH&#xA;功能描述：格式化ESDI驱动器，仅在PS/2中有效，在此从略&#xA;&lt;strong&gt;3、串行口服务(Serial Port Service——INT 14H)&lt;/strong&gt;&#xA;00H —初始化通信口03H —读取通信口状态&#xA;01H —向通信口输出字符04H —扩充初始化通信口&#xA;02H —从通信口读入字符&#xA;(1)、功能00H&#xA;功能描述：初始化通信口&#xA;入口参数：AH＝00H&#xA;DX＝初始化通信口号(0＝COM1，1＝COM2，……)&#xA;AL＝初始化参数，参数的说明如下： 波特率奇偶位停止位字的位数&#xA;76543210&#xA;000 = 110X0 = None0 = 1 bit10 = 7 bits&#xA;001 = 15001 = Odd1 = 2 bits11 = 8 bits&#xA;010 = 30011 = Even&#xA;011 = 600&#xA;100 = 1200&#xA;101 = 2400&#xA;110 = 4800&#xA;111 = 9600&#xA;对于PS/2，可用INT 14H之功能04H和05H来初始化其通信速率大于9600。&#xA;出口参数：AH＝通信口状态，各状态位为1时的含义如下： 位7—超时&#xA;位6—传递移位寄存器为空&#xA;位5—传递保持寄存器为空&#xA;位4—发现终止位3—发现帧错误&#xA;位2—发现奇偶错&#xA;位1—发现越界错&#xA;位0—接受数据准备好&#xA;AL＝Modem状态&#xA;位7—接受单线信号诊断&#xA;位6—环指示器&#xA;位5—数据发送准备好&#xA;位4—清除数据，再发送位3—改变在接受线上的信号诊断&#xA;位2—后边界环指示器&#xA;位1—改变“数据准备好”状态&#xA;位0—改变“清除—发送”状态&#xA;(2)、功能01H&#xA;功能描述：向通信口输出字符&#xA;入口参数：AH＝01H&#xA;AL＝字符&#xA;DX＝初始化通信口号(0＝COM1，1＝COM2，……)&#xA;出口参数：AL的值不变&#xA;AH的位7＝0——操作成功，通信口状态，AH的位6~0是其状态位&#xA;(3)、功能02H&#xA;功能描述：从通信口读入字符&#xA;入口参数：AH＝02H&#xA;DX＝初始化通信口号(0＝COM1，1＝COM2，……)&#xA;出口参数：AL＝接受的字符&#xA;AH的位7＝0——操作成功，通信口状态，AH的位6~0是其状态位&#xA;(4)、功能03H&#xA;功能描述：读取通信口状态&#xA;入口参数：AH＝03H&#xA;DX＝初始化通信口号(0＝COM1，1＝COM2，……)&#xA;出口参数：AH＝通信口状态，AL＝Modem状态，参见功能号00H中的说明&#xA;(5)、功能04H&#xA;功能描述：扩充初始化通信口，仅在PS/2中有效，在此从略&#xA;**4、杂项系统服务(Miscellaneous System Service——INT 15H)&#xA;**00H —开盒式磁带机马达85H —系统请求(SysReq)键&#xA;01H —关盒式磁带机马达86H —延迟&#xA;02H —读盒式磁带机87H —移动扩展内存块&#xA;03H —写盒式磁带机88H —读取扩展内存大小&#xA;0FH —格式化ESDI驱动器定期中断89H —进入保护模式&#xA;21H —读/写自检(POST)错误记录90H —设备等待&#xA;4FH —键盘截听91H —设备加电自检&#xA;80H —设备打开C0H —读取系统环境&#xA;81H —设备关闭C1H —读取扩展BIOS数据区地址&#xA;82H —进程终止C2H —鼠标图形&#xA;83H —事件等待C3H —设置WatcHdog超时&#xA;84H —读游戏杆C4H —可编程选项选择&#xA;(1)、功能00H&#xA;功能描述：开盒式磁带机马达&#xA;入口参数：AH＝00H&#xA;出口参数：CF＝0——操作成功，否则，AH＝状态(86H，若未安装盒式磁带机)&#xA;(2)、功能01H&#xA;功能描述：关盒式磁带机马达&#xA;入口参数：AH＝01H&#xA;出口参数：CF＝0——操作成功，否则，AH＝状态(86H，若未安装盒式磁带机)&#xA;(3)、功能02H&#xA;功能描述：读盒式磁带机&#xA;入口参数：AH＝02H&#xA;CX＝读入的字节数&#xA;ES:BX＝存放数据的缓冲区地址&#xA;出口参数：CF＝0——操作成功，DX＝实际读入的字节数，ES:BX指向最后一个字节的后面地址，否则，AH＝状态码，其值含义如下： 01H&#xA;—— CRC校验码错80H —— 非法命令&#xA;02H —— 位信号混乱86H —— 未安装盒式磁带机&#xA;04H —— 无发现数据&#xA;(4)、功能03H&#xA;功能描述：写盒式磁带机&#xA;入口参数：AH＝03H&#xA;CX＝要写入的字节数&#xA;ES:BX＝已存数据的缓冲区地址&#xA;出口参数：CF＝0——操作成功，CX＝00H，ES:BX指向最后一个字节的后面地址，否则，AH＝状态码，其值含义如下： 80H ——&#xA;非法命令86H —— 未安装盒式磁带机&#xA;(5)、功能0FH&#xA;功能描述：格式化ESDI驱动器定期中断，仅在PS/2中有效，在此从略&#xA;(6)、功能21H&#xA;功能描述：读/写自检(POST)错误记录，仅在PS/2中有效，在此从略&#xA;(7)、功能4FH&#xA;功能描述：键盘截听，仅在PS/2中有效，在此从略&#xA;(8)、功能80H&#xA;功能描述：打开设备&#xA;入口参数：AH＝80H&#xA;BX＝设备号&#xA;CX＝进程号&#xA;出口参数：CF＝0——操作成功，AH＝00H，否则，AH＝状态码&#xA;(9)、功能81H&#xA;功能描述：关闭设备&#xA;入口参数：AH＝81H&#xA;BX＝设备号&#xA;CX＝进程号&#xA;出口参数：CF＝0——操作成功，AH＝00H，否则，AH＝状态码&#xA;(10)、功能82H&#xA;功能描述：进程终止&#xA;入口参数：AH＝81H&#xA;BX＝进程号&#xA;出口参数：CF＝0——操作成功，AH＝00H，否则，AH＝状态码&#xA;(11)、功能83H&#xA;功能描述：事件等待&#xA;入口参数：AH＝83H 若需要事件等待，则：AL＝00H&#xA;CX:DX＝千分秒&#xA;ES:BX＝信号量字节的地址&#xA;否则，调用参数为AL＝01H&#xA;出口参数：若调用时，AL＝00H，操作成功——CF＝0，否则，CF＝1&#xA;(12)、功能84H&#xA;功能描述：读游戏杆&#xA;入口参数：AH＝84H&#xA;DX＝00H——读取开关设置&#xA;　＝01H——读取阻力输入&#xA;出口参数：CF＝1H——操作失败，否则，&#xA;　DX＝00H时，AL＝开关设置(位7～4)&#xA;　DX＝01H时，AX、BX、CX和DX分别为A(x)、A(y)、B(x)和B(y)的值&#xA;(13)、功能85H&#xA;功能描述：系统请求(SysReq)键&#xA;入口参数：AH＝85H&#xA;AL＝00H——键按下&#xA;　＝01H——键放开&#xA;出口参数：CF＝0——操作成功，AH＝00H，否则，AH＝状态码&#xA;(14)、功能86H&#xA;功能描述：延迟&#xA;入口参数：AH＝86H&#xA;CX:DX＝千分秒&#xA;出口参数：CF＝0——操作成功，AH＝00H&#xA;(15)、功能87H&#xA;功能描述：从常规内存和扩展内存之间移动扩展内存块&#xA;入口参数：AH＝87H&#xA;CX＝移动的字数&#xA;ES:SI＝GDT(Global Descriptor Table)的地址，其结构定义如下： 偏移量存储的信息&#xA;00h-0Fh保留，但现全为0&#xA;10h-11h段的长度(2CX-1或更大)&#xA;12h-14h24位源地址&#xA;15h访问权限字节(其值为93h)&#xA;16h-17h保留，但现全为0&#xA;18h-19h段的长度(2CX-1或更大)&#xA;1Ah-1Ch 24位目标源地址&#xA;1Dh访问权限字节(其值为93h)&#xA;1Eh-2Fh保留，但现全为0&#xA;出口参数：CF＝0——操作成功，AH＝00H，否则，AH＝状态码，其含义如下：&#xA;　　01H —— RAM奇偶错&#xA;　　02H —— 异常中断错&#xA;　　03H —— 20号线门地址失败&#xA;(16)、功能88H&#xA;功能描述：读取扩展内存大小&#xA;入口参数：AH＝88H&#xA;出口参数：AX＝扩展内存字节数(以K为单位)&#xA;(17)、功能89H&#xA;功能描述：进入保护模式，CPU从实模式进入保护模式&#xA;入口参数：AH＝89H&#xA;BH＝IRQ0的中断号&#xA;BL＝IRQ8的中断号&#xA;ES:SI＝GDT的地址(参见功能号87H)&#xA;出口参数：CF＝1——操作失败，AH＝0FFH，否则，AH＝00H，CS、DS、ES和SS都是用户定义的选择器&#xA;(18)、功能90H&#xA;功能描述：设备等待&#xA;入口参数：AH＝90H AL＝驱动器类型，具体的驱动器类型定义如下：&#xA;＝00H~7FH——串行再重用设备&#xA;＝80H~0BFH——可重入式设备&#xA;＝0C0H~0FFH——等待访问设备，没有自检功能&#xA;00h — 磁盘&#xA;02h — 键盘&#xA;80h — 网络&#xA;FDh — 软盘马达启动01h — 软盘&#xA;03h — 点设备(Pointing Device)&#xA;FCh — 硬盘复位&#xA;FEh — 打印机&#xA;ES:BX＝对驱动器类型80H~0FFH的请求块地址&#xA;出口参数：CF＝1——操作失败，否则，AH＝00H&#xA;(19)、功能91H&#xA;功能描述：设备加电自检&#xA;入口参数：AH＝91H&#xA;AL＝00H~7FH——串行再重用设备&#xA;　＝80H~0BFH——可重入式设备&#xA;出口参数：AH＝00H&#xA;(20)、功能0C0H&#xA;功能描述：读取系统环境&#xA;入口参数：AH＝0C0H&#xA;出口参数：ES:BX＝配置表地址，配置表的定义如下： 偏移量含义说明&#xA;00h-01h表的大小(字节数)&#xA;02h系统模型&#xA;03h系统子模型&#xA;04hBIOS版本号&#xA;05h配置标志，其各位为1时的说明如下：&#xA;　　位7—DMA通道3使用&#xA;　　位6—存在从属8259&#xA;　　位5—实时时钟有效&#xA;　　位4—键盘截听有效&#xA;　　位3—等待外部事件有效&#xA;　　位2—扩展BIOS数据区&#xA;　　位1—微通道设施&#xA;　　位0—保留&#xA;06h-09h保留&#xA;(21)、功能C1H&#xA;功能描述：读取扩展BIOS数据区地址，仅在PS/2中有效，在此从略&#xA;(22)、功能C2H&#xA;功能描述：鼠标图形，仅在PS/2中有效，在此从略&#xA;(23)、功能C3H&#xA;功能描述：设置WatcHdog超时，仅在PS/2中有效，在此从略&#xA;(24)、功能C4H&#xA;功能描述：可编程选项选择，仅在PS/2中有效，在此从略&#xA;&lt;strong&gt;5、键盘服务(Keyboard Service——INT 16H)&lt;/strong&gt;&#xA;00H、10H —从键盘读入字符03H —设置重复率&#xA;01H、11H —读取键盘状态04H —设置键盘点击&#xA;02H, 12H —读取键盘标志05H —字符及其扫描码进栈&#xA;(1)、功能00H和10H&#xA;功能描述：从键盘读入字符&#xA;入口参数：AH＝00H——读键盘&#xA;＝10H——读扩展键盘，可根据0000:0496H单元的内容判断：扩展键盘是否有效&#xA;出口参数：AH＝键盘的扫描码&#xA;AL＝字符的ASCII码&#xA;(2)、功能01H和11H&#xA;功能描述：读取键盘状态&#xA;入口参数：AH＝01H——检查普通键盘&#xA;＝11H——检查扩展键盘&#xA;出口参数：ZF＝1——无字符输入，否则，AH＝键盘的扫描码，AL＝ASCII码。&#xA;(3)、功能02H和12H&#xA;功能描述：读取键盘标志&#xA;入口参数：AH＝02H——普通键盘的移位标志&#xA;＝12H——扩展键盘的移位标志&#xA;出口参数：AL＝键盘标志(02H和12H都有效)，其各位之值为1时的含义如下： 位7—INS开状态位3—ALT键按下&#xA;位6—CAPS LOCK开状态位2—CTRL键按下&#xA;位5—NUM LOCK开状态位1—左SHIFT键按下&#xA;位4—SCROLL LOCK开状态位0—右SHIFT键按下&#xA;AH＝扩展键盘的标志(12H有效)，其各位之值为1时的含义如下：&#xA;位7—SysReq键按下位3—右ALT键按下&#xA;位6—CAPS LOCK键按下位2—右CTRL键按下&#xA;位5—NUM LOCK键按下位1—左ALT键按下&#xA;位4—SCROLL键按下位0—左CTRL键按下&#xA;(4)、功能03H&#xA;功能描述：设置重复率&#xA;入口参数：AH＝03H 对于PC/AT和PS/2：AL＝05H&#xA;BH＝重复延迟&#xA;BL＝重复率&#xA;对于PCjr：AL＝00H——装入缺省的速率和延迟&#xA;＝01H——增加初始延迟&#xA;＝02H——重复频率降低一半&#xA;＝03H——增加延迟和降低一半重复频率&#xA;＝04H——关闭键盘重复功能&#xA;出口参数：无&#xA;(5)、功能04H&#xA;功能描述：设置键盘点击&#xA;入口参数：AH＝04H AL＝00H——关闭键盘点击功能&#xA;＝01H——打开键盘点击功能&#xA;出口参数：无&#xA;(6)、功能05H&#xA;功能描述：字符及其扫描码进栈&#xA;入口参数：AH＝05H&#xA;CH＝字符的描述码&#xA;CL＝字符的ASCII码&#xA;出口参数：CF＝1——操作成功，AL＝00H，否则，AL＝01H&#xA;**6、并行口服务(Parallel Port Service——INT 17H)&#xA;**00H —向打印机输出字符&#xA;01H —初始化打印机端口&#xA;02H —读取打印机状态&#xA;(1)、功能00H&#xA;功能描述：向打印机输出字符&#xA;入口参数：AH＝00H&#xA;AL＝输出的字符&#xA;DX＝打印机号(0—LPT1，1—LPT2，2—LPT3，……)&#xA;出口参数：AH＝打印机状态。其各位为1时的含义如下： 位7—打印机空闲 位3—I/O错误&#xA;位6—打印机响应位2—保留&#xA;位5—无纸位1—保留&#xA;位4—打印机被选位0—打印机超时&#xA;(2)、功能01H&#xA;功能描述：初始化打印机端口&#xA;入口参数：AH＝01H&#xA;DX＝打印机号(0—LPT1，1—LPT2，2—LPT3，……)&#xA;出口参数：AH＝打印机状态。各位定义如下功能00H所示&#xA;(3)、功能02H&#xA;功能描述：读取打印机状态&#xA;入口参数：AH＝02H&#xA;DX＝打印机号(0—LPT1，1—LPT2，2—LPT3，……)&#xA;出口参数：AH＝打印机状态。各位定义如下功能00H所示&#xA;&lt;strong&gt;7、时钟服务(Clock Service——INT 1AH)&lt;/strong&gt;&#xA;00H —读取时钟“滴答”计数06H —设置闹钟&#xA;01H —设置时钟“滴答”计数07H —闹钟复位&#xA;02H —读取时间0AH —读取天数计数&#xA;03H —设置时间0BH —设置天数计数&#xA;04H —读取日期 80H —设置声音源信息&#xA;05H —设置日期&#xA;(1)、功能00H&#xA;功能描述：读取时钟“滴答”计数&#xA;入口参数：AH＝00H&#xA;出口参数：AL＝00H——未过午夜，否则，表示已过午夜&#xA;CX:DX＝时钟“滴答”计数&#xA;(2)、功能01H&#xA;功能描述：设置时钟“滴答”计数&#xA;入口参数：AH＝01H&#xA;CX:DX＝时钟“滴答”计数&#xA;出口参数：无&#xA;(3)、功能02H&#xA;功能描述：读取时间&#xA;入口参数：AH＝02H&#xA;出口参数：CH＝BCD码格式的小时&#xA;CL＝BCD码格式的分钟&#xA;DH＝BCD码格式的秒&#xA;DL＝00H——标准时间，否则，夏令时&#xA;CF＝0——时钟在走，否则，时钟停止&#xA;(4)、功能03H&#xA;功能描述：设置时间&#xA;入口参数：AH＝03H&#xA;CH＝BCD码格式的小时&#xA;CL＝BCD码格式的分钟&#xA;DH＝BCD码格式的秒&#xA;DL＝00H——标准时间，否则，夏令时&#xA;出口参数：无&#xA;(5)、功能04H&#xA;功能描述：读取日期&#xA;入口参数：AH＝04H&#xA;出口参数：CH＝BCD码格式的世纪&#xA;CL＝BCD码格式的年&#xA;DH＝BCD码格式的月&#xA;DL＝BCD码格式的日&#xA;CF＝0——时钟在走，否则，时钟停止&#xA;(6)、功能05H&#xA;功能描述：设置日期&#xA;入口参数：AH＝05H&#xA;CH＝BCD码格式的世纪&#xA;CL＝BCD码格式的年&#xA;DH＝BCD码格式的月&#xA;DL＝BCD码格式的日&#xA;出口参数：无&#xA;(7)、功能06H&#xA;功能描述：设置闹钟&#xA;入口参数：AH＝06H&#xA;CH＝BCD码格式的小时&#xA;CL＝BCD码格式的分钟&#xA;DH＝BCD码格式的秒&#xA;出口参数：CF＝０——操作成功，否则，闹钟已设置或时钟已停止&#xA;(8)、功能07H&#xA;功能描述：闹钟复位&#xA;入口参数：AH＝07H&#xA;出口参数：无&#xA;(9)、功能0AH&#xA;功能描述：读取天数计数，仅在PS/2有效，在此从略&#xA;(10)、功能0BH&#xA;功能描述：设置天数计数，仅在PS/2有效，在此从略&#xA;(11)、功能80H&#xA;功能描述：设置声音源信息&#xA;入口参数：AH＝80H&#xA;AL＝声音源&#xA;＝00H——8253可编程计时器，通道2&#xA;＝01H——盒式磁带输入&#xA;＝02H——I/O通道上的&amp;quot;Audio In&amp;quot;&#xA;＝03H——声音产生芯片&#xA;出口参数：无&#xA;**8、直接系统服务(Direct System Service)&#xA;**INT 00H —“0”作除数&#xA;INT 01H —单步中断&#xA;INT 02H —非屏蔽中断(NMI)&#xA;INT 03H —断点中断&#xA;INT 04H —算术溢出错误&#xA;INT 05H —打印屏幕和BOUND越界&#xA;INT 06H —非法指令错误&#xA;INT 07H —处理器扩展无效&#xA;INT 08H —时钟中断&#xA;INT 09H —键盘输入&#xA;INT 0BH —通信口(COM2:)&#xA;INT 0CH —通信口(COM1:)&#xA;INT 0EH —磁盘驱动器输入/输出&#xA;INT 11H —读取设备配置&#xA;INT 12H —读取常规内存大小(返回值AX为内存容量，以K为单位)&#xA;INT 18H —ROM BASIC&#xA;INT 19H —重启动系统&#xA;INT 1BH —CTRL+BREAK处理程序&#xA;INT 1CH —用户时钟服务&#xA;INT 1DH —指向显示器参数表指针&#xA;INT 1EH —指向磁盘驱动器参数表指针&#xA;INT 1FH —指向图形字符模式表指针&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
