1,cmos简介。
   cmos是主板上一块可读写的RAM芯片。用途:主要用来保存当前系统的硬件配置和操作人员对某些参数的设定。cmos芯片是由一块纽扣电池供电。因此在关机状态内部信息也不会丢失。
----------------------------------------------------------------------------------------------
2,cmos所在的端口。
   cmos芯片是挂在cpu的io空间上的.(x86体系是独立编址的)。cmos拥有两个端口号分别是70h和71h

 端口号 权限   长度 作用 
 70h 不可读可写   8bit  用它来设置cmos中的数据地址
 71h  可读可写  8bit  用它来设置70h端口地址中的值

----------------------------------------------------------------------------------------------
3,cmos中的数据地址对照表。(供编程时查)

地址  数据 备注 
 00H  Time - Seconds  硬件时间的秒
 01H  Alarm - Seconds  
 02H  Time - Minutes  硬件时间的分
 03H  Alarm - Minutes  
 04H  Time - Hours  硬件时间的时
 05H  Alarm - Hours  
 06H  Date - Day of the week  
 07H  Date - Day  
 08H  Date - Month  
 09H  Date - Year 29h  
 0AH  Status Register A  
 0BH  Status Register B  
 0CH  Status Register C  
 0DH  Status Register D  
 0EH  Diagnostic Status  
 0FH  Shutdown Status  
 10H  A:  
 11H  Reserved  
 12H  0  
 13H  Reserved  
 14H  Equipment Installed  
 15H  Base Memory (high byte)  
 16H  Base memory (low byte)  
 17H  Extended Memory (high byte)  
 18H  Extended Memory (low byte)  
 19H  0 (C:) Hard Disk Type  
 1AH  1 (D:) Hard Disk Type  
 1BH  Reserved  
 1CH  Supervisor Password  
 1DH  Supervisor Password  
 1EH ~ 2DH  Reserved  
 2EH  CMOS Checksum (high byte)  
 2FH  CMOS Checksum (low byte)  
 30H  Extended Memory (high byte)  
 31H  Extended Memory (low byte)  
 32H  Date - Century  
 33H  Power On Status  
 34H~3FH  Reserved  
 40H~5FH  Extended CMOS  
 60H  User Password  
 61H  User Password  
 62H~7FH  Extended CMOS  
     

----------------------------------------------------------------------------------------------
4,对cmos编程实例(linux下读取cmos中的硬件时间,也可以在DOS下写汇编实现)

  1. #include <stdio.h>
  2. #include <sys/io.h>
  3. unsigned char cmos_read(unsigned char addr)
  4. {
  5. unsigned char tmp = 0;
  6. iopl(3);
  7. outb(addr,0x70);
  8. tmp = inb(0x71);
  9. iopl(0);
  10. return tmp;
  11. }
  12. int main(void)
  13. {
  14. printf("seconds = %x\n",cmos_read(0));
  15. printf("minute = %x\n",cmos_read(2));
  16. printf("hour = %x\n",cmos_read(4));
  17. system("date");
  18. return 0;
  19. }

运行结果如下:

思考:为什么此时cmos中的时间分钟秒钟和系统时间相同,而唯独小时相差8个小时呢?
           这问题涉及到UTC和时区的问题了。北京时间=UTC+8
----------------------------------------------------------------------------------------------
5,bios简介
              bios又称为基本输入输出系统。是主板上的一个ROM芯片。主要保存着基本输入输出程序,系统
信息设置,开机上电自检程序和系统启动自举程序等。
----------------------------------------------------------------------------------------------
6,bios和cmos的区别与联系?
   我用个比喻吧,bios相当于“代码段”,cmos相当于“数据段”。
     6.1,bios是只读,cmos既可以读也可以写。(区别)
     6.2, BIOS中的系统设置程序是完成CMOS参数设置的手段;
             CMOSRAM既是BIOS设定系统参数的存放场所。(联系)
----------------------------------------------------------------------------------------------
7,bios程序实现的基本功能。
         一是BIOS中断服务程序,即微机系统中软件与硬件之间的一个可编程接口,主要用于 程序软件功能
