iardebug模式寄存器的值不变化_X86 CPU各种操作模式

X86架构的CPU是我们日常生活中最常接触的CPU,主要以Intel和AMD两家生产的CPU为主。今天介绍一下X86架构CPU的几种操作模式。

实地址模式 或 8086模式

8086模式其实是对Intel 8086CPU功能的保留。Intel 8086是由Intel于1978年所设计的16位处理器芯片。Intel 8086的每个寄存器的bit位数为16位。访问存储器时使用20bit的地址,因此可以访问的存储器空间为1M。

Intel 8086 CPU 没有对存储器的访问进行任何限制,程序中给出的地址都指向实际的存储器相应的位置,也就是说任何程序都可读写任意存储器的任意位置。

由于CPU的发展Intel 8086已经不能满足市场需要,但由于需要兼容旧软件和设计需要等原因Intel 8086的功能在后续CPU中得到的保留,并称其为8086模式或实地址模式。现在所有X86架构的CPU在接通电源后都运行在8086模式下,然后再通过软件切换到别的模式(通常是由操作系统来完成)。

**为什么说存储器而不说内存,是因为存储器不单单是内存,同时包括显存、BIOS、外设(鼠标、键盘等)

保护模式

由于8086模式对存储器的访问不做任何限制,因此导致了众多的安全隐患。之后Intel推出具有保护功能的CPU。

量变方面,增加了寄存器的数量,扩展了寄存器的bit位数量(变为32位)。访问存储器时使用了32位bit的地址,理论上可以访问4GB的存储器空间。

除了量变,软件运行环境也发生了质的变化。软件不能直接访问存储器的内容。而是由操作系统,利用CPU提供的保护功能,管理访问存储器的全过程。程序中给出的地址不再直接指向实际存储器的相应位置,而是由操作系统做了相应的转换。因此操作系统可以使程序和程序之间相互隔离(即使两个软件给出了相同的地址,经过转换后访问的也是不同的位置),从而大大地提高了安全性。保护模式需要32位操作系统的支持。

虚拟8086模式

为了兼容旧软件,保护模式提供了一种机制可以直接运行8086模式的软件,称为虚拟8086模式。

严格来说虚拟8086模式并不是一种CPU工作模式,只是在保护模式下模拟了8086模式软件运行的环境,因此称为【虚拟】

64-bit模式

64-bit模式是目前的主流模式,Intel和AMD分别在2001年和2003年推出自己的64-bit方案。简单来说64-bit模式是在保护模式的基础上增加了CPU的寄存器数量,并扩展了单个寄存器的bit位,从原来的32位扩展到64位。除了寄存器的变化CPU可以访问的存储器空间也得到扩展,访问存储器空间使用的地址的bit位数量由32位扩展到64位。理论上可以访问2的64次方个字节的存储器空间。于此同时64-bit的CPU需要64位操作系统的支持。

兼容模式

兼容模式是与64-bit模式同时诞生的。由于在64-bit模式诞生之前,所有的软件都是针对32-bit的CPU编写的,为了使旧有的软件可以直接在新的CPU上运行(不需要通过源代码重新编译就可以运行),因此设计了兼容模式。虽然使用的是64-bit的CPU,但在兼容模式下64-bit模式新增的寄存器是不可以使用的,同时寄存器的bit位为32位。访问存储器空间使用的地址的bit位为32位,理论上可以访问4GB的空间。兼容模式需要64位操作系统支持。

deb3beac9b58bcdfe0b21c05121d2249.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值