INT 14H ~ INT 1AH (转)

BIOS中断大全:“INT 14H ~ INT 1AH” 3、串行口服务(Serial Port Service——INT 14H)
00H —初始化通信口
01H —向通信口输出字符
02H —从通信口读入字符 03H —读取通信口状态 04H
—扩充初始化通信口
(1)、功能00H
功能描述:初始化通信口

入口参数:AH=00H
DX=初始化通信口号(0=COM1,1=COM2,……)
AL=初始化参数,参数的说明如下:
波特率奇偶位停止位字的位数
76543210
000 = 110X0 = None0 = 1 bit10 = 7 bits
001 =
15001 = Odd1 = 2 bits11 = 8 bits
010 = 30011 = Even
011 = 600
100 =
1200
101 = 2400
110 = 4800
111 = 9600 对于PS/2,可用INT
14H之功能04H和05H来初始化其通信速率大于9600。
出口参数:AH=通信口状态,各状态位为1时的含义如下:
位7—超时
位6—传递移位寄存器为空
位5—传递保持寄存器为空
位4—发现终止位3—发现帧错误
位2—发现奇偶错
位1—发现越界错
位0—接受数据准备好
AL=Modem状态
位7—接受单线信号诊断
位6—环指示器
位5—数据发送准备好
位4—清除数据,再发送位3—改变在接受线上的信号诊断
位2—后边界环指示器
位1—改变“数据准备好”状态
位0—改变“清除—发送”状态

(2)、功能01H

功能描述:向通信口输出字符
入口参数:AH=01H
AL=字符
DX=初始化通信口号(0=COM1,1=COM2,……)
出口参数:AL的值不变
AH的位7=0——操作成功,通信口状态,AH的位6~0是其状态位
(3)、功能02H

功能描述:从通信口读入字符
入口参数:AH=02H
DX=初始化通信口号(0=COM1,1=COM2,……)
出口参数:AL=接受的字符
AH的位7=0——操作成功,通信口状态,AH的位6~0是其状态位
(4)、功能03H

功能描述:读取通信口状态
入口参数:AH=03H
DX=初始化通信口号(0=COM1,1=COM2,……)
出口参数:AH=通信口状态,AL=Modem状态,参见功能号00H中的说明
(5)、功能04H
功能描述:扩充初始化通信口,仅在PS/2中有效,在此从略

4、杂项系统服务(Miscellaneous System Service——INT 15H)
00H
—开盒式磁带机马达 01H —关盒式磁带机马达
02H —读盒式磁带机
03H —写盒式磁带机
0FH
—格式化ESDI驱动器定期中断
21H —读/写自检(POST)错误记录
4FH —键盘截听
80H —设备打开
81H
—设备关闭
82H —进程终止
83H —事件等待
84H —读游戏杆 85H —系统请求(SysReq)键
86H —延迟 87H
—移动扩展内存块 88H —读取扩展内存大小 89H —进入保护模式 90H —设备等待 91H —设备加电自检 C0H —读取系统环境 C1H
—读取扩展BIOS数据区地址 C2H —鼠标图形 C3H —设置WatcHdog超时 C4H —可编程选项选择
(1)、功能00H
功能描述:开盒式磁带机马达

入口参数:AH=00H
出口参数:CF=0——操作成功,否则,AH=状态(86H,若未安装盒式磁带机)
(2)、功能01H
功能描述:关盒式磁带机马达

入口参数:AH=01H
出口参数:CF=0——操作成功,否则,AH=状态(86H,若未安装盒式磁带机)
(3)、功能02H
功能描述:读盒式磁带机

入口参数:AH=02H
CX=读入的字节数
ES:BX=存放数据的缓冲区地址
出口参数:CF=0——操作成功,DX=实际读入的字节数,ES:BX指向最后一个字节的后面地址,否则,AH=状态码,其值含义如下:
01H
—— CRC校验码错80H —— 非法命令
02H —— 位信号混乱86H —— 未安装盒式磁带机
04H —— 无发现数据