与微机硬件之间实现衔接。操作系统对软盘、硬盘、光驱、键盘、显示器等外围设备的管理,都是直接建立
在BIOS系统中断服务程序的基础上,操 作人员也可以通过访问INT5、INT13等中断点而直接调用BIOS中断
服务程序。
         二是BIOS系统设置程序,前面谈到微机部件配置记录是放在一块可读 写的CMOSRAM芯片中的,
主要保存着系统基本情况、CPU特性、软硬盘驱动器、显示器、键盘等部件的信息。在BIOSROM芯片中装
有“系统设置程 序”,主要用来设置CMOSRAM中的各项参数。这个程序在开机时按下某个特定键即可进入
设置状态,并提供了良好的界面供操作人员使用。事实上,这个设置 CMOS参数的过程,习惯上也称为“
BIOS设置”。
         第三是POST上电自检程序,微机按通电源后,系统首先由 POST(PowerOnSelfTest,上电自检)程序
来对内部各个设备进行检查。通常完整的POST自检将包括对CPU、640K基本内存、1M以 上的扩展内存、
ROM、主板、CMOS存贮器、串并口、显示卡、软硬盘子系统及键盘进行测试,一旦在自检中发现问题,系
统将给出提示信息或鸣笛警告。
         第四 为BIOS系统启动自举程序,系统在完成POST自检后,ROMBIOS就首先按照系统CMOS设置中
保存的启动顺序搜寻软硬盘驱动器及CD—ROM、网 络服务器等有效地启动驱动器,读入操作系统引导记录,
然后将系统控制权交给引导记录,并由引导记录来完成系统的顺利启动。
----------------------------------------------------------------------------------------------
8,思考问题。
        8.1,bios是挂在cpu的哪个空间上?而cmos又是挂在cpu的哪个空间上?
        8.2,cmos上应该会保存哪些基本信息?
        8.3,为什么把BIOS称作基本输入输出系统?

----------------------------------------------------------------------------------------------

BIOS中断大全

BIOS中断:
1、显示服务(Video Service——INT 10H)

 
00H —设置显示器模式0CH —写图形象素
01H —设置光标形状0DH —读图形象素
02H —设置光标位置0EH —在Teletype模式下显示字符
03H —读取光标信息0FH —读取显示器模式
04H —读取光笔位置10H —颜色
05H —设置显示页11H —字体
06H、07H —初始化或滚屏12H —显示器的配置
08H —读光标处的字符及其属性13H —在Teletype模式下显示字符串
09H —在光标处按指定属性显示字符1AH —读取/设置显示组合编码
0AH —在当前光标处显示字符1BH —读取功能/状态信息
0BH —设置调色板、背景色或边框1CH —保存/恢复显示器状态
(1)、功能00H
功能描述:设置显示器模式
入口参数:AH=00H
AL=显示器模式,见下表所示
出口参数:无
可用的显示模式如下所列: 
显示模式显示模式属性显示模式显示模式属性
00H40×2516色 文本01H40×2516色 文本
02H80×2516色 文本03H80×2516色 文本
04H320×2004色05H320×2004色
06H640×2002色07H80×252色 文本
08H160×20016色09H320×20016色
0AH640×2004色0BH保留 
0CH保留0DH320×20016色
0EH640×20016色0FH640×3502(单色)
10H640×3504色10H640×35016色
11H640×4802色12H640×48016色
13H640×480256色
对于超级VGA显示卡,我们可用AX=4F02H和下列BX的值来设置其显示模式。 
BX显示模式属性BX显示模式属性
100H640×400256色101H640×480256色
102H800×60016色103H800×600256色
104H1024×76816色105H1024×768256色
106H1280×102416色107H1280×1024256色
108H80×60文本模式109H132×25文本模式
10AH132×43文本模式10BH132×50文本模式
10CH132×60文本模式
(2)、功能01H 
功能描述:设置光标形状
入口参数:AH=01H
CH低四位=光标的起始行
CL低四位=光标的终止行
出口参数:无
(3)、功能02H 
功能描述:用文本坐标下设置光标位置
入口参数:AH=02H           
BH=显示页码
DH=行(Y坐标)
DL=列(X坐标)
出口参数:无

实例:

  1. ;---------------------------------------------------------
  2. mov ah, 2
  3. mov dx, 0
  4. int 10h
  5. ;----------------------------------------------------------

