• 一.Windows内核保护机制--保护模式介绍


    x86 CPU分为3个模式:实模式,  保护模式,  虚拟8086模式。

    一.实模式:

    一般CPU在刚刚运行的时候,进入实模式,在这种模式下,最大寻址空间1MB,最大分段64KB,全部地址都是可读,可写,可执行的.

    8086地址线的物理结构:20,也就是它可以物理寻址的内存范围为2^20个字节,即1 M空间,但由于8086/8088所使用的寄存器都是16位,能够表示的地址范围只有0-64K,这和1M地址空间来比较也太小了,所以为了在8086/8088下能够访问1M内存Intel采取了分段寻址的模式:16位段地址+16位偏移。其绝对地址计算方法为:16位基地址左移4(十六进制0xF,二进制表示为:1111,因此左移4位,实际就是16进制左移一位)+16位偏移=20位地址。  比如:DS=1000H 偏移=FFFFH 那么绝对地址就为:10000H +0FFFFH = 1FFFFH 地址单元.

    8个16位的通用寄存器:

      AX (可以拆分成两个AH/AL的8位寄存器)

      BX (BH,BL)

      CX (CH,CL)

      DX (DH,DL)

      SI (source index, 源索引寄存器)

      DI (destination index, 目的索引寄存器)

      BP (base pointer, 基数指针寄存器)

      SP (stack pointer, 堆栈指针寄存器)

    段寄存器

      CS (code segment, 代码段寄存器)

      DS (data segment, 数据段寄存器)

      ES (extra segment, 附加段寄存器)

      SS (stack segment, 堆栈段寄存器)

    专用寄存器

      IP (instruction pointer, 指令指针寄存器, 它只与CS一起使用,只有处理器才能直接改变它的值)

      FLAGS (标志位寄存器)

    二.保护模式:(这个就比较重要了!)

      当电脑启动后,CPU从实模式,加载初步设置,然后进入保护模式,给用户对内存数据的各种操作加上了限制.

      保护模式的2种重要机制:段和页(段保护,页保护,内容比较繁多,在后面分开进行记录)

      注:Windows系统都是工作在保护模式下的,无论是高2G系统空间,还是低2G用户空间,都是在保护模式下运行的,   与实模式,是两码事,这点要区分开,避免概念混淆!(Windows系统空间概念)

    三.虚拟8086模式:

      内存寻址方式:段式寻址,与实模式一样 
            支持多任务和内存分页 
            v86模式主要是为了在保护模式下兼容以前的实模式应用,即可支持多任务, 
            但每个任务都是实模式的工作方式。 

  • 相关阅读:
    iOS设计模式:观察者
    Java面向接口编程小例子
    《The DeadLine》(《最后期限》) 读后感
    Codeforces Round #395 Div1的A题Timofey and a tree
    重写和强制转换再调用能编译但不能运行
    Java继承和静态-加载顺序
    C++之pair
    用Java面向对象思想实现一个微博的功能(未完)
    Java对象在内存图示
    Java中OOP对象和引用
  • 原文地址:https://www.cnblogs.com/jszyx/p/12404516.html
Copyright © 2020-2023  润新知