(4)、功能03H
功能描述:写盒式磁带机
入口参数:AH=03H
CX=要写入的字节数
ES:BX=已存数据的缓冲区地址
出口参数:CF=0——操作成功,CX=00H,ES:BX指向最后一个字节的后面地址,否则,AH=状态码,其值含义如下:
80H ——
非法命令86H —— 未安装盒式磁带机

(5)、功能0FH
功能描述:格式化ESDI驱动器定期中断,仅在PS/2中有效,在此从略

(6)、功能21H
功能描述:读/写自检(POST)错误记录,仅在PS/2中有效,在此从略

(7)、功能4FH
功能描述:键盘截听,仅在PS/2中有效,在此从略

(8)、功能80H
功能描述:打开设备

入口参数:AH=80H
BX=设备号
CX=进程号
出口参数:CF=0——操作成功,AH=00H,否则,AH=状态码
(9)、功能81H
功能描述:关闭设备

入口参数:AH=81H
BX=设备号
CX=进程号
出口参数:CF=0——操作成功,AH=00H,否则,AH=状态码
(10)、功能82H
功能描述:进程终止

入口参数:AH=81H
BX=进程号
出口参数:CF=0——操作成功,AH=00H,否则,AH=状态码
(11)、功能83H
功能描述:事件等待

入口参数:AH=83H
若需要事件等待,则:AL=00H
CX:DX=千分秒
ES:BX=信号量字节的地址
否则,调用参数为AL=01H
出口参数:若调用时,AL=00H,操作成功——CF=0,否则,CF=1
(12)、功能84H
功能描述:读游戏杆

入口参数:AH=84H
DX=00H——读取开关设置
 =01H——读取阻力输入
出口参数:CF=1H——操作失败,否则,
 DX=00H时,AL=开关设置(位7~4)
 DX=01H时,AX、BX、CX和DX分别为A(x)、A(y)、B(x)和B(y)的值
(13)、功能85H

功能描述:系统请求(SysReq)键
入口参数:AH=85H
AL=00H——键按下
 =01H——键放开
出口参数:CF=0——操作成功,AH=00H,否则,AH=状态码
(14)、功能86H

功能描述:延迟
入口参数:AH=86H
CX:DX=千分秒
出口参数:CF=0——操作成功,AH=00H
(15)、功能87H

功能描述:从常规内存和扩展内存之间移动扩展内存块
入口参数:AH=87H
CX=移动的字数
ES:SI=GDT(Global
Descriptor Table)的地址,其结构定义如下:
偏移量存储的信息
00h-0Fh保留,但现全为0
10h-11h段的长度(2CX-1或更大)
12h-14h24位源地址
15h访问权限字节(其值为93h)
16h-17h保留,但现全为0
18h-19h段的长度(2CX-1或更大)
1Ah-1Ch
24位目标源地址
1Dh访问权限字节(其值为93h)
1Eh-2Fh保留,但现全为0
出口参数:CF=0——操作成功,AH=00H,否则,AH=状态码,其含义如下:
  01H —— RAM奇偶错
  02H ——
异常中断错
  03H —— 20号线门地址失败 (16)、功能88H

功能描述:读取扩展内存大小
入口参数:AH=88H
出口参数:AX=扩展内存字节数(以K为单位)
(17)、功能89H

功能描述:进入保护模式,CPU从实模式进入保护模式
入口参数:AH=89H
BH=IRQ0的中断号
BL=IRQ8的中断号
ES:SI=GDT的地址(参见功能号87H)
出口参数:CF=1——操作失败,AH=0FFH,否则,AH=00H,CS、DS、ES和SS都是用户定义的选择器
(18)、功能90H
功能描述:设备等待

入口参数:AH=90H
AL=驱动器类型,具体的驱动器类型定义如下:
=00H~7FH——串行再重用设备
=80H~0BFH——可重入式设备
=0C0H~0FFH——等待访问设备,没有自检功能
00h
— 磁盘
02h — 键盘
80h — 网络
FDh — 软盘马达启动01h — 软盘
03h — 点设备(Pointing
Device)
FCh — 硬盘复位
FEh — 打印机