(4)、功能03H 
功能描述:在文本坐标下,读取光标各种信息
入口参数:AH=03H
BH=显示页码
出口参数:CH=光标的起始行
CL=光标的终止行
DH=行(Y坐标)
DL=列(X坐标)
实例:(换行)

  1. ;---------------------------------------------------------------------
  2. ; Move the cursor to the next line.
  3. Nextline:
  4. ; Get cursor
  5. mov ah, 3
  6. mov bh, 0
  7. int 10h;读取目前的光标信息。dh=行号,dl=列号
  8. mov ah, 2
  9. inc dh;将当前行号加1,列号置0
  10. mov dl, 0
  11. int 10h
  12. ret
  13. ;---------------------------------------------------------------------

(5)、功能04H 
功能描述:获取当前状态和光笔位置
入口参数:AH=04H
出口参数:AH=00h——光笔未按下/未触发,01h——光笔已按下/已触发
BX=象素列(图形X坐标)
CH=象素行(图形Y坐标,显示模式:04H~06H)
CX=象素行(图形Y坐标,显示模式:0DH~10H)
DH=字符行(文本Y坐标)
DL=字符列(文本X坐标)
(6)、功能05H 
功能描述:设置显示页,即选择活动的显示页
入口参数:AH=05H
AL=显示页
对于CGA、EGA、MCGA和VGA,其显示页如下表所列: 模式页数显示器类型
00H、01H0~7CGA、EGA、MCGA、VGA
02H、03H0~3CGA
02H、03H0~7EGA、MCGA、VGA
07H0~7EGA、VGA
0DH0~7EGA、VGA
0EH0~3EGA、VGA
0FH0~1EGA、VGA
10H0~1EGA、VGA
对于PCjr:
AL=80H——读取CRT/CPU页寄存器
81H——设置CPU页寄存器
82H——设置CRT页寄存器
83H——设置CRT/CPU页寄存器
BH=CRT页(子功能号82H和83H)
BL=CPU页(子功能号81H和83H)
出口参数:对于前者,无出口参数,但对PCjr在子功能80H~83H调用下,有:BH=CRT页寄存器,BL=CPU页寄存器
(7)、功能06H和07H 
功能描述:初始化屏幕或滚屏
入口参数:AH=06H——向上滚屏,07H——向下滚屏
AL=滚动行数(0——清窗口)
BH=空白区域的缺省属性
(CH、CL)=窗口的左上角位置(Y坐标,X坐标)
(DH、DL)=窗口的右下角位置(Y坐标,X坐标)
出口参数:无
实例:

  1. ;---------------------------------------------------------
  2. ; Clear the screen
  3. mov ax, 0600h
  4. mov bx, 0700h
  5. mov cx, 0
  6. mov dx, 0ffffh
  7. int 10h

