现代微机原理与接口技术 第10章PC机的高级编程技术 Department of Computer Science Engineering 算机科学与工程系 http://qsyang.yeah.net
http://qsyang.yeah.net 现代微机原理与接口技术 1 第10章 PC机的高级编程技术
10PC机环境下软件对接口的访问层次 应用程序 操作系统 方间 间接访 驱动程序 BIOS|直接访问 裸机 Department of Computer Science Engineering 2 算机科学与工程系 http://qsyang.yeah.net
http://qsyang.yeah.net 现代微机原理与接口技术 2 10.1 PC机环境下软件对接口的访问层次 裸机 BIOS 直接访问 操作系统 间接访问 驱动程序 应用程序
1直接访问层次 现代微机原理与接口技术 特点:可以直接进行内存和端口的访问,也可以 自行决定是否在实模式和保护模式间切换 。通常所有的端口和内存都是对程序员开 放的 工具:汇编语言或C语言。 应用:BIOS都是基于这种低级层次用汇编来编写 的。驱动程序也有使用这种方法的 优点:能够编写速度最快,占用空间最小的有效 代码。 缺点:需要对硬件和接口有很熟悉的了解 要会汇编,或熟练使用C语言的指针 不利于增加对新设备的控制 计算机科学与 http://qsyang.yeah.net
http://qsyang.yeah.net 现代微机原理与接口技术 3 1.直接访问层次 特点:可以直接进行内存和端口的访问,也可以 自行决定是否在实模式和保护模式间切换 。通常所有的端口和内存都是对程序员开 放的。 工具:汇编语言或C语言。 应用:BIOS都是基于这种低级层次用汇编来编写 的。驱动程序也有使用这种方法的。 优点:能够编写速度最快,占用空间最小的有效 代码。 缺点:需要对硬件和接口有很熟悉的了解。 要会汇编,或熟练使用C语言的指针。 不利于增加对新设备的控制
现代微机原理与接口技术 2BOS访问层次 特点:通过BIOS提供的功能调用间接地对内存 或端口访问,从而控制硬件。 工具:汇编语言或C语言。 应用:驱动程序有些会使用这些功能调用。需要 获得高效率的应用程序也采用这种方法。 优点:能够编写速度较快的有效代码。 可以不需要编写直接对硬件进行控制的代 码。 缺点:需要对底层信号有所了解。 增加对新设备的控制不是很方便,但好于 低级层次。 Department of Computer Science Engineering 4 「计算机科学与工程系 http://qsyang.yeah.net
http://qsyang.yeah.net 现代微机原理与接口技术 4 2.BIOS访问层次 特点:通过BIOS提供的功能调用间接地对内存 或端口访问,从而控制硬件。 工具:汇编语言或C语言。 应用:驱动程序有些会使用这些功能调用。需要 获得高效率的应用程序也采用这种方法。 优点:能够编写速度较快的有效代码。 可以不需要编写直接对硬件进行控制的代 码。 缺点:需要对底层信号有所了解。 增加对新设备的控制不是很方便,但好于 低级层次
现代微机原理与接口技术 3驱动程序层次 特点:使用BIOS功能调用和直接内存访问的方 法编写符合特定操作系统管理规范的设备 驱动程序。 工具:VC+与DDK开发包,或第三方开发工具 如 Driverstudio。 应用:在操作系统层面上的设备控制,并为应用 程序提供API支持。 优点:既控制硬件,又保证操作系统的完整与安 缺点:需要对底层信号有所了解。 需要对操作系统的各个管理模块有深入的 解 tOnt of Computer Science Engineering 计算机科学与 程系 http://qsyang.yeah.net
http://qsyang.yeah.net 现代微机原理与接口技术 5 3.驱动程序层次 特点:使用BIOS功能调用和直接内存访问的方 法编写符合特定操作系统管理规范的设备 驱动程序。 工具:VC++与DDK开发包,或第三方开发工具 如DriverStudio。 应用:在操作系统层面上的设备控制,并为应用 程序提供API支持。 优点:既控制硬件,又保证操作系统的完整与安 全。 缺点:需要对底层信号有所了解。 需要对操作系统的各个管理模块有深入的 了解
现代微机原理与接口技术 4应用层次 特点:使用操作系统各种驱动程序所提供的功能 调用或API函数间接对硬件或内存进行访 工具:VC++、 Delphi、Java等。 应用:编写面向终端用户的各类应用程序 优点:无需对硬件控制有太多了解,只需完成应 用层面的工作就可以,而且还保证操作系 统的完整与安全。 缺点:需要了解大量的API和功能调用函数的功 由于是间接调用,所以代码的效率和编译 系统有很大的关系 http://qsyang.yeah.net
http://qsyang.yeah.net 现代微机原理与接口技术 6 4.应用层次 特点:使用操作系统各种驱动程序所提供的功能 调用或API函数间接对硬件或内存进行访 问。 工具:VC++、Delphi、Java等。 应用:编写面向终端用户的各类应用程序。 优点:无需对硬件控制有太多了解,只需完成应 用层面的工作就可以,而且还保证操作系 统的完整与安全。 缺点:需要了解大量的API和功能调用函数的功 能。 由于是间接调用,所以代码的效率和编译 系统有很大的关系
10.2 Pentium4的内存管理接口直接访问 10.2.1实地址模式的存储管理(同PC/XT) 采用了内存分段的办法,内存分为若干段,段的大小 根据需要决定,最大为64KB 16位段地址:16位段内偏移 (左移四位)16位段地址 16位段内偏移 20位物理地址 6417H:0100H 6417H×10H+0100H=64170H+0100H=64270H 7 算机科 与工程 http://qsyangyeah.net
http://qsyang.yeah.net 现代微机原理与接口技术 7 16位段地址 : 16位段内偏移 16位段地址 16位段内偏移 (左移四位) + = 20位物理地址 6417H∶0100H 6417H×10H + 0100H = 64170H + 0100H = 64270H 采用了内存分段的办法,内存分为若干段,段的大小 根据需要决定,最大为64KB 10.2.1 实地址模式的存储管理(同PC/XT) 10.2 Pentium 4的内存管理——接口直接访问
000000 现代微机原理与接口技术 存放用户程序和 640KB常规内存|DOs驻留部分 0A0000 存放显存、网卡和部分 384KB高端内存用户的DoS驱动程序和 100000 BIOS 11004KB高内存区存放部分DOS驻留程序 大于1M以上的扩展内 1~4095MB 存,DOS下不能直接访 扩展内存 问,需要用XMS规范使 用。可利用DOS调用或 ≈BIOS调用来使用。 FFFFFE Department of Computer Science Engineering http://qsyang.yeah.net
http://qsyang.yeah.net 现代微机原理与接口技术 8 000000 0A0000 100000 110000 ≈ ≈ FFFFFF 640KB常规内存 384KB高端内存 64KB高内存区 1~4095MB 扩展内存 存放用户程序和 DOS驻留部分 存放显存、网卡和部分 用户的DOS驱动程序和 BIOS 存放部分DOS驻留程序 大于1M以上的 扩展内 存,DOS下不能直接访 问,需要用XMS规范使 用。可利用DOS调用或 BIOS调用来使用
现代微机原理与接口技术 10.2.2保护模式下使用的系统地址寄存器 GDTR—48位的全局描述符表寄存器 全局描述符表32位线性地址 16位界限值 IDTR—48位的中断描述符表寄存器 中断描述符表32位线性地址 16位界限值 TR-16位的任务状态段寄存器 TSS的16位选择字 °LDTR—16位的局部描述符选择字寄存器 LDT的16位选择字 Department of Computer Science Engineering 算机科学与工程系 http://qsyang.yeah.net
http://qsyang.yeah.net 现代微机原理与接口技术 9 10.2.2 保护模式下使用的系统地址寄存器 • GDTR — 48位的全局描述符表寄存器 全局描述符表32位线性地址 16位界限值 • IDTR — 48位的中断描述符表寄存器 中断描述符表32位线性地址 16位界限值 • TR — 16位的任务状态段寄存器 TSS的16位选择字 • LDTR — 16位的局部描述符选择字寄存器 LDT的16位选择字
现代微机原理与接口技术 10.23保护模式下 Pentium4的段式存储管理 1.段式管理的地址变换 32 逻段寄存器的152位 偏移量 段描述符段基址 段表 32位线性地址物理 地址 Pentium系列的虚拟地址空间是246=64TB Department of Computer Science Engineering 10 计算机科学与工程系 http://qsyang.yeah.net
http://qsyang.yeah.net 现代微机原理与接口技术 10 10.2.3 保护模式下Pentium 4的段式存储管理 1. 段式管理的地址变换 段寄存器的15~2位 偏移量 45 32 31 0 段描述符 段表 32位线性地址 物理 地址 逻辑 地址 段基址 Pentium 系列的虚拟地址空间是2 46=64TB