ES:BX=对驱动器类型80H~0FFH的请求块地址
出口参数:CF=1——操作失败,否则,AH=00H (19)、功能91H

功能描述:设备加电自检
入口参数:AH=91H
AL=00H~7FH——串行再重用设备
 =80H~0BFH——可重入式设备
出口参数:AH=00H
(20)、功能0C0H

功能描述:读取系统环境
入口参数:AH=0C0H
出口参数:ES:BX=配置表地址,配置表的定义如下:
偏移量含义说明
00h-01h表的大小(字节数)
02h系统模型
03h系统子模型
04hBIOS版本号
05h配置标志,其各位为1时的说明如下:
  位7—DMA通道3使用
  位6—存在从属8259
  位5—实时时钟有效
  位4—键盘截听有效
  位3—等待外部事件有效
  位2—扩展BIOS数据区
  位1—微通道设施
  位0—保留
06h-09h保留

(21)、功能C1H
功能描述:读取扩展BIOS数据区地址,仅在PS/2中有效,在此从略

(22)、功能C2H
功能描述:鼠标图形,仅在PS/2中有效,在此从略
(23)、功能C3H

功能描述:设置WatcHdog超时,仅在PS/2中有效,在此从略
(24)、功能C4H
功能描述:可编程选项选择,仅在PS/2中有效,在此从略

5、键盘服务(Keyboard Service——INT 16H)
00H、10H
—从键盘读入字符
01H、11H —读取键盘状态
02H, 12H —读取键盘标志 03H —设置重复率 04H —设置键盘点击 05H
—字符及其扫描码进栈
(1)、功能00H和10H
功能描述:从键盘读入字符

入口参数:AH=00H——读键盘
=10H——读扩展键盘,可根据0000:0496H单元的内容判断:扩展键盘是否有效
出口参数:AH=键盘的扫描码
AL=字符的ASCII码
(2)、功能01H和11H
功能描述:读取键盘状态

入口参数:AH=01H——检查普通键盘
=11H——检查扩展键盘
出口参数:ZF=1——无字符输入,否则,AH=键盘的扫描码,AL=ASCII码。
(3)、功能02H和12H
功能描述:读取键盘标志

入口参数:AH=02H——普通键盘的移位标志
=12H——扩展键盘的移位标志
出口参数:AL=键盘标志(02H和12H都有效),其各位之值为1时的含义如下: 位7—INS开状态位3—ALT键按下
位6—CAPS
LOCK开状态位2—CTRL键按下
位5—NUM LOCK开状态位1—左SHIFT键按下
位4—SCROLL LOCK开状态位0—右SHIFT键按下
AH=扩展键盘的标志(12H有效),其各位之值为1时的含义如下:
位7—SysReq键按下位3—右ALT键按下
位6—CAPS
LOCK键按下位2—右CTRL键按下
位5—NUM LOCK键按下位1—左ALT键按下
位4—SCROLL键按下位0—左CTRL键按下

(4)、功能03H
功能描述:设置重复率

入口参数:AH=03H
对于PC/AT和PS/2:AL=05H
BH=重复延迟
BL=重复率
对于PCjr:AL=00H——装入缺省的速率和延迟
=01H——增加初始延迟
=02H——重复频率降低一半
=03H——增加延迟和降低一半重复频率
=04H——关闭键盘重复功能
出口参数:无
(5)、功能04H
功能描述:设置键盘点击

入口参数:AH=04H
AL=00H——关闭键盘点击功能
=01H——打开键盘点击功能 出口参数:无
(6)、功能05H
功能描述:字符及其扫描码进栈

入口参数:AH=05H
CH=字符的描述码
CL=字符的ASCII码
出口参数:CF=1——操作成功,AL=00H,否则,AL=01H
6、并行口服务(Parallel Port Service——INT 17H)
00H
—向打印机输出字符
01H —初始化打印机端口
02H —读取打印机状态
(1)、功能00H
功能描述:向打印机输出字符

