zoukankan      html  css  js  c++  java
  • 一.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模式主要是为了在保护模式下兼容以前的实模式应用,即可支持多任务, 
            但每个任务都是实模式的工作方式。 

  • 相关阅读:
    ElasticSearch基础之批量操作(mget+mbulk)
    ElasticSearch基础+文档CRUD操作
    Flask_restful 插件实战笔记——基本概念与使用
    Django rest framework之序列化小结
    我所理解的Restful API最佳实践
    ElasticSearch入门及核心概念介绍
    生产环境下Flask项目目录构建
    利用linq的Take Skip方法解决 集合拆分的问题
    Oracle trunc() 函数处理数字、日期的整理
    左连接条件与where条件的区别
  • 原文地址:https://www.cnblogs.com/jszyx/p/12404516.html
Copyright © 2011-2022 走看看