(8)、功能08H 
功能描述:读光标处的字符及其属性
入口参数:AH=08H
BH=显示页码
出口参数:AH=属性
AL=字符
(9)、功能09H 
功能描述:在当前光标处按指定属性显示字符
入口参数:AH=09H
AL=字符
BH=显示页码
BL=属性(文本模式)或颜色(图形模式)
CX=重复输出字符的次数
出口参数:无
(10)、功能0AH 
功能描述:在当前光标处按原有属性显示字符
入口参数:AH=0AH
AL=字符
BH=显示页码
BL=颜色(图形模式,仅适用于PCjr)
CX=重复输出字符的次数
出口参数:无
(11)、功能0BH 
功能描述:设置调色板、背景色或边框
入口参数:AH=0BH
设置颜色:BH=00H,BL=颜色
选择调色板:BH=01H,BL=调色板(320×200、4种颜色的图形模式)
出口参数:无
(12)、功能0CH 
功能描述:写图形象素
入口参数:AH=0CH
AL=象素值
BH=页码
(CX、DX)=图形坐标列(X)、行(Y)
出口参数:无
(13)、功能0DH 
功能描述:读图形象素
入口参数:AH=0DH
BH=页码
(CX、DX)=图形坐标列(X)、行(Y)
出口参数:AL=象素值
(14)、功能0EH 
功能描述:在Teletype模式下显示字符
入口参数:AH=0EH
AL=字符
BH=页码
BL=前景色(图形模式)
出口参数:无
(15)、功能0FH 
功能描述:读取显示器模式
入口参数:AH=0FH
出口参数:AH=屏幕字符的列数
AL=显示模式(参见功能00H中的说明)
BH=页码
(16)、功能10H 
功能描述:颜色中断。其子功能说明如下: 功能号 子功能名称功能号 子功能名称
00H — 设置调色板寄存器01H — 设置边框颜色
02H — 设置调色板和边框03H — 触发闪烁/亮显位
07H — 读取调色板寄存器08H — 读取边框颜色
09H — 读取调色板和边框10H — 设置颜色寄存器
12H — 设置颜色寄存器块13H — 设置颜色页状态
15H — 读取颜色寄存器17H — 读取颜色寄存器块
1AH — 读取颜色页状态1BH — 设置灰度值
(17)、功能11H 
功能描述:字体中断。其子功能说明如下: 子功能号子功能名称
00H装入用户字体和可编程控制器
10H装入用户字体和可编程控制器
01H装入8×14 ROM字体和可编程控制器
11H装入8×14 ROM字体和可编程控制器
02H装入8×8 ROM字体和可编程控制器
12H装入8×8 ROM字体和可编程控制器
03H设置块指示器
04H装入8×16 ROM字体和可编程控制器
14H装入8×16 ROM字体和可编程控制器
20H设置INT 1Fh字体指针
21H为用户字体设置INT 43h
22H为8×14 ROM字体设置INT 43H
23H为8×8 ROM字体设置INT 43H
24H为8×16 ROM字体设置INT 43H
30H读取字体信息
(18)、功能12H 
功能描述:显示器的配置中断。其子功能说明如下: 功能号 功能名称 功能号 功能名称
10H — 读取配置信息20H — 选择屏幕打印
30H — 设置扫描行31H — 允许/禁止装入缺省调色板
32H — 允许/禁止显示33H — 允许/禁止灰度求和
34H — 允许/禁止光标模拟35H — 切换活动显示
36H — 允许/禁止屏幕刷新
(19)、功能13H 
功能描述:在Teletype模式下显示字符串
入口参数:AH=13H
BH=页码
BL=属性(若AL=00H或01H)
CX=显示字符串长度
(DH、DL)=坐标(行、列)
ES:BP=显示字符串的地址 AL=显示输出方式
0——字符串中只含显示字符,其显示属性在BL中。显示后,光标位置不变
1——字符串中只含显示字符,其显示属性在BL中。显示后,光标位置改变
2——字符串中含显示字符和显示属性。显示后,光标位置不变
3——字符串中含显示字符和显示属性。显示后,光标位置改变
出口参数:无
实例:

  1. ;---------------------------------------------------------------------
  2. ; Print a string.
  3. ; ax : The address of string
  4. ; cx : The length of string
  5. Print:
  6. ; Print things by BIOS interrupt No.16
  7. mov bp, ax
  8. mov ax, 01301h
  9. mov bx, 07h
  10. mov dl, 0
  11. int 10h
  12. ret
  13. ;---------------------------------------------------------------------

(20)、功能1AH 
功能描述:读取/设置显示组合编码,仅PS/2有效,在此从略
(21)、功能1BH 
功能描述:读取功能/状态信息,仅PS/2有效,在此从略
(22)、功能1CH 
功能描述:保存/恢复显示器状态,仅PS/2有效,在此从略

2、直接磁盘服务(Direct Disk Service——INT 13H)

 00H —磁盘系统复位0EH —读扇区缓冲区