入口参数:AH=00H
AL=输出的字符
DX=打印机号(0—LPT1,1—LPT2,2—LPT3,……)
出口参数:AH=打印机状态。其各位为1时的含义如下:
位7—打印机空闲 位3—I/O错误
位6—打印机响应位2—保留
位5—无纸位1—保留
位4—打印机被选位0—打印机超时

(2)、功能01H
功能描述:初始化打印机端口

入口参数:AH=01H
DX=打印机号(0—LPT1,1—LPT2,2—LPT3,……)
出口参数:AH=打印机状态。各位定义如下功能00H所示
(3)、功能02H
功能描述:读取打印机状态

入口参数:AH=02H
DX=打印机号(0—LPT1,1—LPT2,2—LPT3,……)
出口参数:AH=打印机状态。各位定义如下功能00H所示
7、时钟服务(Clock Service——INT 1AH)
00H —读取时钟“滴答”计数 01H
—设置时钟“滴答”计数
02H —读取时间
03H —设置时间
04H —读取日期
05H —设置日期 06H —设置闹钟 07H
—闹钟复位 0AH —读取天数计数 0BH —设置天数计数 80H
—设置声音源信息
(1)、功能00H
功能描述:读取时钟“滴答”计数

入口参数:AH=00H
出口参数:AL=00H——未过午夜,否则,表示已过午夜
CX:DX=时钟“滴答”计数
(2)、功能01H
功能描述:设置时钟“滴答”计数

入口参数:AH=01H
CX:DX=时钟“滴答”计数
出口参数:无
(3)、功能02H
功能描述:读取时间

入口参数:AH=02H
出口参数:CH=BCD码格式的小时
CL=BCD码格式的分钟
DH=BCD码格式的秒
DL=00H——标准时间,否则,夏令时
CF=0——时钟在走,否则,时钟停止
(4)、功能03H
功能描述:设置时间

入口参数:AH=03H
CH=BCD码格式的小时
CL=BCD码格式的分钟
DH=BCD码格式的秒
DL=00H——标准时间,否则,夏令时
出口参数:无
(5)、功能04H
功能描述:读取日期

入口参数:AH=04H
出口参数:CH=BCD码格式的世纪
CL=BCD码格式的年
DH=BCD码格式的月
DL=BCD码格式的日
CF=0——时钟在走,否则,时钟停止
(6)、功能05H
功能描述:设置日期

入口参数:AH=05H
CH=BCD码格式的世纪
CL=BCD码格式的年
DH=BCD码格式的月
DL=BCD码格式的日
出口参数:无
(7)、功能06H
功能描述:设置闹钟

入口参数:AH=06H
CH=BCD码格式的小时
CL=BCD码格式的分钟
DH=BCD码格式的秒
出口参数:CF=0——操作成功,否则,闹钟已设置或时钟已停止
(8)、功能07H
功能描述:闹钟复位

入口参数:AH=07H
出口参数:无
(9)、功能0AH
功能描述:读取天数计数,仅在PS/2有效,在此从略

(10)、功能0BH
功能描述:设置天数计数,仅在PS/2有效,在此从略

(11)、功能80H
功能描述:设置声音源信息

入口参数:AH=80H
AL=声音源
=00H——8253可编程计时器,通道2
=01H——盒式磁带输入
=02H——I/O通道上的"Audio
In"
=03H——声音产生芯片 出口参数:无

时间: 2024-08-09 22:00:12

INT 14H ~ INT 1AH (转)的相关文章

INT 14H (转)

(1).功能00H 功能描述:初始化通信口 入口参数:AH=00H DX=初始化通信口号(0=COM1,1=COM2,……) AL=初始化参数,参数的说明如下: 波特率奇偶位停止位字的位数 76543210 000 = 110X0 = None0 = 1 bit10 = 7 bits 001 = 15001 = Odd1 = 2 bits11 = 8 bits 010 = 30011 = Even 011 = 600 100 = 1200 101 = 2400 110 = 4800 111 =

