搜索
    Hi~登录注册
    查看: 5854|回复: 878
    收起左侧

    Intel 32位处理器原理

    [复制链接]

    8

    主题

    0

    精华

    32 小时

    在线时间

    高级会员

    Rank: 4

    积分
    621
    发表于 2016-7-6 12:10:35 | 显示全部楼层 |阅读模式
    Intel处理器主要功能是获取指令,执行指令,然后在获取指令执行,很多人以为处理器是一个快速处理指令的傻子,就是不停的处理指令,这个说法很对,但也有些细节的地方需要说明一下,这个主题就说明一下处理器的工作原理,他是怎么一个工作的过程。
    Intel处理器主要是为计算机操作系统而设计的,所以他为操作系统提供了很大的支持。

    指令格式:
    Intel处理器的主要功能就是获取指令执行,这个指令一般在内存中,不过刚开机的时候内存中没有任何数据,他会执行BIOS ROM里面的指令,一般我们安装的BIOS程序会按照设置吧对应的启动项的存储设备里面第一扇区装进内存的0x7c00处并跳转,之后内存中就会有数据了。Intel处理器的指令格式如下
    标签:助记参数 1 参数2 参数3

    一般我们的程序只使用助记符,参数1 参数2 参数3,3个参数是可选的,助记符必须有
    比如hlt这是助记符没有参数
    mov eax , 10
    mov是助记符 eax是参数1 10是参数2
    不过这是汇编语言,汇编语言的每个指令都对应一个机器指令,并且汇编语言的指令格式和机器指令是一模一样的,比如0xF4这是就是汇编里面的hlt是助记符没有参数他们的格式一样。

    处理器就是在内存中获取这些指令并执行的。




    上一篇:linux红帽常用的一些语法
    下一篇:对新东方某站的一次检测
    回复

    使用道具 举报

    8

    主题

    0

    精华

    32 小时

    在线时间

    高级会员

    Rank: 4

    积分
    621
     楼主| 发表于 2016-7-7 07:57:10 | 显示全部楼层
    一些历史遗留问题:

    x86架构的处理器为了兼容8086的程序,加入了运行模式,有4个运行模式:实模式,保护模式,虚拟8086模式,系统管理模式。处理器刚开始工作,或者进行一次复位都会在实模式下工作,这个就是8086的模式,用的是8086的机制,只有经过一些设置之后才会进入保护模式。

    这个设置就在cr0寄存器的最低位,也叫pe位,这个位为1就是保护模式,为0就是实模式,不过这个寄存器需要用eax来读写
    mov eax, cr0
    or eax, 0x01
    mov cr0, eax
    这样处理器就进入了保护模式。
    还有一个问题就是,8086处理器只有20根地址线,最大寻址也就1mb,不过x86架构的处理器有32根地址线,寻址能力是4gb,这个在8086处理器上还可以,如果寻址大于1mb会由于逆出回到内存地址0的地方,但是x86有了32根地址线了,当寻址大于1mb就不会逆出而是到了0x100000的地方,所以为了兼容8086程序,x86处理器默认让地21根地址线是关闭的状态,这样当寻址大于1mb的时候也会逆出,就兼容了8086程序。不过到了保护模式,我们有了32位寻址的能力,但是这个第21根地址线还是关闭的状态,我们需要打开第21根地址线(A20这是Intel命名的规则,第一根地址线是A0)来达到真正的4gb寻址。

    in al,92h
    or al,00000010b
    out 92h,al
    这样就打开了A20。
    回复 支持 反对

    使用道具 举报

    8

    主题

    0

    精华

    32 小时

    在线时间

    高级会员

    Rank: 4

    积分
    621
     楼主| 发表于 2016-7-7 07:29:43 | 显示全部楼层
    寄存器:

    寄存器也是存储数据的,只不过他特别小,一般32位处理器上的寄存器都是32位。很多人的疑问是有了内存这么大的存储设备为什么还需要寄存器,这是因为处理器的数据运算这些功能只能用寄存器,这里需要注意,内存是没有数据运算的功能的,再有一个就是寄存器的访问比内存快,还有就是寄存器的特殊功能,有些寄存器是特定的那些功能的,而且都很重要。

    Intel 处理器x86架构下有4个通用寄存器
    eax
    ebx
    ecx
    edx
    这4个寄存器是通用的,主要用作数据运算,比较这些功能
    6个段寄存器
    cs 代码段
    ds 数据段
    es 附加段
    ss 栈段
    fs gs都是附加段
    他们的主要作用是访问内存,里面存储段的选择子(这个概念以后说)
    5个指针寄存器
    edi 附加指针
    esi 数据指针
    esp 栈指针
    ebp 基址
    eip 指令指针
    主要功能也是访问内存他和段寄存器一起使用,里面存储的是段内偏移地址。
    另外还有几个特殊的寄存器
    GDTR
    LDTR
    IDTR
    EFR
    CR0到CR4
    D0到D7
    TR
    TR0到TR6
    这些寄存器用于特殊功能以后介绍。
    回复 支持 反对

    使用道具 举报

    8

    主题

    0

    精华

    32 小时

    在线时间

    高级会员

    Rank: 4

    积分
    621
     楼主| 发表于 2016-7-8 11:39:51 | 显示全部楼层
    全局描述符表:

    之前说过内存的访问是分段寻址的,段必须先注册在使用,段是注册在内存中的以表是形式存在,里面保存的段信息,每个段描述符占8字节。这个表叫全局描述符表(GDT),这个表只要一注册就是全局的。这个表在内存中的位置是自定义的,可以由程序指定。保存gdt位置信息的是GDTR寄存器,这是一个48位寄存器,低16位是gdt长度,高32位是gdt起始地址。另外gdt必须在实模式下装载,进入保护模式可以修改gdt或者换个地方定义。
    因为这个表每8字节保存一个段信息,所以gdt大小必须和8字节对齐。
    回复 支持 反对

    使用道具 举报

    8

    主题

    0

    精华

    32 小时

    在线时间

    高级会员

    Rank: 4

    积分
    621
     楼主| 发表于 2016-7-6 12:18:57 | 显示全部楼层
    分段寻址:
    重8086处理器开始就一直采用分段寻址,处理器吧一个内存分成逻辑上的段,只不过8086对段的概念还没有特别成熟,到了80386以后(x86架构),对段的概念才有一个成熟的系统。
    1.段必须先注册后使用
    2.段有保护机制
    3.段寄存器里面不再是段基地址,而是段选择子
    等等
    这样段就成为了内存寻址的基础。当处理器获取指令执行,获取数据,跳转等操作都在段的基础上执行。
    对于分段寻址我手机快没电了 ,先充电
    回复 支持 反对

    使用道具 举报

    8

    主题

    0

    精华

    32 小时

    在线时间

    高级会员

    Rank: 4

    积分
    621
     楼主| 发表于 2016-7-29 21:22:48 | 显示全部楼层
    重上面可以看出,这个描述符的内容段地址被分成好几段,也就是说Intel公司当初设计的时候并没有想到寻址能力能达到4个G,然后就这样一直做下去了,咱们做开发的写部分就感觉特别费劲。{:5_140:}
    另外这里说明一下之前的一个错误,处理器在实模式进入保护保护之后的一个长跳转我忘写了。主要内容是设置cs和eip,因为新的寻址方式建立起来,以前的cs的段基地址,保护模式下是段选择子。
    回复 支持 反对

    使用道具 举报

    8

    主题

    0

    精华

    32 小时

    在线时间

    高级会员

    Rank: 4

    积分
    621
     楼主| 发表于 2016-7-9 10:23:34 | 显示全部楼层
    全局描述符表是安装:

    x86处理器使用lgdt来装载gdtr寄存器,lgdt指令只有一个参数这个就是gdtr的内容。然后所有段都得在gdt里面注册后在使用。
    回复 支持 反对

    使用道具 举报

    8

    主题

    0

    精华

    32 小时

    在线时间

    高级会员

    Rank: 4

    积分
    621
     楼主| 发表于 2016-7-21 11:09:31 | 显示全部楼层
    全局描述符的内容:
    gdt里面每8字节为一个描述符,第一个描述符是空描述符内容是8字节的0x00。第二个描述符开始就有内容了,就是段的注册信息,因为所有段必须先注册在使用。描述符内容 截屏_20160721_110658.png

    回复 支持 反对

    使用道具 举报

    怕痛就别爱ゝ 该用户已被删除
    发表于 2016-7-21 11:13:07 | 显示全部楼层
    提示: 作者被禁止或删除 内容自动屏蔽
    回复 支持 反对

    使用道具 举报

    0

    主题

    0

    精华

    1 小时

    在线时间

    金牌会员

    Rank: 6Rank: 6

    积分
    1082
    发表于 2016-7-21 11:17:29 | 显示全部楼层
    88骇客网屌屌屌迪奥刁=
    回复 支持 反对

    使用道具 举报

    爱付出的太明显. 该用户已被删除
    发表于 2016-7-21 11:38:07 | 显示全部楼层
    提示: 作者被禁止或删除 内容自动屏蔽
    回复 支持 反对

    使用道具 举报

    游客
    回复
    您需要登录后才可以回帖 登录 | 获取账号

    快速回复 返回顶部 返回列表