01H —读取磁盘系统状态0FH —写扇区缓冲区
02H —读扇区10H —读取驱动器状态
03H —写扇区11H —校准驱动器
04H —检验扇区12H —控制器RAM诊断
05H —格式化磁道13H —控制器驱动诊断
06H —格式化坏磁道14H —控制器内部诊断
07H —格式化驱动器15H —读取磁盘类型
08H —读取驱动器参数16H —读取磁盘变化状态
09H —初始化硬盘参数17H —设置磁盘类型
0AH —读长扇区18H —设置格式化媒体类型
0BH —写长扇区19H —磁头保护
0CH —查寻1AH —格式化ESDI驱动器
0DH —硬盘系统复位
(1)、功能00H
功能描述:磁盘系统复位
入口参数:AH=00H
DL=驱动器,00H~7FH:软盘;80H~0FFH:硬盘
出口参数:CF=0——操作成功,AH=00H,否则,AH=状态代码,参见功能号01H中的说明
(2)、功能01H 
功能描述:读取磁盘系统状态
入口参数:AH=01H
DL=驱动器,00H~7FH:软盘;80H~0FFH:硬盘
出口参数:AH=00H,AL=状态代码,其定义如下:
00H — 无错 01H — 非法命令
02H — 地址目标未发现03H — 磁盘写保护(软盘)
04H — 扇区未发现05H — 复位失败(硬盘)
06H — 软盘取出(软盘)07H — 错误的参数表(硬盘)
08H — DMA越界(软盘)09H — DMA超过64K界限
0AH — 错误的扇区标志(硬盘)0BH — 错误的磁道标志(硬盘)
0CH — 介质类型未发现(软盘)0DH — 格式化时非法扇区号(硬盘)
0EH — 控制数据地址目标被发现(硬盘)0FH — DMA仲裁越界(硬盘)
10H — 不正确的CRC或ECC编码11H — ECC校正数据错(硬盘)
 CRC:Cyclic Redundancy Check code
 ECC:Error Checking & Correcting code
20H — 控制器失败40H — 查找失败
80H — 磁盘超时(未响应)AAH — 驱动器未准备好(硬盘)
BBH — 未定义的错误(硬盘)CCH — 写错误(硬盘)
E0H — 状态寄存器错(硬盘)FFH — 检测操作失败(硬盘)
(3)、功能02H 
功能描述:读扇区
入口参数:AH=02H
AL=扇区数
CH=柱面
CL=扇区
DH=磁头
DL=驱动器,00H~7FH:软盘;80H~0FFH:硬盘
ES:BX=缓冲区的地址
出口参数:CF=0——操作成功,AH=00H,AL=传输的扇区数,否则,AH=状态代码,参见功能号01H中的说明
实例:

  1. ; Copy the loader from floppy to memory.
  2. CopyLoaderToMem:
  3. mov dx, 0h
  4. mov cx, 02h
  5. mov bx, End
  6. mov ax, 0200h + LoaderLength
  7. int 13h
  8. jnc End;加载成功将跳转到End
  9. ; If failed, return.
  10. ret