write(byte[] b, int off, int len)

write(byte[] b, int off, int len)就是将数组 b 中的 len 个字节按顺序写入输出流. 所以如果 b 为 null,则抛出 NullPointerException. 如果 off 为负,或 len 为负,又或者 off+len 大于数组 b 的长度,则抛出 IndexOutOfBoundsException. 如果 len 为零,则不写入字节. 否则,首先写入字节 b[off],然后写入字节 b[off+1],依此类推:最后一个写入字节是 b[off+len-

(转载)深入解析unsigned int 和 int

就如同int a:一样,int 也能被其它的修饰符修饰.除void类型外,基本数据类型之前都可以加各种类型修饰符,类型修饰符有如下四种:1.signed----有符号,可修饰char.int.Int是默认有符号的.2.unsigned-----无符号,修饰int .char3.long------长型,修饰int .double4.short------短型,修饰int 我们主要来看一下signed和unsigned与int之间的联系与区别.什么叫做有符号,什么叫做无符号这个问题其实很简单,比如

Convert.ToInt32、(int)和int.Parse三者的区别

前者适合将object类类型转换成int类型,如Convert.ToInt32(session["shuzi"]); (int)适合简单数据类型之间的转换: int.Parse适合将string类类型转换成int类型,如int.Parse(session["shuzi"].ToString()). (1)这两个方法的最大不同是它们对null值的处理方法:    Convert.ToInt32(null)会返回0而不会产生任何异常,但int.Parse(null)则会

关于Bitmap.createBitmap(Bitmap source, int x, int y, int width, int height)这个方法

============问题描述============ Bitmap android.graphics.Bitmap.createBitmap(Bitmap source, int x, int y, int width, int height) 这个方法屌爆了,不会用 后面的四个参数到底啥意思啊 不是说截的是一个矩形的x,y,宽高吗/ 为何我传入这个: Bitmap bitmap = Bitmap.createBitmap(b1, 0, 20, b1.getWidth(), b1.getHe

35.按要求编写Java程序: (1)编写一个接口:InterfaceA,只含有一个方法int method(int n); (2)编写一个类:ClassA来实现接口InterfaceA,实现int method(int n)接口方 法时,要求计算1到n的和; (3)编写另一个类:ClassB来实现接口InterfaceA,实现int method(int n)接口 方法时,要求计算n的阶乘(n

  35.按要求编写Java程序: (1)编写一个接口:InterfaceA,只含有一个方法int method(int n): (2)编写一个类:ClassA来实现接口InterfaceA,实现int method(int n)接口方 法时,要求计算1到n的和: (3)编写另一个类:ClassB来实现接口InterfaceA,实现int method(int n)接口 方法时,要求计算n的阶乘(n!): (4)编写测试类E,在测试类E的main方法中使用接口回调的形式来测试实现 接口的类. p

int *const && int const * && const int *的区别

ANSIC允许声明常量,常量和变量不同,常量就是不可以改变的量,用关键字const来修饰 比如:const int a int const a 以上两种声明方式是一样的,我们不需要考虑const和int的先后顺序,按照你理解的方便的一中方式进行应用. 因为const和int的顺序先后并不影响结果,因此 int const *   &&  const int *这两中情况就是一样的 所以我们只需要讨论两种情况 -----------------------------------------

int *a; int &a; int & *a; int * &a 比较

int *&v1 == v1是一个引用,指针的引用,也就是说,这是传递进来指针的别名. int i=3; int *a = &i;//这里a是一个指针,它指向变量i int &b = i;//这里b是一个引用,它是变量i的引用. 可以理解为  b is now " in the name of"  i .i 有一绰号 b int * &c = a;//这里c是一个引用,它是指针a的引用 int & *d;//这里d是一个指针,它指向引用.看编译的

int main(int argc, char * argv[]) 里的异常处理

#import <UIKit/UIKit.h> #import "AppDelegate.h" int main(int argc, char * argv[]) { @autoreleasepool { @try { return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); } @catch (NSException *exception) { NSLog(@&qu