现代微机原理与接口技术接口第10章.ppt
《现代微机原理与接口技术接口第10章.ppt》由会员分享,可在线阅读,更多相关《现代微机原理与接口技术接口第10章.ppt(75页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、现代微机原理与接口技术现代微机原理与接口技术第第10章章PC机的高级编程技术机的高级编程技术1现代微机原理与接口技术现代微机原理与接口技术10.1PC机环境下软件对接口的访问层次机环境下软件对接口的访问层次裸机裸机BIOS直接访问直接访问操作系统操作系统驱动程序驱动程序间接访问间接访问应用程序应用程序2现代微机原理与接口技术现代微机原理与接口技术1.直接访问层次直接访问层次特点特点:可以直接进行内存和端口的访问,也可以:可以直接进行内存和端口的访问,也可以自行决定是否在实模式和保护模式间切换。自行决定是否在实模式和保护模式间切换。通常所有的端口和内存都是对程序员开放通常所有的端口和内存都是对程
2、序员开放的。的。工具工具:汇编语言或:汇编语言或C语言。语言。应用应用:BIOS都是基于这种低级层次用汇编来编写都是基于这种低级层次用汇编来编写的。驱动程序也有使用这种方法的。的。驱动程序也有使用这种方法的。优点优点:能够编写速度最快,占用空间最小的有效:能够编写速度最快,占用空间最小的有效代码。代码。缺点缺点:需要对硬件和接口有很熟悉的了解。:需要对硬件和接口有很熟悉的了解。要会汇编,或熟练使用要会汇编,或熟练使用C语言的指针。语言的指针。不利于增加对新设备的控制。不利于增加对新设备的控制。3现代微机原理与接口技术现代微机原理与接口技术2.BIOS访问层次访问层次特点特点:通过:通过BIOS
3、提供的功能调用间接地对内存提供的功能调用间接地对内存或端口访问,从而控制硬件。或端口访问,从而控制硬件。工具工具:汇编语言或:汇编语言或C语言。语言。应用应用:驱动程序有些会使用这些功能调用。需要:驱动程序有些会使用这些功能调用。需要获得高效率的应用程序也采用这种方法。获得高效率的应用程序也采用这种方法。优点优点:能够编写速度较快的有效代码。:能够编写速度较快的有效代码。可以不需要编写直接对硬件进行控制的代可以不需要编写直接对硬件进行控制的代码。码。缺点缺点:需要对底层信号有所了解。:需要对底层信号有所了解。增加对新设备的控制不是很方便,但好于增加对新设备的控制不是很方便,但好于低级层次。低级
4、层次。4现代微机原理与接口技术现代微机原理与接口技术3.驱动程序层次驱动程序层次特点特点:使用:使用BIOS功能调用和直接内存访问的方功能调用和直接内存访问的方法编写符合特定操作系统管理规范的设备法编写符合特定操作系统管理规范的设备驱动程序。驱动程序。工具工具:VC+与与DDK开发包,或第三方开发工具开发包,或第三方开发工具如如DriverStudio。应用应用:在操作系统层面上的设备控制,并为应用:在操作系统层面上的设备控制,并为应用程序提供程序提供API支持。支持。优点优点:既控制硬件,又保证操作系统的完整与安:既控制硬件,又保证操作系统的完整与安全。全。缺点缺点:需要对底层信号有所了解。
5、:需要对底层信号有所了解。需要对操作系统的各个管理模块有深入的需要对操作系统的各个管理模块有深入的了解。了解。5现代微机原理与接口技术现代微机原理与接口技术4.应用层次应用层次特点特点:使用操作系统各种驱动程序所提供的功能:使用操作系统各种驱动程序所提供的功能调用或调用或API函数间接对硬件或内存进行访函数间接对硬件或内存进行访问。问。工具工具:VC+、Delphi、Java等。等。应用应用:编写面向终端用户的各类应用程序。:编写面向终端用户的各类应用程序。优点优点:无需对硬件控制有太多了解,只需完成应:无需对硬件控制有太多了解,只需完成应用层面的工作就可以用层面的工作就可以,而且还保证操作系
6、,而且还保证操作系统的完整与安全。统的完整与安全。缺点缺点:需要了解大量的:需要了解大量的API和功能调用函数的功和功能调用函数的功能。能。由于是间接调用,所以代码的效率和编译由于是间接调用,所以代码的效率和编译系统有很大的关系。系统有很大的关系。6现代微机原理与接口技术现代微机原理与接口技术16位段地址位段地址16位段内偏移位段内偏移:16位段地址位段地址16位段内偏移位段内偏移(左移四位)(左移四位)+20位物理地址位物理地址=6417H 0100H6417H10H+0100H=64170H+0100H=64270H采用了内存分段的办法,内存分为若干段,段的大小采用了内存分段的办法,内存分
7、为若干段,段的大小根据需要决定,最大为根据需要决定,最大为64KB10.2.1实地址模式的存储管理(同实地址模式的存储管理(同PC/XT)10.2Pentium4的内存管理的内存管理接口直接访问接口直接访问7现代微机原理与接口技术现代微机原理与接口技术0000000A0000100000110000FFFFFF640KB常规内存常规内存384KB高端内存高端内存64KB高内存区高内存区14095MB扩展内存扩展内存存放用户程序和存放用户程序和DOS驻留部分驻留部分存放显存、网卡和部分存放显存、网卡和部分用户的用户的DOS驱动程序和驱动程序和BIOS存放部分存放部分DOS驻留程序驻留程序大于大于
8、1M以上的以上的扩展内扩展内存,存,DOS下不能直接访下不能直接访问,需要用问,需要用XMS规范使规范使用。可利用用。可利用DOS调用或调用或BIOS调用来使用。调用来使用。8现代微机原理与接口技术现代微机原理与接口技术10.2.2保护模式下使用的系统地址寄存器保护模式下使用的系统地址寄存器GDTR48位的全局描述符表寄存器位的全局描述符表寄存器全局描述符表全局描述符表32位线性地址位线性地址16位界限值位界限值IDTR48位的中断描述符表寄存器位的中断描述符表寄存器中断描述符表中断描述符表32位线性地址位线性地址16位界限值位界限值TR16位的任务状态段寄存器位的任务状态段寄存器TSS的的1
9、6位选择字位选择字LDTR16位的局部描述符选择字寄存器位的局部描述符选择字寄存器LDT的的16位选择字位选择字9现代微机原理与接口技术现代微机原理与接口技术10.2.3保护模式下保护模式下Pentium4的段式存储管理的段式存储管理1.段式管理的地址变换段式管理的地址变换段寄存器的段寄存器的152位位偏移量偏移量4532310段描述符段描述符段表段表32位线性地址位线性地址物理物理地址地址逻辑逻辑地址地址段基址段基址Pentium系列的虚拟地址空间是系列的虚拟地址空间是24664TB。10现代微机原理与接口技术现代微机原理与接口技术2.段描述符段描述符D7D0段界限段界限70段界限段界限15
10、8基址基址70基址基址158基址基址2316基址基址3124TYPESAVLDPLPGD/B 0段界限段界限19160123456711现代微机原理与接口技术现代微机原理与接口技术D7D0AVLG D/B0段界限段界限1916用户的操作系统可用位用户的操作系统可用位D/B位位代码段代码段(D位位)D=1使用使用32位操作系统位操作系统和和32位寻址方式位寻址方式D=0使用使用16位操作系统位操作系统和和16位寻址方式位寻址方式数据段数据段(B位位)B=1使用使用ESP寄存器,上寄存器,上限为限为FFFFFFFFHB=0使用使用SP寄存器,上寄存器,上限为限为FFFFHG=0段长以段长以1字节为
11、单位字节为单位G=1段长以段长以4K字节为单位字节为单位D/B位位粒度位粒度位12现代微机原理与接口技术现代微机原理与接口技术AWREDCE=0E=1S=1DPLPD7D0存在位存在位特权位特权位S=1是非系统段是非系统段S=0是系统描述符是系统描述符代码段标志代码段标志数据段标志数据段标志兼容位兼容位可读位可读位访问位访问位扩展方向位扩展方向位可写位可写位非系统段中的第非系统段中的第5字节字节可执行位可执行位13现代微机原理与接口技术现代微机原理与接口技术系统描述符中的系统描述符中的TYPE14现代微机原理与接口技术现代微机原理与接口技术RPLTi选择符(段寄存器)选择符(段寄存器)1521
12、0索引索引Ti=1Ti=00101LDTLDTLDTGDT基址基址界限界限选择符选择符基址基址界限界限LDTRGDTR2215现代微机原理与接口技术现代微机原理与接口技术#includestdafx.h#include#include/wtypes.h定义了定义了WORDLONG,/DWORD,WORD等数据类型等数据类型DWORDLONGgdtr,savegdt;/下面是下面是GDT中将创建的数据段描述符表中将创建的数据段描述符表,基地址基地址0X00000F00,/段界限为段界限为0XFFFF,优先级为优先级为3的在内存中的可写数据段的在内存中的可写数据段WORDdescriptor4=0
13、 xFFFF,0X0F00,0XF200,0X0040;intresult10;intmain(intargc,char*argv)_asmpushebpsgdtgdtr/将将GDTR寄存器的内容读取到寄存器的内容读取到/gdtr开始的开始的6个字节中,其中个字节中,其中/前两个字节给出前两个字节给出GDT的界限值的界限值,/高高4个字节给出个字节给出GDT的基地址的基地址16现代微机原理与接口技术现代微机原理与接口技术movebp,dwordptrgdtr+2/将将gdt的基的基/地址读到地址读到EBP中中addebp,70h/我们选择我们选择70H偏移下的段描述偏移下的段描述/符(符(GD
14、T中第中第14个描述符)个描述符)leaedi,savegdtmovesi,ebpmovsd/以上以上4条指令保存原来在条指令保存原来在70H偏移上偏移上movsd/的描述符的描述符movedi,ebpleaesi,descriptor;movsd/把我们的数据段描述符装入把我们的数据段描述符装入70Hmovsd/偏移上偏移上pushesmovax,0073h/选择字为描述符偏移选择字为描述符偏移70H拼接上拼接上/低低3位控制位元位控制位元,其中其中Ti为为0,表表/示访问示访问GDT,RPL为为11,为为3级优级优/先级先级,所以就为所以就为73H17现代微机原理与接口技术现代微机原理与接
15、口技术moves,ax/ES装入选择字装入选择字73Hleaedi,result/将存放输出结果的变量将存放输出结果的变量/的地址放在的地址放在EDI中中moveax,1movebx,1_asmmovcx,10a1:moves:eax,eaxaddeax,4loopa1/上面上面4条指令将向物理地址条指令将向物理地址/0X00000F00处写处写10个双字个双字_asmmovcx,10a2:moveax,es:ebxmovedi,eax18现代微机原理与接口技术现代微机原理与接口技术addebx,4addedi,4loopa2/以上从物理地址以上从物理地址0X00000F00/处依次读出处依次
16、读出10个数据存放在个数据存放在/result数组中数组中_asmpopespopebpprintf(result=););for(inti=0;i10;i+)printf(%d,resulti););/输出结果输出结果return0;19现代微机原理与接口技术现代微机原理与接口技术10.2.4保护模式下保护模式下Pentium4的虚拟页式存储管理的虚拟页式存储管理主存主存页框页框页面页面程序程序1程序程序2程序程序320现代微机原理与接口技术现代微机原理与接口技术PGEPCE83176543210MCEPAE PSEDE TSDVMEPVI保留,缺省为全保留,缺省为全0CR4PAEPSE物理
17、地址位数物理地址位数页面大小页面大小0032位位4KB0132位位4KB/4MB1036位位4KB1136位位4KB/2MB21现代微机原理与接口技术现代微机原理与接口技术4KB分页方式分页方式3112119876543210PWTPCD页表基地址页表基地址3112PRWUSAVLAD0页目页目录项录项PWTPCD页框基地址页框基地址3112PRWUSAVLAD页表页表项项3112119876543210P=出现位,出现位,US=用户用户/监督位,监督位,PCD是页是页Cache禁止,禁止,D=Cache“脏脏”位,位,RW=读读/写位,写位,PWT=页写贯穿位,页写贯穿位,A=访问位,访问位
18、,AVL=用户的操作系统可用用户的操作系统可用位。而第位。而第7位(位(PS)在)在4KB分页中为分页中为0页目录页目录32位线位线性地址性地址页目录项号页目录项号页面号页面号偏移偏移CR332位物理地址位物理地址31222112110页表页表低低12位位高高20位位22现代微机原理与接口技术现代微机原理与接口技术4MB分页方式分页方式3122876543210PWTPCD页框基地址页框基地址3122PRWUSAD1页目录项页目录项32位线性位线性地址地址页目录项号页目录项号偏移偏移CR332位物理位物理地址地址3122210页目录页目录低低22位位高高10位位23现代微机原理与接口技术现代微
19、机原理与接口技术31543210PWTPCD32字节对齐的字节对齐的PDPT基地址基地址CR3寄存器寄存器63363512116543210PWTPCDPAVLPDPT项项4KB对齐的页目录基地址对齐的页目录基地址(高(高24位)位)63363512119876543210PWTPCD4KB对齐的页表基地址对齐的页表基地址PRWUSAVLA0页目录项页目录项PWTPCD4KB对齐的页框基地址对齐的页框基地址PRWUSAVLAD页表项页表项633635121198765432100GPentiumIII36位地址下的位地址下的4KB分页方式地址转换分页方式地址转换32位线性地址位线性地址页目录项
20、号页目录项号页面号页面号偏移偏移CR336位物理地址位物理地址313029212012110页目录页目录页表页表PDPT项号项号页目录指针表页目录指针表464位位51264位位51264位位低低12位位高高24位位24现代微机原理与接口技术现代微机原理与接口技术32位线性地址位线性地址页目录项号页目录项号偏移偏移CR336位物理地址位物理地址31302921200页目录页目录PDPT项号项号页目录指针表页目录指针表464位位51264位位页目录项页目录项PWTPCD2MB对齐的页框基地址对齐的页框基地址PRWUSAVLAD6336352120121198765432101G低低21位位高高15
21、位位PentiumIII36位地址下的位地址下的2MB分页方式地址转换分页方式地址转换25现代微机原理与接口技术现代微机原理与接口技术计算机底层硬件计算机底层硬件操作系统内核与操作系统内核与VxD操作系统提供的接口操作系统提供的接口应用软件应用软件10.3.1虚拟机与虚拟机与VxD的引入的引入特权级特权级3特权级特权级010.3Windows9x驱动程序编写驱动程序编写26现代微机原理与接口技术现代微机原理与接口技术Windows9xSYSVMWin16地址空间地址空间Win16程序程序Win16程序程序Win16程序程序Win16程序程序Win32程序程序Win32地址空间地址空间Win32
22、程序程序Win32地址空间地址空间DOSVMDOS程序程序DOSVMDOS程序程序27现代微机原理与接口技术现代微机原理与接口技术10.3.1保护模式下的保护模式下的I/O端口访问端口访问执行执行in,out指令指令CPLIOPL?IOPM相关位相关位=0?进行进行I/O操作操作否否否否产生一个一产生一个一般保护异常般保护异常是是是是IOPM是对所有是对所有VM都都起作用的权限机制,它以起作用的权限机制,它以位(位(bit)来代表每个端)来代表每个端口。某位为口。某位为1,则该代表,则该代表的端口被禁止访问;某位的端口被禁止访问;某位为为0;则允许访问该位所;则允许访问该位所代表的端口。代表的
23、端口。IOPL用以表示指定的用以表示指定的I/O操作处操作处于特权级的哪一级。它在于特权级的哪一级。它在EFLAGS中。中。CPL当前段的当前段的I/O优先级,它实优先级,它实际上是际上是CS段选择符的第段选择符的第0第第1位。位。28现代微机原理与接口技术现代微机原理与接口技术V86模式下(模式下(DOSVM)的)的I/O端口访问端口访问执行执行in,out指令指令IOPM相关位相关位=0?进行进行I/O操作操作否否产生一个一产生一个一般保护异常般保护异常是是如何捕获一个端口的访问?如何捕获一个端口的访问?29现代微机原理与接口技术现代微机原理与接口技术30现代微机原理与接口技术现代微机原理
24、与接口技术10.3.2保护模式下对中断或异常的处理保护模式下对中断或异常的处理外部中断和处理器异常外部中断和处理器异常软中断软中断CPL门描述门描述符的符的DPL?是是访问各类门描述符访问各类门描述符转移后代码段转移后代码段的的DPLCPL?是是执行执行0特权级别中的中断处理程序特权级别中的中断处理程序禁止访问禁止访问否否否否31现代微机原理与接口技术现代微机原理与接口技术CPU根据中断向量表根据中断向量表IDT调用相应的调用相应的VMM异常处异常处理程序,从而切换到理程序,从而切换到0特权级别。特权级别。其他各种其他各种VxD可以通过安装回调例程来响应处理各可以通过安装回调例程来响应处理各种
25、异常和中断种异常和中断,但是它们不能改变中断描述符表,但是它们不能改变中断描述符表IDT中中给出的各种给出的各种VMM异常处理程序。异常处理程序。VMM异常处理程序通过使用异常处理程序通过使用CALL指令调用安装指令调用安装的各个回调例程的各个回调例程或自身处理异常。或自身处理异常。对于硬件中断,对于硬件中断,VMM则将控制权交给则将控制权交给VPICD(虚拟(虚拟可编程中断控制器)处理,可编程中断控制器)处理,VPICD就调用其他就调用其他VxD通通过系统服务过系统服务VPICD_Virtualize_IRQ安装的回调例程处安装的回调例程处理硬件中断。理硬件中断。一个回调例程要么处理中断和异
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 现代 微机 原理 接口 技术 10
限制150内