现代微机原理与接口技术接口第10章

上传人:xian****812 文档编号:324058702 上传时间:2022-07-12 格式:PPT 页数:75 大小:429.50KB
返回 下载 相关 举报
现代微机原理与接口技术接口第10章_第1页
第1页 / 共75页
现代微机原理与接口技术接口第10章_第2页
第2页 / 共75页
现代微机原理与接口技术接口第10章_第3页
第3页 / 共75页
现代微机原理与接口技术接口第10章_第4页
第4页 / 共75页
现代微机原理与接口技术接口第10章_第5页
第5页 / 共75页
点击查看更多>>
资源描述

《现代微机原理与接口技术接口第10章》由会员分享,可在线阅读,更多相关《现代微机原理与接口技术接口第10章(75页珍藏版)》请在金锄头文库上搜索。

1、http:/现代微机原理与接口技术现代微机原理与接口技术第第10章章PC机的高级编程技术机的高级编程技术1http:/现代微机原理与接口技术现代微机原理与接口技术10.1PC机环境下软件对接口的访问层次机环境下软件对接口的访问层次裸机裸机BIOS直接访问直接访问操作系统操作系统驱动程序驱动程序间接访问间接访问应用程序应用程序2http:/现代微机原理与接口技术现代微机原理与接口技术1.直接访问层次直接访问层次特点特点:可以直接进行内存和端口的访问,也可以:可以直接进行内存和端口的访问,也可以自行决定是否在实模式和保护模式间切换。自行决定是否在实模式和保护模式间切换。通常所有的端口和内存都是对程

2、序员开放通常所有的端口和内存都是对程序员开放的。的。工具工具:汇编语言或:汇编语言或C语言。语言。应用应用:BIOS都是基于这种低级层次用汇编来编写都是基于这种低级层次用汇编来编写的。驱动程序也有使用这种方法的。的。驱动程序也有使用这种方法的。优点优点:能够编写速度最快,占用空间最小的有效:能够编写速度最快,占用空间最小的有效代码。代码。缺点缺点:需要对硬件和接口有很熟悉的了解。:需要对硬件和接口有很熟悉的了解。要会汇编,或熟练使用要会汇编,或熟练使用C语言的指针。语言的指针。不利于增加对新设备的控制。不利于增加对新设备的控制。3http:/现代微机原理与接口技术现代微机原理与接口技术2.BI

3、OS访问层次访问层次特点特点:通过:通过BIOS提供的功能调用间接地对内存提供的功能调用间接地对内存或端口访问,从而控制硬件。或端口访问,从而控制硬件。工具工具:汇编语言或:汇编语言或C语言。语言。应用应用:驱动程序有些会使用这些功能调用。需要:驱动程序有些会使用这些功能调用。需要获得高效率的应用程序也采用这种方法。获得高效率的应用程序也采用这种方法。优点优点:能够编写速度较快的有效代码。:能够编写速度较快的有效代码。可以不需要编写直接对硬件进行控制的代可以不需要编写直接对硬件进行控制的代码。码。缺点缺点:需要对底层信号有所了解。:需要对底层信号有所了解。增加对新设备的控制不是很方便,但好于增

4、加对新设备的控制不是很方便,但好于低级层次。低级层次。4http:/现代微机原理与接口技术现代微机原理与接口技术3.驱动程序层次驱动程序层次特点特点:使用:使用BIOS功能调用和直接内存访问的方功能调用和直接内存访问的方法编写符合特定操作系统管理规范的设备法编写符合特定操作系统管理规范的设备驱动程序。驱动程序。工具工具:VC+与与DDK开发包,或第三方开发工具开发包,或第三方开发工具如如DriverStudio。应用应用:在操作系统层面上的设备控制,并为应用:在操作系统层面上的设备控制,并为应用程序提供程序提供API支持。支持。优点优点:既控制硬件,又保证操作系统的完整与安:既控制硬件,又保证

