Chinaunix首页 | 论坛 | 博客
  • 博客访问: 187767
  • 博文数量: 33
  • 博客积分: 1400
  • 博客等级: 上尉
  • 技术积分: 245
  • 用 户 组: 普通用户
  • 注册时间: 2007-09-01 11:26
文章分类

全部博文(33)

文章存档

2011年(1)

2010年(10)

2009年(18)

2008年(4)

我的朋友

分类: WINDOWS

2010-06-12 17:21:12

关于中断向量的几点注释
1. 系统引导时,中断向量表放在内存何处?
     系 统刚引导时,内存0x00000到0x0003FF共1KB的空间用于存放中断向量表。每个中断向量占用4个字节,共可存储256个中断向量。
2. 系统引导时,处在实模式下,只可寻址1MB,为什么要用4个字节来寻址中断呢处理程序?
     刚看到的时候,我也很纳闷。我们都知道编程的 时候指针都是4个字节的,可以寻址4GB,在实模式下完全可以少用字节啊?其实实模式的内存选址方式是:段值 * 16 + 偏移值,就是内存地址。而这4个字节中,2个字节存储段值,两外两个存储偏移值。所以共有4个字节。

3. 这篇资料是看书和从网上整理而来的,不同的资料间往往有些冲突的地方,这样就难免有些错误,以后再做修订。

中断向量表

内存地址(十六进制) 对应向量号(十六进制) 中断用途
BASIC中断向量
0x3C4 - 0x3FF F1-FF 未使用
0x218 - 0x3C3 86-F0 BASIC程序运行时提供给BASIC解释程序作用
0x200 - 0x217 80-85 为BASIC保留
0x1E0 - 0x1FF 78-7F 未使用
0x1DC - 0x1DF 77 硬件中断15
0x1D8 - 0x1DB 76 硬件中断14
0x1D4 - 0x1D7 75 硬件中断13
0x1D0 - 0x1D3 74 硬件中断12
0x1CC - 0x1CF 73 硬件中断11
0x1C8 - 0x1CB 72 硬件中断10
0x1C4 - 0x1C7 71 硬件中断9
0x1C0 - 0x1C3 70 硬件中断
0x1A0 - 0x1BF 68-6F 未使用
0x180 - 0x19F 60-67 为用户程序保留的单元
0x128 - 0x17F 4A-5F 保留
0x124 - 0x127 49 指向键盘增强服务变换表
0x120 - 0x123 48 PC机使用,用于把PC机的键盘代码变换为标准的键盘代码
0x11C - 0x11F 47 保留
DOS中断向量
0x118 - 0x11B 46 第二硬盘参数块
0x114 - 0x117 45 保留
0x110 - 0x113 44 PC机使用,用于指向低分辩率图形字符参数表
0x108 - 0x10F 42-43 未使用
0x104 - 0x107 41 硬盘参数块
0x0C0 - 0x0CB 34-40 未使用
0x0CC - 0x0CF 33 鼠标中断
0x0C0 - 0x0CB 30-32 未使用
0x0BC - 0x0BF 2F 多路服务中断
0x0B8 - 0x0BB 2E 基本SHELL程序装入
0x0AC - 0x0B7 2B-2D 未使用
0x0A8 - 0x0AB 2A Microsoft 网络接口
0x0A4 - 0x0A7 29 快速写字符
0x0A0 - 0x0A3 28 DOS安全使用
0x09C - 0x09F 27 终止并驻留程序
0x098 - 0x09B 26 绝对磁盘写功能
0x094 - 0x097 25 绝对磁盘读功能
0x090 - 0x093 24 严重错误处理(用户不能直接调用)
0x08C - 0x08F 23 Ctrl+Break 处理地址(用户不能直接调用)
0x088 - 0x08B 22 程序中止时DOS返回地址(用户不能直接调用)
0x084 - 0x087 21 DOS系统功能调用
0x080 - 0x083 20 DOS中断返回
数据表指针
0x07C - 0x07F 1F 图形字符扩展码
0x078 - 0x07B 1E 软盘参数块
0x074 - 0x077 1D 视频参数块
提供给用户的中断
0x070 - 0x073 1C 定时器控制的软中断
0x06C - 0x06F 1B Ctrl + Break控制的软中断
BIOS中断
0x068 - 0x06B 1A 时钟管理
0x064 - 0x067 19 引导装入程序--系统自举
0x060 - 0x063 18 BASIC入口代码--ROM BASIC入口代码
0x05C - 0x05F 17 打印机输出
0x058 - 0x05B 16 键盘I/O
0x054 - 0x057 15 盒式磁带I/O
0x050 - 0x053 14 RS-232串行通讯口I/O
0x04C - 0x04F 13 磁盘I/O
0x048 - 0x04B 12 测定存储器容量
0x044 - 0x047 11 设备检验
0x040 - 0x043 10 屏幕显示I/O
8259中断向量
0x03C - 0x03F F LPT2控制器中断--并行打印机(IRQ7)
0x038 - 0x03B E 磁盘控制器中断--软磁盘(IRQ6)
0x034 - 0x037 D LPT2控制器中断--硬磁盘(并行口)(IRQ5)
0x030 - 0x033 C 异步通信(primary)--串行通信接口1(IRQ4)
0x02C - 0x02F B 异步通信(secondary)--串行通信接口2(IRQ3)
0x028 - 0x02B A 彩色/图形(IRQ2)
0x024 - 0x027 9 键盘(IRQ1)
0x020 - 0x023 8 定时器(IRQ0)
8088中断向量
0x01C - 0x01F 7 保留
0x018 - 0x01B 6 保留
0x014 - 0x017 5 打印屏幕
0x010 - 0x013 4 溢出
0x00C - 0x00F 3 断点指令
0x008 - 0x00B 2 非屏蔽中断
0x004 - 0x007 1 单步(用于DEBUG)
0x000 - 0x003 0 除以零



参考资料:
1.IBM-PC汇编语言程序设计
2.80X86汇编语言程序设计教程

阅读(3456) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~