(4)、功能03H 
功能描述:写扇区
入口参数:AH=03H
AL=扇区数
CH=柱面
CL=扇区
DH=磁头
DL=驱动器,00H~7FH:软盘;80H~0FFH:硬盘
ES:BX=缓冲区的地址
出口参数:CF=0——操作成功,AH=00H,AL=传输的扇区数,否则,AH=状态代码,参见功能号01H中的说明
(5)、功能04H 
功能描述:检验扇区
入口参数:AH=04H
AL=扇区数
CH=柱面
CL=扇区
DH=磁头
DL=驱动器,00H~7FH:软盘;80H~0FFH:硬盘
ES:BX=缓冲区的地址
出口参数:CF=0——操作成功,AH=00H,AL=被检验的扇区数,否则,AH=状态代码,参见功能号01H中的说明
(6)、功能05H 
功能描述:格式化磁道
入口参数:AH=05H
AL=交替(Interleave)
CH=柱面
DH=磁头
DL=驱动器,00H~7FH:软盘;80H~0FFH:硬盘
ES:BX=地址域列表的地址
出口参数:CF=0——操作成功,AH=00H,否则,AH=状态代码,参见功能号01H中的说明
(7)、功能06H 
功能描述:格式化坏磁道
入口参数:AH=06H
AL=交替
CH=柱面
DH=磁头
DL=80H~0FFH:硬盘
ES:BX=地址域列表的地址
出口参数:CF=0——操作成功,AH=00H,否则,AH=状态代码,参见功能号01H中的说明
(8)、功能07H 
功能描述:格式化驱动器
入口参数:AH=07H
AL=交替
CH=柱面
DL=80H~0FFH:硬盘
出口参数:CF=0——操作成功,AH=00H,否则,AH=状态代码,参见功能号01H中的说明
(9)、功能08H 
功能描述:读取驱动器参数
入口参数:AH=08H
DL=驱动器,00H~7FH:软盘;80H~0FFH:硬盘
出口参数:CF=1——操作失败,AH=状态代码,参见功能号01H中的说明,否则, BL=01H — 360K
=02H — 1.2M
=03H — 720K
=04H — 1.44M
CH=柱面数的低8位
CL的位7-6=柱面数的该2位
CL的位5-0=扇区数
DH=磁头数
DL=驱动器数
ES:DI=磁盘驱动器参数表地址
(10)、功能09H 
功能描述:初始化硬盘参数
入口参数:AH=09H
DL=80H~0FFH:硬盘(还有有关参数表问题,在此从略)
出口参数:CF=0——操作成功,AH=00H,否则,AH=状态代码,参见功能号01H中的说明
(11)、功能0AH 
功能描述:读长扇区,每个扇区随带四个字节的ECC编码
入口参数:AH=0AH
AL=扇区数
CH=柱面
CL=扇区
DH=磁头
DL=80H~0FFH:硬盘
ES:BX=缓冲区的地址
出口参数:CF=0——操作成功,AH=00H,AL=传输的扇区数,否则,AH=状态代码,参见功能号01H中的说明
(12)、功能0BH 
功能描述:写长扇区,每个扇区随带四个字节的ECC编码
入口参数:AH=0BH
AL=扇区数
CH=柱面
CL=扇区
DH=磁头
DL=80H~0FFH:硬盘
ES:BX=缓冲区的地址
出口参数:CF=0——操作成功,AH=00H,AL=传输的扇区数,否则,AH=状态代码,参见功能号01H中的说明
(13)、功能0CH 
功能描述:查寻
入口参数:AH=0CH
CH=柱面的低8位
CL(7-6位)=柱面的高2位
DH=磁头
DL=80H~0FFH:硬盘
出口参数:CF=0——操作成功,AH=00H,否则,AH=状态代码,参见功能号01H中的说明
(14)、功能0DH 
功能描述:硬盘系统复位
入口参数:AH=0DH
DL=80H~0FFH:硬盘
出口参数:CF=0——操作成功,AH=00H,否则,AH=状态代码,参见功能号01H中的说明
(15)、功能0EH 
功能描述:读扇区缓冲区
入口参数:AH=0EH
ES:BX=缓冲区的地址
出口参数:CF=0——操作成功,否则,AH=状态代码,参见功能号01H中的说明
(16)、功能0FH 
功能描述:写扇区缓冲区
入口参数:AH=0FH
ES:BX=缓冲区的地址
出口参数:CF=0——操作成功,否则,AH=状态代码,参见功能号01H中的说明
(17)、功能10H 
功能描述:读取驱动器状态
入口参数:AH=10H
DL=80H~0FFH:硬盘
出口参数:CF=0——操作成功,AH=00H,否则,AH=状态代码,参见功能号01H中的说明
(18)、功能11H 
功能描述:校准驱动器
入口参数:AH=11H
DL=80H~0FFH:硬盘
出口参数:CF=0——操作成功,AH=00H,否则,AH=状态代码,参见功能号01H中的说明
(19)、功能12H 
功能描述:控制器RAM诊断
入口参数:AH=12H
出口参数:CF=0——操作成功,否则,AH=状态代码,参见功能号01H中的说明
(20)、功能13H 
功能描述:控制器驱动诊断
入口参数:AH=13H
出口参数:CF=0——操作成功,否则,AH=状态代码,参见功能号01H中的说明
(21)、功能14H 
功能描述:控制器内部诊断
入口参数:AH=14H
出口参数:CF=0——操作成功,否则,AH=状态代码,参见功能号01H中的说明
(22)、功能15H 
功能描述:读取磁盘类型
入口参数:AH=15H
DL=驱动器,00H~7FH:软盘;80H~0FFH:硬盘
出口参数:CF=1——操作失败,AH=状态代码,参见功能号01H中的说明, 否则,AH=00H — 未安装驱动器
=01H — 无改变线支持的软盘驱动器
=02H — 带有改变线支持的软盘驱动器
=03H — 硬盘,CX:DX=512字节的扇区数
(23)、功能16H 
功能描述:读取磁盘变化状态
入口参数:AH=16H
DL=00H~7FH:软盘
出口参数:CF=0——磁盘未改变,AH=00H,否则,AH=06H,参见功能号01H中的说明
(24)、功能17H 
功能描述:设置磁盘类型
入口参数:AH=17H
DL=00H~7FH:软盘 AL=00H — 未用
=01H — 360K在360K驱动器中
=02H — 360K在1.2M驱动器中
=03H — 1.2M在1.2M驱动器中
=04H — 720K在720K驱动器中
出口参数:CF=0——操作成功,AH=00H,否则,AH=状态编码,参见功能号01H中的说明
(25)、功能18H 
功能描述:设置格式化媒体类型
入口参数:AH=18H
CH=柱面数
CL=每磁道的扇区数
DL=00H~7FH:软盘
出口参数:CF=0——操作成功,AH=00H,ES:DI=介质类型参数表地址,否则,AH=状态编码,参见功能号01H中的说明
(26)、功能19H 
功能描述:磁头保护,仅在PS/2中有效,在此从略
(27)、功能1AH 
功能描述:格式化ESDI驱动器,仅在PS/2中有效,在此从略

