- 论坛徽章:
- 0
|
我在看了版主关于64位cpu的一些基础知识后,我想在这个帖子上,把自己看完《64位微处理器及其编程》中所学习过程中一些笔记总结出来,供大家共同学习。先声明一下,因为自己的基础知识比较差,如有写得全面或者用词不当的话,请朋友加以指正,所以也就先说声谢谢了。(这是以AMD64位为基础的,大部分是原文)
ADM64架构概述
一、AMD64架构引入以下新的特征。
1)、寄存寄存器的扩展。
。8个新的通用寄存器(GPR)
。所有的16个GPR都是64位字宽
。8个新的128位XMM寄存器
。对于所有的GPR都用统一的字节寄存器寻址
。访问扩展寄存器的64位指令前缀
2)、长模式
。升到64位虚拟地址(最大支持)
。64位指令指针(RIP)
。新的“相对指针的寻址”模式。
。线性地址空间
二、寄存器
。通用寄存器16个,RAX、RBX、RCX、RDX、RBP、RBP、RSI、RDI、RSP、R8-R15.在这里要多讲一下,我想这16个寄存器的前8个,就是如同以前从16位升级到32位一样,只是把64位分成4等分,然后在按照工作模式进行组合进行使用,如组成32位的EAX、EBX等。其本质是在一个64位中。
。128位MMX寄存器16个,XMM0-XMM15。这里与32位的cpu基本上没有什么区别的,包括位数,有区别是加了8个而已。
。64位MMX寄存器8个,MMX0-MMX7。
。x87寄存器8个,FPR0-FPR7(也是栈寄存器ST(0)-ST(7),是FPRO和FPR7物理寄存器的逻辑映象。)
。指令指针1介,RIP。
。标志寄存器1个,RFLAGS。
AMD64架构的特点。
一、模式与模型
1、AMD64架构支持纯X86传统模式。它有二种工作模式。一是传统模式。这当然包括实模式、保护模式和虚拟8086模式。这当然不是AMD所希望得到,所以这种模式是在复位的情况下进行的。第二种模式呢?是AMD公司所希望得到的新的模式,也就是期望的。那就是长模式。说白了,就是我们所盼望的64位模式。注意的是,在长模式下,cpu不支持虚拟8086模式与实模式。
2、保护检查(这段是原书的原话,我想按原话最好,因为这不用我去解释)
在长模式中,AMD64架构对保护机制作了如下的改变:
1)、长模式中,页保护检查机制扩展为包括U/S和R/W保护位,它们在存储在PLML4入口和PDP入口。
2)、传统模式下合法的几个段类型和门描述符类型在长模式(兼容和64位模式)下是不合法的。在长模式下类型检查无效。
3)、对CS、DS、ES、FS、GS、和SS段界限检查在64位模式下被禁用。但可以激活保留的LDT、GDT、和TSS系统段的段界检查。兼容模式下,执行所有的段界检查。
4)、64位模式下使用的代码和数据是可读写。(我的理解是,在64位的环境下,上面所写的段是不可用的,即使要用,是有条件的,也是个别的) |
|