5、操作系统的完整与安全。全。缺点缺点:需要对底层信号有所了解。:需要对底层信号有所了解。需要对操作系统的各个管理模块有深入的需要对操作系统的各个管理模块有深入的了解。了解。5http:/现代微机原理与接口技术现代微机原理与接口技术4.应用层次应用层次特点特点:使用操作系统各种驱动程序所提供的功能:使用操作系统各种驱动程序所提供的功能调用或调用或API函数间接对硬件或内存进行访函数间接对硬件或内存进行访问。问。工具工具:VC+、Delphi、Java等。等。应用应用:编写面向终端用户的各类应用程序。:编写面向终端用户的各类应用程序。优点优点:无需对硬件控制有太多了解,只需完成应:无需对硬件控制有太

6、多了解,只需完成应用层面的工作就可以用层面的工作就可以,而且还保证操作系,而且还保证操作系统的完整与安全。统的完整与安全。缺点缺点:需要了解大量的:需要了解大量的API和功能调用函数的功和功能调用函数的功能。能。由于是间接调用,所以代码的效率和编译由于是间接调用,所以代码的效率和编译系统有很大的关系。系统有很大的关系。6http:/现代微机原理与接口技术现代微机原理与接口技术16位段地址位段地址16位段内偏移位段内偏移:16位段地址位段地址16位段内偏移位段内偏移(左移四位)(左移四位)+20位物理地址位物理地址=6417H 0100H6417H10H+0100H=64170H+0100H=6

