资源描述:
《Intel X86 CPU系列的寄存器》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、---IntelX86CPU系列的寄存器系统软件开发指南系列主要内容学习寄存器知识的意义32位CPU系统寄存器和数据结构寄存器分类介绍通用寄存器标志寄存器控制寄存器调试寄存器中断和异常管理寄存器内存管理寄存器在操作系统上用到的寄存器学习寄存器知识的意义掌握系统软件设计汇编嵌入在C语言中的编写Bootloader的设计(BSP)理解IntelCPU的发展趋势深刻理解平台的体系结构编写更高质量的代码编译器底层的优化32位CPU系统级寄存器和数据结构(1)大家在这张图中,注意寄存器类别之间的关系.12233432位CPU系统
2、级寄存器和数据结构(2)逻辑地址线性地址物理地址转换图页框选择符偏移量CR3描述符表15031002231121121段描述符基地址+页目录页表项页内偏移值页目录表页表页目录项页表项物理地址逻辑地址线性地址寄存器分类介绍(1)-------通用寄存器AXBXCXDXSPBPSIDI堆栈指针源地址基址指针目的地址指针寄存器变址寄存器数据寄存器通用寄存器如果前面带由大写字母E,代表32位寄存器寄存器分类介绍(2)标志寄存器(EFLAGSregister)----onlyone作用:控制任务状态和模式切换、中断处理、指
3、令追踪和访问权限控制.寄存器中的标志位需要特权指令代码才可以修改(特权指令:运行在内核态下的代码)Figure:SystemFlagsintheEFLAGSRegister置标志位的有效位看你具体要做什么,对应的位置置有效的标志位寄存器分类介绍(3)控制寄存器((CR0,CR1,CR2,CR3,andCR4)作用:控制寄存器决定处理器的操作模式和当前执行任务的一些特征种类:CR0:控制系统的工作模式和处理器的状态CR1:保留CR2:保留出错的线性地址CR3:页目录基址的物理地址和PCD和PWT标志位(和CACHE有关)
4、CR4:一些结构的扩展.表明对于特定的处理器和操作系统执行支持.由实模式转换到保护模式、二级页面映射机制的建立、中断处理等等,会用到这些寄存器,.寄存器分类介绍(4)控制寄存器(CR0,CR1,CR2,CR3,andCR4)在这些寄存器中,设置标志位的主要集中在CR0与CR4.寄存器分类介绍(5)控制寄存器(CR0,CR1,CR2,CR3,andCR4)CR0PG:分页有效时,置位为1,清空时为0.与PE一同使用.该指令表明是否使用页表将线性地址转换成物理地址CD:cache缺失设置位NW:直写无效(直写:高速缓存中的
5、数据始终保持与主存储器中数据匹配)AM:对齐功能屏蔽(与EFLAGS寄存器中AC标志位一同使用)WP:写保护NE:数字错误标志位(与浮点协处理器共同使用)ET:扩展类型.设置有效位时,支持ntel387DX数学协处理器指令.TS:每当任务切换时就设置该位,并且在解释协处理器指令之前测试该位EM;该位表明是否需要仿真协处理器的功能MP:协处理器监视标志位PE:保护模式使能,当设置有效位,CPU工作在保护模式.反之,实模式.寄存器分类介绍(6)控制寄存器(CR0,CR1,CR2,CR3,andCR4)CR3:PCD:控制当
6、前页目录表的缓冲,当设置清空时,缓冲.置位时,缓冲无效.与CR0中的CD或PG一同使用PWT:控制cache采取直写还是回写的策略.当设置清空时,回写有效.当置位时,直写有效.CR4:VME:虚地址模式.当清空时,无效.PVI:保护模式虚中断,当清空时,无效TSD:时间戳允许标志位.当清空时,允许RDTSC指令执行在任务特权级上.当置位时,只允许工作在特权级0.DE:调试扩展.置位,表明DR4与DR5将产生没有定义的异常PSE:当置位,使用4M的页面;清空,使用4K的页面PAE:置位,使用36物理内存的分页机制.清空时
7、,使用32位分页机制MCE:置位,使用机器检查异常机制.PGE:置位,启动全局页面.当写CR3时,也不会被替换.PCE:置位,表明使RDPMC指令工作在任何保护级别.OSFXSR:置位.表明操作系统支持FXSAVEandFXRSTOR指令OSXMMEXCPT:置位.表明操作系统支持不可屏蔽的SIMD浮点异常.寄存器分类介绍(7)调试寄存器作用:调试寄存器主要作用是调试应用代码、系统代码、开发多任务操作系统.来监视代码的运行和处理器的性能.DR0---DR3:调试地址寄存器DR4—DR5:保留.还没有定义DR6:调试状态
8、寄存器DR7:调试控制寄存器在开发底层系统时,会用到这些寄存器.寄存器分类介绍(8)调试寄存器设置标志位集中在DR7寄存器分类介绍(9)调试寄存器DR0-DR3:保留32位断点的线性地址.DR6B0—B3:断点状态的监测BD:调试寄存器访问监测.置位,表明在指令流中,下一条指令将访问其中的一个调试寄存器BS:单步执行标志位BT:任