发信人: kingfox()
整理人: yangcs(1999-12-12 11:52:57), 站内信件
|
中断大全(三)
---------------------------------------------------------------------- ----------
--------C-04---------------------------------
INT 04 C - CPU产生 - 检测到INTO溢出
描述 如果OF标志置位,INTO指令将产生这个中断;否则,INTO相当于一条NOP指 令。
注释 可以被方便地用于代替JO或者JNO/JMP组合来进行溢出检查(防止错误传递)
参见 INT 00"CPU",操作码 "AAD",操作码 "AAM"
---------------------------------------------------------------------- ----------
--------B-05---------------------------------
INT 05 - 屏幕打印
描述 将当前文本屏幕内容发送到打印机上
注释 通常是在PrtSc键安下的时候由INT 09捕获程序激活,不过也可以由应用程 序直接激活。
0050h:0000h得字节包含缺省打印机用到的状态:
00h 未激活
01h PrtSc正在处理当中
ffh 上一次的PrtSc发生错误
在IBM PC和100%兼容的BIOSes中,缺省的捕获程序位于F000:FF54h
由于BOUND指令也调用INT 05,但是将控制返回给BOUND指令,一次失败的BOUND检 查会导致PrtSc得无限循环,除非INT 05捕获程序明白这个问题,并且检查是否该 中断是由BOUND指令激活。
Bugs 某些旧的BIOSes/应用程序可能会在返回的时候破坏BP的值
参见 INT 10/AH=12h/BL=20h,INT 4A"Tandy 2000",INT 5E"TI Professional"
INT 80"Phar Lap"
---------------------------------------------------------------------- ----------
--------C-05---------------------------------
INT 05 C - CPU产生(80186以上BOUND越界
描述 当被BOUND指令测试的值小雨制定的下限或者大于上限的时候,会发生该中 断
注释 从这个中断返回之后会重新执行失败的BOUND指令
参见
---------------------------------------------------------------------- ----------
--------P-05454A-----------------------------
INT 05 U - PSPS v2.01 - 弹出纸张
参数 AX = 454Ah ('EJ')
程序 PSPS是一个PostScript屏幕打印程序共享软件
注释 发送Ctrl-D到当前打印机
参见 AX=4E57h,AX=5053h,AX=554Eh
---------------------------------------------------------------------- ----------
--------P-054E57-----------------------------
INT 05 U - PSPS v2.01 - 设置参数
参数 AX = 4E57h ('NW')
ES:SI -> 包含新设置的11字节缓冲区
返回值 被填充的缓冲区
注释
参见 AX=454Ah,AX=5053h,INT 17/AH=63h
---------------------------------------------------------------------- ----------
--------P-055053-----------------------------
INT 05 U - PSPS v2.01 - 获取参数
参数 AX = 5053h ('PS')
ES:SI -> 包含当前设置的11字节缓冲区
返回值 被填充的缓冲区
注释
参见 AX=4E57h,AX=554Eh,INT 17/AH=64h
---------------------------------------------------------------------- ----------
--------P-05554E-----------------------------
INT 05 U - PSPS v2.01 - 从内存中移除
参数 AX = 554Eh ('UN')
参见 AX=454Ah,AX=4E57h,INT 17/AH=62h
---------------------------------------------------------------------- ----------
--------C-06---------------------------------
INT 06 C - CPU产生(80286+) - 无效的操作码
描述 当CPU企图执行一条无效的操作码(大部分保护模式指令在实模式之下都被认 为是无效的)或者BOUND、LDS、LES、LIDT指令指定了一个寄存器而不是内存地址 的时候会触发该中断。
注释 返回地址指向无效指令的开始。这个中断可以被用来模拟不存在的指令。很 多386 BIOSes在LOCK前缀用于除了BTS、BTR、BTC、XCHG、XADD(486)、CMPXCHG( 486)、INC、DEC、NOT、NEG、ADD、ADC、SUB、SBB、AND、OR、XOR或者任何不访 问内存的指令之外的指令的时候,模拟由80386+生成的80286未公开的LOADALL指 令(该指令在80386+已经不存在)。
参见 INT 0C"CPU",INT 0D"CPU"
---------------------------------------------------------------------- ----------
--------b-06---------------------------------
INT 06 C - HP 95LX - 睡眠/唤醒
描述 该中断只是在进入轻度/深度休眠(关机)之前和从休眠状态唤醒之后调用
参见 INT 0B"HP 95LX",INT 15/AX=4DD4h,INT 15/AH=4Eh
---------------------------------------------------------------------- ----------
--------V-06---------------------------------
INT 06 U - 未命名的Clone - 图形字符表(并非中断向量)
描述 指向当前字体的字符00h-7fh的图形数据
参见 INT 43"EGA",INT 44"VIDEO"
---------------------------------------------------------------------- ----------
--------C-07---------------------------------
INT 07 C - CPU-产生(80286+) - 处理器扩展不可用
描述 如果在没有协处理器的时候遇到了协处理器指令,则自动触发该中断
注释 可以用于软件仿真数学协处理器
参见 INT 09"CPU"
---------------------------------------------------------------------- ----------
--------H-08---------------------------------
INT 08 C - IRQ0 - 系统定时器
描述 由8254系统定时器通道0生成18.2次/秒中断,这个中断用于随时修改日时钟
注释 需要被触发的程序应该使用INT 1Ch除非它们需要对定时器重新编程,但是 这是仍旧要保证日时钟按照正确的速率刷新。
在IBM PC和100%兼容的BIOSes中,缺省的捕获程序位于F000:FEA5。
该中断可以通过设置I/O端口21h的bit-0屏蔽。
参见 INT 1C,INT 4A"SYSTEM",INT 50"DESQview",INT 58"DoubleDOS",INT 70"I RQ8"
INT 78"GO32",INT D8"Screen Thief",MEM 0040h:0040h,MEM 0040h:006Ch
---------------------------------------------------------------------- ----------
--------C-08---------------------------------
INT 08 C - CPU-产生(80286+) - 检测到多个异常
描述 当同一指令产生多个异常或者在一个异常捕获程序中又发生了异常的时候触 发该中断
注释 如果一个上述中断向量表定义限制之外的中断发生的话,在保护模式触发该 中断(called in protected mode if an interrupt above the defined limit of the interrupt vector table occurs)
返回地址指向发生错误的指令或者当导致异常的外部中断发生的时候将要执行的 指令的开始地址
如果在多错误捕获程序中发生了异常,CPU转入SHUTDOWN模式(在PC/AT中该线路变 为一个reset信号)
这个“三次错误”在很多80286机器上是一种比标准的用键盘控制器复位更快的返 回时模式的方法。
参见
---------------------------------------------------------------------- ----------
--------H-09---------------------------------
INT 09 C - IRQ1 - 键盘数据就绪
描述 当从键盘收到书局的时候会触发该中断。这通常会是一个扫描码(要么是按 下键,要么是放开键),但也可以是AT键盘命令的ACK或者NAK应答。
注释 这个中断可以通过设置端口21h的bit-1屏蔽。如果BIOS支持增强型键盘(10 1/102键),则在从键盘读到扫描码(参见表00006)之后和回到以后的处理之前,B IOS会调用INT 15h/AH=4Fh。所有后续的处理都是用由INT 15/AH=4Fh返回的扫描 码。
缺省的键盘不后程序位于F000:E987
针对某些特殊键,键盘捕获程序执行下列功能:
Ctrl-Break 清除键盘缓冲区,将字0000h放到缓冲区中,激活INT 1B,设置位于 0040:0071的标志
SysReq 激活INT 15/AH=85h(SysReq通常被标记为SysRq)
Ctrl-Numlock 将系统置于死循环直到下一次INT 09
Ctrl-Alt-Del 跳转到系统启动代码(要么是F000:FFF0,要么是那个地址存放的目 的地址)
Shift-PrtSc 激活INT 05
Ctrl-Alt-Plus (HP Vectra)打开击键声音
Ctrl-Alt-Plus (many clones)设置时钟速度为“高速”
Ctrl-Alt-Minus (HP Vectra)降低击键音量
Ctrl-Alt-Minus (many clones)设置时钟速度为“低速”
Ctrl-Alt-SysReq (HP Vectra)产生硬件复位
Ctrl-Alt-S (many clones)运行BIOS设置程序
Ctrl-Alt-Esc (many clones)运行BIOS设置程序
Ctrl-Alt-Ins (many clones)运行BIOS设置程序
Ctrl-Alt-LeftShift-GrayMinus (some clones)关闭系统缓存
Ctrl-Alt-LeftShift-GrayPlus (some clones)打开系统缓存
DR-DOS挂接该中断以控制覆盖/插入模式的光标形状(下划线/半大方块)
DR得多用户DOS挂接该中断以控制光标形状和控制Ctrl-Alt-Del是重新启动当前会 话还是整个系统
参见 INT 05"PRINT SCREEN",INT 0B"HP 95LX",INT 15/AH=4Fh,INT 15/AH=85h
INT 16/AH=00h,INT 16/AH=10h,INT 1B,INT 2F/AX=A901h,INT 4A/AH=00h"TI"
INT 51"DESQview",INT 59"DoubleDOS",INT 79"GO32"
表00006 01h ESC 31h N
键盘扫描码 02h 1 ! 32h M
03h 2 @ 33h , < 63h F16
04h 3 # 34h . > 64h F17
05h 4 $ 35h / ? 65h F18
06h 5 % 36h Right Shift 66h F19
07h 6 ^ 37h Grey * 67h F20 (Fn) *
08h 7 & 38h Alt 68h F21
09h 8 * 39h SpaceBar 69h F22
0ah 9 ( 3ah CapsLock 6ah F23
0bh 0 ) 3bh F1 6bh F24
0ch - _ 3ch F2 6ch --
0dh = + 3dh F3 6dh Erase EOF
0eh Backspace 3eh F4
0fh Tab 3fh F5 6fh Copy/Play
10h Q 40h F6
11h W 41h F7
12h E 42h F8 72h CrSel
13h R 43h F9 73h <delta> [*]
14h T 44h F10 74h ExSel
15h Y 45h NumLock 75h --
16h U 46h ScrollLock 76h Clear
17h I 47h Home 77h [Note2] Joyst But1
18h O 48h UpArrow 78h [Note2] Joyst But2
19h P 49h PageUp 79h [Note2] Joyst Right
1ah [ { 4ah Grey - 7Ah [Note2] Joyst Left
1bh ] } 4bh Left-Arrow 7Bh [Note2] Joyst Up
1ch Enter 4ch Keypad 5 7Ch [Note2] Joyst Down
1dh Ctrl 4dh Right Arrow 7Dh [Note2] right mouse
1eh A 4eh Grey + 7Eh [Note2] left mouse
1fh S 4fh End
20h D 50h Down Arrow
21h F 51h PageDn
22h G 52h Ins
23h H 53h Del
24h J 54h SysReq
25h K 55h [NOTE1] F11 00h 键盘缓冲区满
26h L 56h Left \ |(102Key)
27h ; : 57h F11 AAh 自检完成
28h ' " 58h F12 E0h 前缀代码
29h ` ~ 59h [Note1] F15 E1h 前缀代码
2ah Left Shift 5ah PA1 EEh ECHO
2bh \ | 5bh F13 (LWin) F0h 前缀代码(key break)
2ch Z 5ch F14 (RWin) FAh ACK
2dh X 5dh F15 (Menu) FCh 诊断失效(MF-键盘)
2eh C FDh 诊断失效(AT-键盘)
2fh V FEh 重发
30h B FFh 键盘错误/缓冲区满
-- ------------------------------------------------------------
有缘则聚,缘尽则散,随缘而定,随遇而安。
------------------------------------------------------------
欢迎光临“电子工程师园地”http://kingfox.163.net
※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.101.17.206]
|
|