DOS程序员参考手册
2010-12-06 18:18
381 查看
选中的内存位置
介绍选中的内存位置表的目的是帮助读者了解系统功能的操作方式。直接访问这些
位置中的任何一个都会使得程序极其不可移植,所以,如果不是没有任何别的办法得到所
需的特性和响应,就不应对其进行直接访问。
弄清楚了这些信息在内存中的位置,首先能有助于获取信息。但是改变BIOS和DOS
数据区中的信息将产生极大的破坏(当然,如果对冲毁系统不介意的话,这样做也极其有
趣)。
B.1中断表
绝对地址的00000至003FF为中断地址表。该表由中断00至FFh的中断地址组成,
每个地址占用4个字节。因此,为了在中断地址表中找到某个指定中断的地址,只需将中
断号乘以4就可以了。例如,用于中断C3h的绝对地址为030Ch。在表B.1中,前两列的
号采用的十六进制表示方法。
表B.1 中断00h至FFh的中断地址
中断号 地址 含 义
Int 00 00000 硬件除0
Int 01 00004 硬件单步捕获
Int 02 00008 不可屏蔽
Int 03 0000C 调试程序断点设置
Int 04 00010 算术溢出
Int 05 00014 BIOS打印屏幕
Int 06 00018 无效操作码
Int 08 00020 IRQ0—时钟计数
Int 09 00024 IRQ1—键盘动作
Int 0A 00028 IRQ2
Int 0B 0002C IRQ3-COM2
Int 0C 00030 IRQ4-COM1
Int 0D 00034 IRQ5—PC/XT硬盘
Int 0D IRQ5-PCATLPT2
Int 0E 00038 IRQ6—软盘
Int0F 0003C IRQ7-LPT1
Int 10 00040 BIOS视频服务
807页
中断号 地址 含 义
Int 11 00044 BIOS设备列表服务
Int 12 00048 BIOS内存大小服务
Int 13 0004C BIOS磁盘/软盘服务
Int 14 00050 BIOS通信服务
Int 15 00054 BIOS系统服务
Int 16 00058 BIOS键盘服务
Int 17 0005C BIOS打印机服务
Int 18 00060 执行ROMBASIC
Int 19 00064 重引导系统
Int 1A 00068 BIOS当天时间服务
Int 1B 0006C Ctrl-Break处理程序地址
Int 1C 00070 供Int 08处理程序调用
Int 1D 00074 视频初始化参数表
Int 1E 00078 磁盘初始化参数表
Int 1F 0007C 图形字符表
Int 20 00080 DOS程序终止
Int 21 00084 DOS功能服务
Int 22 00088 程序终止地址
Int 23 0008C DOSCtrl-Break
Int 24 00090 关键出错处理程序
Int 25 00094 DOS绝对磁盘读
Int 26 00098 DOS绝对磁盘写
Int 27 0009C DOSTSR
Int 28 000A0 DOS空闲中断
Int 29 000A4 DOS快速存放字符
Int2A 000A8 MS-Net访问
Int 2E 000B8 DOS主外壳程序装入程序
Int 2F 000BC DOS多路复用中断
Int 33 000CC 鼠标中断
Int 3F 000FC 覆盖管理程序
Int 40 00100 如果安装了硬盘则为软盘中断向量
Int 41 00104 硬盘1参数表
Int 42 00108 EGA BIOS将其用于重定向视频中断
Int 43 0010C EGA初始化参数表
Int 44 00110 EGA字符表
Int 44 Novell NetWare API
Int 46 00118 硬盘2参数表
Int 4A 00128 PCAT:Int 70报警
Int 5A 00168 簇
Int 5B 0016C 由簇程序使用
Int 5c 00170 Net BIOS接口
808页
中断号 地址 含 义
Int 67 0019C 扩展内存管理程序服务
Int 70 001C0 IRQ8——PCAT实时时钟
Int 71 001C4 IRQ9-pc AT重定向为Int 0A
Int 72 001C8 IRQ10
Int 73 001CC IRQ11
Int 74 001D0 IRQ12—鼠标中断
Int 75 001D4 IRQ13-PCAT数学协处理器
Int 76 001D8 IRQ14——硬盘事件
Int 77 001DC IRQ15
Int 7A 001E8 NoVEll NetWare API
B.2 BIOS数据区
绝对磁盘范围00400至004FF为ROM BIOS的数据区。这一区域是一个大杂烩,其
中包括了各种数据结构,表、地址和标志。在下表中,第一列为数据的绝对地址,第2列为
从BIOS数据区开始算起的偏移值——即从段地址0040处开始的偏移值。之所以将这两
列的信息部列举出来是为了便于选择一个更适合不同编程风格的值(头两列的值都采用
的是十六进制表示法)。其余两列是作为解释用的。
注意地址00500处的标志。尽管从表面上看该标志位于BIOS数据区之外,但由于它
是由打印屏幕例程使用的,因此,它实质上属于这个数据块。
表B.2 BIOS数据区
地址 偏移值 长度 含 义
00400 00 字 COM1地址(0表示未使用)
00402 02 字 COM2地址(0表示未使用)
00404 04 字 COM3地址(0表示未使用)
00406 06 字 COM4地址(0表示未使用)
00408 08 字 LPT1地址(0表示未使用)
0040A 0A 字 LPT2地址(0表示未使用)
0040C 0C 字 LPT3地址(0表示未使用)
0040E 0E 字 LPT4地址(0表示未使用)
00410 10 字 设备标志
00412 12 字节 初始化标志
00413 13 字 以千字节为单位的基本内存大小
00415 15 字节 在I/O通道中的内存量
00416 16 字节 未使用
00417 17 字 键盘状态标志
00419 19 字 ALT-键小键盘存储空间
0041A 1A 字 键盘打印超前缓冲区头
0041C 1C 字 键盘打印超前缓冲区尾
809页
地址 偏移值 长度 含 义
0041E 1E 16字节 键盘打印超前缓冲区
0043E 3E 字节 软盘数据
0043F 3F 字节 软盘电机状态
00440 40 字节 软盘电机超时计数
00441 41 字节 最后一次软盘操作状态
00442 42 7字节 磁盘命令工作区域
00449 49 字节 当前显示模式
0044A 4A 字 屏幕列数
0044C 4C 字 以字节为单位的显示内存页大小
0044E 4E 字 相对于当前显示页的偏移值
00450 50 字 显示页0的光标位置
00452 52 字 显示页1的光标位置
00454 54 字 显示页2的光标位置
00456 56 字 显示页3的光标位置
00458 58 字 显示页4的光标位置
0045A 5A 字 显示页5的光标位置
0045C 5C 字 显示页6的光标位置
0045E 5E 字 显示页7的光标位置
00460 60 字 当前光标模式
00462 62 字节 当前视频页号
00463 63 字 活动显示卡的端口地址
00465 65 字节 视频硬件方式选择寄存器值
00466 66 字节 彩色调色板设置
00467 67 双字 磁带数据
0046B 6B 字节 中断发生标志
0046C 6C 双字 从零点开始的计时器计数
00470 70 字节 零点标志(如果自上次读取以来经过了零点,则该标
志置位)
00471 71 字节 中断标志
00472 72 字 复位标志
00474 74 字节 最近一次硬盘操作的状态
00475 75 字节 硬盘驱动器数
00476 76 字节 硬盘控制字节
00477 77 字节 硬盘I/O端口偏移值
00478 78 字节 LPT1超时计数器
00479 79 字节 LPT2超时计数器
0047A 7A 字节 LPT3超时计数器
0047B 7B 字节 LPT4超时计数器
0047C 7C 字节 COM1超时计数器
0047D 7D 字节 COM2超时计数器
0047E 7E 字节 COM3超时计数器
810页
地址 偏移值 长度 含 义
0047F 7F 字节 COM4超时计数器
00480 80 字 相对于键盘缓冲区开头的偏移值
00482 82 字 相对于键盘缓冲区末尾的偏移值
00484 84 字节 EGA/MCGA/VGA屏幕上的行数(以0为基数)
00485 85 字 在EGA/MCGA/VGA屏幕上的字符高度
00487 87 字 EGA/VGA控制标志
00489 89 字节 MCGA/VGA控制标志
0048A 8A 字节 MCGA/VGA数据偏移值指针
0048B 8B 字节 软盘介质控制标志
0048C 8C 字节 硬盘控制卡的状态
0048D 8D 字节 硬盘控制卡的出错标志
0048E 8E 字节 硬盘中断控制标志
0048F 8F 字节 软盘控制器信息
00490 90 字节 软盘驱动器0当前介质状态
00491 91 字节 软盘驱动器1当前介质状态
00492 92 字节 软盘驱动器0起始介质状态
00493 93 字节 软盘驱动器1起始介质状态
00494 94 字节 软盘驱动器0磁道号
00495 95 字节 软盘驱动器1磁道号
00496 96 字节 键盘状态
00497 97 字节 键盘LED控制
00498 98 双字 用户等待例程标志指针
0049C 9C 双字 用户等待计数器
004A0 A0 字节 用户等待活动标志
004A8 A8 双字 EGA/MCGA/VGA视频保存表指针
00500 100 字节 打印屏幕状态标志
介绍选中的内存位置表的目的是帮助读者了解系统功能的操作方式。直接访问这些
位置中的任何一个都会使得程序极其不可移植,所以,如果不是没有任何别的办法得到所
需的特性和响应,就不应对其进行直接访问。
弄清楚了这些信息在内存中的位置,首先能有助于获取信息。但是改变BIOS和DOS
数据区中的信息将产生极大的破坏(当然,如果对冲毁系统不介意的话,这样做也极其有
趣)。
B.1中断表
绝对地址的00000至003FF为中断地址表。该表由中断00至FFh的中断地址组成,
每个地址占用4个字节。因此,为了在中断地址表中找到某个指定中断的地址,只需将中
断号乘以4就可以了。例如,用于中断C3h的绝对地址为030Ch。在表B.1中,前两列的
号采用的十六进制表示方法。
表B.1 中断00h至FFh的中断地址
中断号 地址 含 义
Int 00 00000 硬件除0
Int 01 00004 硬件单步捕获
Int 02 00008 不可屏蔽
Int 03 0000C 调试程序断点设置
Int 04 00010 算术溢出
Int 05 00014 BIOS打印屏幕
Int 06 00018 无效操作码
Int 08 00020 IRQ0—时钟计数
Int 09 00024 IRQ1—键盘动作
Int 0A 00028 IRQ2
Int 0B 0002C IRQ3-COM2
Int 0C 00030 IRQ4-COM1
Int 0D 00034 IRQ5—PC/XT硬盘
Int 0D IRQ5-PCATLPT2
Int 0E 00038 IRQ6—软盘
Int0F 0003C IRQ7-LPT1
Int 10 00040 BIOS视频服务
807页
中断号 地址 含 义
Int 11 00044 BIOS设备列表服务
Int 12 00048 BIOS内存大小服务
Int 13 0004C BIOS磁盘/软盘服务
Int 14 00050 BIOS通信服务
Int 15 00054 BIOS系统服务
Int 16 00058 BIOS键盘服务
Int 17 0005C BIOS打印机服务
Int 18 00060 执行ROMBASIC
Int 19 00064 重引导系统
Int 1A 00068 BIOS当天时间服务
Int 1B 0006C Ctrl-Break处理程序地址
Int 1C 00070 供Int 08处理程序调用
Int 1D 00074 视频初始化参数表
Int 1E 00078 磁盘初始化参数表
Int 1F 0007C 图形字符表
Int 20 00080 DOS程序终止
Int 21 00084 DOS功能服务
Int 22 00088 程序终止地址
Int 23 0008C DOSCtrl-Break
Int 24 00090 关键出错处理程序
Int 25 00094 DOS绝对磁盘读
Int 26 00098 DOS绝对磁盘写
Int 27 0009C DOSTSR
Int 28 000A0 DOS空闲中断
Int 29 000A4 DOS快速存放字符
Int2A 000A8 MS-Net访问
Int 2E 000B8 DOS主外壳程序装入程序
Int 2F 000BC DOS多路复用中断
Int 33 000CC 鼠标中断
Int 3F 000FC 覆盖管理程序
Int 40 00100 如果安装了硬盘则为软盘中断向量
Int 41 00104 硬盘1参数表
Int 42 00108 EGA BIOS将其用于重定向视频中断
Int 43 0010C EGA初始化参数表
Int 44 00110 EGA字符表
Int 44 Novell NetWare API
Int 46 00118 硬盘2参数表
Int 4A 00128 PCAT:Int 70报警
Int 5A 00168 簇
Int 5B 0016C 由簇程序使用
Int 5c 00170 Net BIOS接口
808页
中断号 地址 含 义
Int 67 0019C 扩展内存管理程序服务
Int 70 001C0 IRQ8——PCAT实时时钟
Int 71 001C4 IRQ9-pc AT重定向为Int 0A
Int 72 001C8 IRQ10
Int 73 001CC IRQ11
Int 74 001D0 IRQ12—鼠标中断
Int 75 001D4 IRQ13-PCAT数学协处理器
Int 76 001D8 IRQ14——硬盘事件
Int 77 001DC IRQ15
Int 7A 001E8 NoVEll NetWare API
B.2 BIOS数据区
绝对磁盘范围00400至004FF为ROM BIOS的数据区。这一区域是一个大杂烩,其
中包括了各种数据结构,表、地址和标志。在下表中,第一列为数据的绝对地址,第2列为
从BIOS数据区开始算起的偏移值——即从段地址0040处开始的偏移值。之所以将这两
列的信息部列举出来是为了便于选择一个更适合不同编程风格的值(头两列的值都采用
的是十六进制表示法)。其余两列是作为解释用的。
注意地址00500处的标志。尽管从表面上看该标志位于BIOS数据区之外,但由于它
是由打印屏幕例程使用的,因此,它实质上属于这个数据块。
表B.2 BIOS数据区
地址 偏移值 长度 含 义
00400 00 字 COM1地址(0表示未使用)
00402 02 字 COM2地址(0表示未使用)
00404 04 字 COM3地址(0表示未使用)
00406 06 字 COM4地址(0表示未使用)
00408 08 字 LPT1地址(0表示未使用)
0040A 0A 字 LPT2地址(0表示未使用)
0040C 0C 字 LPT3地址(0表示未使用)
0040E 0E 字 LPT4地址(0表示未使用)
00410 10 字 设备标志
00412 12 字节 初始化标志
00413 13 字 以千字节为单位的基本内存大小
00415 15 字节 在I/O通道中的内存量
00416 16 字节 未使用
00417 17 字 键盘状态标志
00419 19 字 ALT-键小键盘存储空间
0041A 1A 字 键盘打印超前缓冲区头
0041C 1C 字 键盘打印超前缓冲区尾
809页
地址 偏移值 长度 含 义
0041E 1E 16字节 键盘打印超前缓冲区
0043E 3E 字节 软盘数据
0043F 3F 字节 软盘电机状态
00440 40 字节 软盘电机超时计数
00441 41 字节 最后一次软盘操作状态
00442 42 7字节 磁盘命令工作区域
00449 49 字节 当前显示模式
0044A 4A 字 屏幕列数
0044C 4C 字 以字节为单位的显示内存页大小
0044E 4E 字 相对于当前显示页的偏移值
00450 50 字 显示页0的光标位置
00452 52 字 显示页1的光标位置
00454 54 字 显示页2的光标位置
00456 56 字 显示页3的光标位置
00458 58 字 显示页4的光标位置
0045A 5A 字 显示页5的光标位置
0045C 5C 字 显示页6的光标位置
0045E 5E 字 显示页7的光标位置
00460 60 字 当前光标模式
00462 62 字节 当前视频页号
00463 63 字 活动显示卡的端口地址
00465 65 字节 视频硬件方式选择寄存器值
00466 66 字节 彩色调色板设置
00467 67 双字 磁带数据
0046B 6B 字节 中断发生标志
0046C 6C 双字 从零点开始的计时器计数
00470 70 字节 零点标志(如果自上次读取以来经过了零点,则该标
志置位)
00471 71 字节 中断标志
00472 72 字 复位标志
00474 74 字节 最近一次硬盘操作的状态
00475 75 字节 硬盘驱动器数
00476 76 字节 硬盘控制字节
00477 77 字节 硬盘I/O端口偏移值
00478 78 字节 LPT1超时计数器
00479 79 字节 LPT2超时计数器
0047A 7A 字节 LPT3超时计数器
0047B 7B 字节 LPT4超时计数器
0047C 7C 字节 COM1超时计数器
0047D 7D 字节 COM2超时计数器
0047E 7E 字节 COM3超时计数器
810页
地址 偏移值 长度 含 义
0047F 7F 字节 COM4超时计数器
00480 80 字 相对于键盘缓冲区开头的偏移值
00482 82 字 相对于键盘缓冲区末尾的偏移值
00484 84 字节 EGA/MCGA/VGA屏幕上的行数(以0为基数)
00485 85 字 在EGA/MCGA/VGA屏幕上的字符高度
00487 87 字 EGA/VGA控制标志
00489 89 字节 MCGA/VGA控制标志
0048A 8A 字节 MCGA/VGA数据偏移值指针
0048B 8B 字节 软盘介质控制标志
0048C 8C 字节 硬盘控制卡的状态
0048D 8D 字节 硬盘控制卡的出错标志
0048E 8E 字节 硬盘中断控制标志
0048F 8F 字节 软盘控制器信息
00490 90 字节 软盘驱动器0当前介质状态
00491 91 字节 软盘驱动器1当前介质状态
00492 92 字节 软盘驱动器0起始介质状态
00493 93 字节 软盘驱动器1起始介质状态
00494 94 字节 软盘驱动器0磁道号
00495 95 字节 软盘驱动器1磁道号
00496 96 字节 键盘状态
00497 97 字节 键盘LED控制
00498 98 双字 用户等待例程标志指针
0049C 9C 双字 用户等待计数器
004A0 A0 字节 用户等待活动标志
004A8 A8 双字 EGA/MCGA/VGA视频保存表指针
00500 100 字节 打印屏幕状态标志
相关文章推荐