7、4270H采用了内存分段的办法,内存分为若干段,段的大小采用了内存分段的办法,内存分为若干段,段的大小根据需要决定,最大为根据需要决定,最大为64KB10.2.1实地址模式的存储管理(同实地址模式的存储管理(同PC/XT)10.2Pentium4的内存管理的内存管理接口直接访问接口直接访问7http:/现代微机原理与接口技术现代微机原理与接口技术0000000A0000100000110000FFFFFF640KB常规内存常规内存384KB高端内存高端内存64KB高内存区高内存区14095MB扩展内存扩展内存存放用户程序和存放用户程序和DOS驻留部分驻留部分存放显存、网卡和部分存放显存、网卡和

8、部分用户的用户的DOS驱动程序和驱动程序和BIOS存放部分存放部分DOS驻留程序驻留程序大于大于1M以上的以上的扩展内扩展内存,存,DOS下不能直接访下不能直接访问,需要用问,需要用XMS规范使规范使用。可利用用。可利用DOS调用或调用或BIOS调用来使用。调用来使用。8http:/现代微机原理与接口技术现代微机原理与接口技术10.2.2保护模式下使用的系统地址寄存器保护模式下使用的系统地址寄存器GDTR48位的全局描述符表寄存器位的全局描述符表寄存器全局描述符表全局描述符表32位线性地址位线性地址16位界限值位界限值IDTR48位的中断描述符表寄存器位的中断描述符表寄存器中断描述符表中断描述

9、符表32位线性地址位线性地址16位界限值位界限值TR16位的任务状态段寄存器位的任务状态段寄存器TSS的的16位选择字位选择字LDTR16位的局部描述符选择字寄存器位的局部描述符选择字寄存器LDT的的16位选择字位选择字9http:/现代微机原理与接口技术现代微机原理与接口技术10.2.3保护模式下保护模式下Pentium4的段式存储管理的段式存储管理1.段式管理的地址变换段式管理的地址变换段寄存器的段寄存器的152位位偏移量偏移量4532310段描述符段描述符段表段表32位线性地址位线性地址物理物理地址地址逻辑逻辑地址地址段基址段基址Pentium系列的虚拟地址空间是系列的虚拟地址空间是24

10、664TB。10http:/现代微机原理与接口技术现代微机原理与接口技术2.段描述符段描述符D7D0段界限段界限70段界限段界限158基址基址70基址基址158基址基址2316基址基址3124TYPESAVLDPLPGD/B 0段界限段界限19160123456711http:/现代微机原理与接口技术现代微机原理与接口技术D7D0AVLG D/B0段界限段界限1916用户的操作系统可用位用户的操作系统可用位D/B位位代码段代码段(D位位)D=1使用使用32位操作系统位操作系统和和32位寻址方式位寻址方式D=0使用使用16位操作系统位操作系统和和16位寻址方式位寻址方式数据段数据段(B位位)B=

11、1使用使用ESP寄存器,上寄存器,上限为限为FFFFFFFFHB=0使用使用SP寄存器,上寄存器,上限为限为FFFFHG=0段长以段长以1字节为单位字节为单位G=1段长以段长以4K字节为单位字节为单位D/B位位粒度位粒度位12http:/现代微机原理与接口技术现代微机原理与接口技术AWREDCE=0E=1S=1DPLPD7D0存在位存在位特权位特权位S=1是非系统段是非系统段S=0是系统描述符是系统描述符代码段标志代码段标志数据段标志数据段标志兼容位兼容位可读位可读位访问位访问位扩展方向位扩展方向位可写位可写位非系统段中的第非系统段中的第5字节字节可执行位可执行位13http:/现代微机原理与

12、接口技术现代微机原理与接口技术系统描述符中的系统描述符中的TYPE14http:/现代微机原理与接口技术现代微机原理与接口技术RPLTi选择符(段寄存器)选择符(段寄存器)15210索引索引Ti=1Ti=00101LDTLDTLDTGDT基址基址界限界限选择符选择符基址基址界限界限LDTRGDTR2215http:/现代微机原理与接口技术现代微机原理与接口技术#includestdafx.h#include#include/wtypes.h定义了定义了WORDLONG,/DWORD,WORD等数据类型等数据类型DWORDLONGgdtr,savegdt;/下面是下面是GDT中将创建的数据段描述

13、符表中将创建的数据段描述符表,基地址基地址0X00000F00,/段界限为段界限为0XFFFF,优先级为优先级为3的在内存中的可写数据段的在内存中的可写数据段WORDdescriptor4=0 xFFFF,0X0F00,0XF200,0X0040;intresult10;intmain(intargc,char*argv)_asmpushebpsgdtgdtr/将将GDTR寄存器的内容读取到寄存器的内容读取到/gdtr开始的开始的6个字节中,其中个字节中,其中/前两个字节给出前两个字节给出GDT的界限值的界限值,/高高4个字节给出个字节给出GDT的基地址的基地址16http:/现代微机原理与接

14、口技术现代微机原理与接口技术movebp,dwordptrgdtr+2/将将gdt的基的基/地址读到地址读到EBP中中addebp,70h/我们选择我们选择70H偏移下的段描述偏移下的段描述/符(符(GDT中第中第14个描述符)个描述符)leaedi,savegdtmovesi,ebpmovsd/以上以上4条指令保存原来在条指令保存原来在70H偏移上偏移上movsd/的描述符的描述符movedi,ebpleaesi,descriptor;movsd/把我们的数据段描述符装入把我们的数据段描述符装入70Hmovsd/偏移上偏移上pushesmovax,0073h/选择字为描述符偏移选择字为描述符

15、偏移70H拼接上拼接上/低低3位控制位元位控制位元,其中其中Ti为为0,表表/示访问示访问GDT,RPL为为11,为为3级优级优/先级先级,所以就为所以就为73H17http:/现代微机原理与接口技术现代微机原理与接口技术moves,ax/ES装入选择字装入选择字73Hleaedi,result/将存放输出结果的变量将存放输出结果的变量/的地址放在的地址放在EDI中中moveax,1movebx,1_asmmovcx,10a1:moves:eax,eaxaddeax,4loopa1/上面上面4条指令将向物理地址条指令将向物理地址/0X00000F00处写处写10个双字个双字_asmmovcx,

16、10a2:moveax,es:ebxmovedi,eax18http:/现代微机原理与接口技术现代微机原理与接口技术addebx,4addedi,4loopa2/以上从物理地址以上从物理地址0X00000F00/处依次读出处依次读出10个数据存放在个数据存放在/result数组中数组中_asmpopespopebpprintf(result=););for(inti=0;i10;i+)printf(%d,resulti););/输出结果输出结果return0;19http:/现代微机原理与接口技术现代微机原理与接口技术10.2.4保护模式下保护模式下Pentium4的虚拟页式存储管理的虚拟页式存储管理主存主存页框页框页面页面程序程序1程序程序2程序程序320http:/现代微机原理与接口技术现代微机原理与接口技术PGEPCE83176543210MCEPAE PSEDE TSDVMEPVI保留,缺省为全保留,缺省为全0CR4PAEPSE物理地址位数物理地址位数页面大小页面大小0032位位4KB0132位位4KB/4MB1036位位4KB1136位位4KB/2MB21http:/现代微机

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件 > 高中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号