8086/8088微处理器只有一种工作模式:实地址模式。

32为的80x86微处理器有3种工作模式:实地址模式、保护模式和虚拟8086模式。

  实地址模式

对于8086/8088微处理器,实模式是它的唯一工作方式,对于80386以上的处理器来说,实模式是它的工作方式之一,主要是用于兼容8086/8088。MS DOS 操作系统运行在实模式下,Windows 9x/NT/2000操作系统运行在保护模式下。

实模式的工作特点可以归纳如下:

1.只使用低20位地址线,地址范围00000H~0FFFFFH,使用 1MB 的内存储器;

2.EIP,ESP,EFLAGS 寄存器高16位为0,用CS:IP作为指令指针,用SS:SP作为堆栈指针;

3.段寄存器内存放段起始地址的高16位,偏移地址为16位,用“段基址X16+偏移地址”的方法计算物理地址,允许使用32位寄存器存放地址,但地址的高16位应该为0;

4.32位处理器工作在实模式时,允许使用32位寄存器存放数据,使用32位指令进行32位数据运算。

80386以上的微处理器加点启动时,自动进入实模式。进行必要的准备之后,通过将CR0寄存器PE位置1,可以进入保护模式。

保护模式

保护模式是32位微处理器的主要工作模式。所谓保护,是指用硬件对每个人物使用的我内存空间进行保护,阻止其他人物的非法访问。保护功能是运行多任务操作系统的必备条件之一。

1.保护模式下的寻址方式

保护模式下采用与实模式不同的寻址方式

保护模式下采用分段管理分页管理相结合的内存寻址方式。首先,逻辑地址通过分段管理机构转换为32位的线性地址,然后,32位线性地址通过分页管理机构转换为32位/36位的物理地址。两次转换都是由硬件控制完成的。

80x86 CPU 的工作模式的更多相关文章

  1. 鸿蒙内核源码分析(工作模式篇) | CPU是韦小宝,七个老婆 | 百篇博客分析OpenHarmony源码 | v36.04

    百篇博客系列篇.本篇为: v36.xx 鸿蒙内核源码分析(工作模式篇) | CPU是韦小宝,七个老婆 | 51.c.h .o 硬件架构相关篇为: v22.xx 鸿蒙内核源码分析(汇编基础篇) | CP ...

  2. apache工作模式:prefork和worker

    apache作为现今web服务器用的最广泛也是最稳定的开源服务器软件,其工作模式有许多中,目前主要有两种模式:prefork模式和worker模式 一.两种模式 prefork模式: prefork是 ...

  3. (转载)关于Apache 的两种工作模式

    今天在查看服务器的时候,发现服务器http请求数 每天增长越来越多,在优化集群服务器的时候,查看到Apache 的工作模式是prefork,于是想到了worker 模式, 想暂时的把当前运行模式改成w ...

  4. ARM体系的7种工作模式

    一.ARM体系的CPU有以下7种工作模式:   用户模式(usr)    大多数程序运行于用户模式 特权模式   系统模式(sys)   运行具有特权的操作系统任务 异常模式 中断模式(irq)   ...

  5. SPI总线的4种工作模式

    spi总线的4种工作模式 0 to 4 modes SPI接口的全称是"Serial Peripheral Interface",意为串行外围接口,是Motorola首先在其MC6 ...

  6. ARM处理器工作模式

    学习ARM处理器参考的首选资料是ARM Architecture Reference Manual,是最专业权威的学习资料. ARM处理器共有7种工作模式,如表1-1和1-2所示: 表1-1 处理器工 ...

  7. 讨论.NET Core 配置对GC 工作模式与内存的影响

    引出问题: Asp.net core应用在 Kubernetes上内存使用率过高问题分析 https://mp.weixin.qq.com/s/PqhUzvFpzopU7rVRgdy7eg 这篇文章中 ...

  8. [国嵌笔记][021-022][ARM处理器工作模式]

    [ARM处理器工作模式] 处理器工作模式 1.User(urs):用户模式,linux应用程序运行在用户模式 2.FIQ(fiq):快速中断模式 3.IRQ(irq):中断模式 4.Superviso ...

  9. Intel系列微处理器的三种工作模式

    body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gra ...

随机推荐

  1. gtk+学习笔记(五)

    今天继续做的是昨天那个界面对的优化,直接贴下代码, void click_radio(GtkWidget *widget,gpointer *data) { 3 GtkWidget *dialog; ...

  2. Python学习:socket.gaierror: [Errno -8]

    在终端内打开python模式,利用如下代码查询本机hostname,这里举例为“xxMacBookPro.local”: import socket socket.gethostname() 在/et ...

  3. Spring整合junit测试

    本节内容: Spring整合junit测试的意义 Spring整合junit测试 一.Spring与整合junit测试的意义 在没整合junit之前,我们在写测试方法时,需要在每个方法中手动创建容器, ...

  4. hdu 1007 N个点中输出2点的最小距离的一半

    分治法 Sample Input20 01 121 11 13-1.5 00 00 1.50 Sample Output0.710.000.75 # include <iostream> ...

  5. ASP.NET MVC之Ajax如影随行

    一.Ajax的前世今生 我一直觉得google是一家牛逼的公司,为什么这样说呢?<舌尖上的中国>大家都看了,那些美食估计你是百看不厌,但是里边我觉得其实也有这样的一个哲学:关于食材,对于种 ...

  6. hdu 5936 2016ccpc 杭州 - D

    数学题好难啊!!!! 最长长度不超过十位, 折半枚举... 题解 #include<bits/stdc++.h> #define LL long long #define fi first ...

  7. VPS开启Google BBR

    前言:系统环境为Ubuntu 18.04 修改系统变量: echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf ec ...

  8. thinkphp图像的裁剪、缩放、加水印

    ThinkPHP 图片处理函数,需要文字水印字体,可在windows下 控制面板 > 大图标(右上角) > 字体 找到需要的字体 1 2 3 4 5 6 7 8 9 10 11 12 13 ...

  9. PHP isset和empty 详细比较

    找了几篇博文,这应该是说的最清楚的.链接如下:http://blog.chinaunix.net/uid-25311424-id-3966622.html

  10. Linux C函数库参考手册

    目录 第1章 字符测试函数 isalnum(测试字符是否为英文字母或数字) isalpha(测试字符是否为英文字母) isascii(测试字符是否为ascii码字符) isblank(测试字符是否为空 ...