3、串行口服务(Serial Port Service——INT 14H) 
00H —初始化通信口03H —读取通信口状态
01H —向通信口输出字符04H —扩充初始化通信口
02H —从通信口读入字符
(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 —开盒式磁带机马达85H —系统请求(SysReq)键
01H —关盒式磁带机马达86H —延迟
02H —读盒式磁带机87H —移动扩展内存块
03H —写盒式磁带机88H —读取扩展内存大小
0FH —格式化ESDI驱动器定期中断89H —进入保护模式
21H —读/写自检(POST)错误记录90H —设备等待
4FH —键盘截听91H —设备加电自检
80H —设备打开C0H —读取系统环境
81H —设备关闭C1H —读取扩展BIOS数据区地址
82H —进程终止C2H —鼠标图形
83H —事件等待C3H —设置WatcHdog超时
84H —读游戏杆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 —从键盘读入字符03H —设置重复率
01H、11H —读取键盘状态04H —设置键盘点击
02H, 12H —读取键盘标志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 —读取时钟“滴答”计数06H —设置闹钟
01H —设置时钟“滴答”计数07H —闹钟复位
02H —读取时间0AH —读取天数计数
03H —设置时间0BH —设置天数计数
04H —读取日期 80H —设置声音源信息 
05H —设置日期
(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——声音产生芯片
出口参数:无
8、直接系统服务(Direct System Service) 
INT 00H —“0”作除数
INT 01H —单步中断
INT 02H —非屏蔽中断(NMI)
INT 03H —断点中断
INT 04H —算术溢出错误
INT 05H —打印屏幕和BOUND越界
INT 06H —非法指令错误
INT 07H —处理器扩展无效
INT 08H —时钟中断
INT 09H —键盘输入
INT 0BH —通信口(COM2:)
INT 0CH —通信口(COM1:)
INT 0EH —磁盘驱动器输入/输出
INT 11H —读取设备配置
INT 12H —读取常规内存大小(返回值AX为内存容量,以K为单位)
INT 18H —ROM BASIC
INT 19H —重启动系统
INT 1BH —CTRL+BREAK处理程序
INT 1CH —用户时钟服务
INT 1DH —指向显示器参数表指针
INT 1EH —指向磁盘驱动器参数表指针
INT 1FH —指向图形字符模式表指针

cmos 和 bios中断大全相关推荐

  1. BIOS中断大全:“INT 10H ~ INT 1AH”

    BIOS中断: 1.显示服务(Video Service--INT 10H) 00H -设置显示器模式 01H -设置光标形状 02H -设置光标位置 03H -读取光标信息 04H -读取光笔位置 ...

  2. BIOS中断大全(表格)

    中断号 功能 参数 1.显示服务(Video Service--INT 10H) 00H -设置显示器模式 (1).功能00H 功能描述:设置显示器模式 入口参数:AH=00H AL=显示器模式,见下 ...

  3. BIOS中断相关资料和应用

    debug命令直接修改彩色显示器的显示缓冲区 http://blog.chinaunix.net/uid-20423564-id-1949376.html 本文演示如何用debug命令直接修改彩色显示 ...

  4. BIOS和DOS中断大全

    中断INT 21H : 1.字符功能调用类(Character-Oriented Function) 01H.07H和08H -从标准输入设备输入字符 02H -字符输出 03H -辅助设备的输入 0 ...

  5. BIOS知识大全(转)

    BIOS知识大全(转)[@more@]包括以下内容:BIOS简介BIOS与CMOS的区别BIOS自检响铃含义利用BIOS-ID获得主板的信息(AWARD篇)利用BIOS-ID获得主板的信息(AMI篇) ...

  6. ad19pcb设置恢复默认_电脑主板BIOS设置详解BIOS知识大全

    电脑主板BIOS设置详解-BIOS知识大全 什么是电脑BIOS,一般电脑主板都设置了电脑开机后一直按着Del键即可进入BIOS. 系统开机启动 BIOS,即微机的基本输入输出系统(Basic Inpu ...

  7. 联想涉密专用计算机密码,清除BIOS密码大全(适用于联想全系列笔记本)

    清除BIOS密码大全(适用于联想全系列笔记本) 互联网   发布时间:2008-11-28 22:29:42   作者:佚名   我要评论 昭阳笔记本电脑密码清除方法清除密码的工具:并口环路制作电路图 ...

  8. 利用BIOS 中断INT 0x10显示字符和字符串

    注:以下程序系原创,使用AT&T格式汇编来调用BIOS 0x10中断,如有错误,欢迎指正.表达能力较差,写的不好,但若能帮助一二访客,幸甚. 使用BIOS 显示服务(Video Service ...

  9. CMOS与BIOS的区别

    CMOS是互补金属氧化物半导化的缩写.本意是指制造大规模集成电路芯片用的一种技术或用这种技术制造出来的芯片.其实,在这里是指主板上一块可读写的存储芯片.它存储了微机系统的时钟信息和硬件配置信息等,共计 ...

最新文章

  1. MySQL/InnoDB中,乐观锁、悲观锁、共享锁、排它锁、行锁、表锁、死锁概念的理解
  2. MapReduce编程实例之自定义分区
  3. 小谈EntityFramwork Code First实体更新后的数据库处理
  4. swing查询输入框无值时出现null异常_如何优雅处理代码中 Null 值引起的 Bug?告别 Null 恐惧症!...
  5. 制定数据丢失防范策略的六个要点
  6. node --- 监听文件变化(静态、动态、子进程)
  7. POJ 1258 Agri-Net (最小生成树)
  8. Iptables-Fail2ban处理bind 非法***
  9. ES查询-基本查询续
  10. 排名怎么查_常见客户SEO问题解答:网站降权了应该怎么处理?
  11. socket 编程入门教程(五)UDP原理:4、“有连接”的UDP
  12. 国内maven镜像,快的飞起
  13. SQL Server 2008 允许远程连接的解决方法
  14. Mac OS X 下 U盘安装盘简易制作教程
  15. ad18 bell封装_Altium 中异形焊盘异形封装的创建图文教程
  16. STM8停产,新唐的N76E003 pin对pin替换STM8S003F3P6
  17. 三点共线判断方法分析
  18. html选择弹出列表实例,CSS3制作炫酷的下拉菜单及弹起式选单的实例分享
  19. 自用笔记17——泰波那契数列
  20. 无线室内定位系统和技术在地下采矿中的应用综述2021Applications of Wireless Indoor Positioning Systems and Technologies in U

热门文章

  1. Python读取PDF内容
  2. 2013年7月12日“修复 Migration 测试发现的 Bug”
  3. 如何定一个合适的目标
  4. 转:FMS 3.5之Hello World!
  5. Screen OS 6.0 学习笔记一
  6. 需要注意的小问题------闹的笑话
  7. go 实现 kafka 消息发送、接收
  8. Redis进阶实践之五Redis的高级特性
  9. Redis list 之增删改查
  10. 蓝牙Bluetooth技术小知识