当前位置: 首页 > article >正文

AMD简单读书笔记2

目录

操作模式(也就是机器模式)

长模式

64 位模式(长模式的一个子模式)

兼容模式

经典模式(Legacy Mode)


操作模式(也就是机器模式)

我们在上一章节的时候已经一睹芳容,得知到了几个经典的模式。现在,我们就来进一步的学习这些模式。

长模式

这个模式是经典保护模式的一次扩展。长模式由两个子模式组成:64 位模式和兼容模式。64 位模式支持 AMD64 架构的所有功能和寄存器扩展。兼容模式支持与现有 16 位和 32 位应用程序的二进制兼容性。长模式不支持传统实模式或传统虚拟 8086 模式,也不支持硬件任务切换。换而言之,则是舍弃了对几个最经典的模式的兼容性来换取一定的轻便

64 位模式(长模式的一个子模式)

64 位模式(长模式的子模式)支持全部 64 位虚拟寻址和寄存器扩展功能。此模式由操作系统基于单个代码段启用。由于 64 位模式支持 64 位虚拟地址空间,因此它需要 64 位操作系统和工具链。现有应用程序二进制文件可以在兼容模式下运行,无需重新编译,在以 64 位模式运行的操作系统下,或者应用程序也可以重新编译以在 64 位模式下运行。寻址功能包括 64 位指令指针 (RIP) 和 RIP 相对数据寻址模式。此模式通过仅支持平面地址空间(具有单一代码、数据和堆栈空间)来适应现代操作系统。寄存器扩展。64 位模式通过一组指令前缀(称为 REX 前缀)实现寄存器扩展。这些扩展添加了八个 GPR(R8–R15),将所有 GPR 扩展为 64 位,并添加了八个 YMM/XMM 寄存器(YMM/XMM8–15)。REX 指令前缀还提供了字节寄存器功能,使十六个 GPR 中的任何一个的低字节都可用于字节操作。这会产生一组统一的字节、字、双字和四字寄存器,更适合编译器寄存器分配。

64 位地址和操作数。在 64 位模式下,默认虚拟地址大小为 64 位(实现可以更少)。大多数指令的默认操作数大小为 32 位。对于大多数令,可以使用指令前缀逐条覆盖这些默认值。REX 前缀指定 64 位操作数大小和寄存器扩展。RIP 相对数据寻址。64 位模式支持相对于 64 位指令指针 (RIP) 的数据寻址。旧式 x86 架构仅在控制传输指令中支持 IP 相对寻址。RIP 相对寻址提高了位置无关代码和寻址全局数据的代码的效率。

兼容模式

兼容模式(长模式的第二个子模式)允许 64 位操作系统运行现有的 16 位和 32 位 x86 应用程序。这些旧式应用程序在兼容模式下运行,无需重新编译。在兼容模式下运行的应用程序使用 32 位或 16 位寻址,并且可以访问前 4GB 虚拟地址空间。传统 x86 指令前缀在 16 位和 32 位地址和操作数大小之间切换。与 64 位模式一样,兼容模式由操作系统根据单个代码段启用。但是,与 64 位模式不同,x86 分段功能与传统 x86 架构相同,使用 16 位或 32 位保护模式语义。从应用程序的角度来看,兼容模式看起来像传统的 x86 保护模式环境。但是,从操作系统的角度来看,地址转换、中断和异常处理以及系统数据结构使用 64 位长模式机制。

经典模式(Legacy Mode)

经典模式不仅保留了与现有 16 位和 32 位应用程序的二进制兼容性,还保留了与现有 16 位和 32 位操作系统的二进制兼容性。传统模式由以下三种子模式组成:

  • 保护模式 - 保护模式支持具有内存分段、可选分页和权限检查的 16 位和 32 位程序。在保护模式下运行的程序可以访问最多 4GB 的内存空间。

  • 虚拟 8086 模式 - 虚拟 8086 模式支持在保护模式下作为任务运行的 16 位实模式程序。它使用简单形式的内存分段、可选分页和有限的保护检查。在虚拟 8086 模式下运行的程序可以访问最多 1MB 的内存空间。

  • 实模式 - 实模式支持使用简单的基于寄存器的内存分段的 16 位程序。它不支持分页或保护检查。在实模式下运行的程序可以访问最多 1MB 的内存空间。


http://www.kler.cn/a/530295.html

相关文章:

  • pytorch实现简单的情感分析算法
  • 【Elasticsearch】_all 查询
  • HTB:Alert[WriteUP]
  • MySQL基础-多表查询
  • 【LLM-agent】(task4)搜索引擎Agent
  • 数据分析系列--⑦RapidMiner模型评价(基于泰坦尼克号案例含数据集)
  • 【人工智能】深入探索Python中的自注意力机制:实现Transformer的核心组件
  • 035 搜索之DFS基础
  • 鬼泣目录.
  • 【博弈论】Chapter2 重复严格优势/可理性化和相关均衡
  • JVM篇:对象的深度剖析
  • 一种非接触式智能垃圾桶设计(论文+源码+实物)
  • 【仿12306项目】通过加“锁”,解决高并发抢票的超卖问题
  • BUUCTF_[网鼎杯 2020 朱雀组]phpweb(反序列化绕过命令)
  • 11 3D变换模块(transform3d.rs)
  • DeepSeek算是真正意义上的大模型开源吗?
  • 【大模型专栏—基础篇】提示词设计
  • 像接口契约文档 这种工件,在需求 分析 设计 工作流里面 属于哪一个工作流
  • Shadow DOM举例
  • MySQL5.5升级到MySQL5.7
  • Vue3.0实战:大数据平台可视化(附完整项目源码)
  • Alibaba开发规范_编程规约之集合框架:最佳实践与常见陷阱
  • MBTI之INFJ型人格解读,INFJ的职业倾向、人际关系和INFJ的心理健康
  • doris:主键模型的导入更新
  • 系统URL整合系列视频一(需求方案)
  • ifconfig/hostname/hosts文件等学习