x86-64 REX 前缀中的“REX”代表什么?

2023-11-24

From 英特尔的SDM,第 2.2.1 节指定 REX 前缀用于:

  • 指定 GPR 和 SSE 寄存器。
  • 指定 64 位操作数大小。
  • 指定扩展控制寄存器

但缩写词中的字母 REX 代表什么?


这个2002年热门薯条演示AMD 扩展了幻灯片 10 上的缩写:“REX(寄存器扩展)”。

Kevin McGrath 和 Dave Christie,“AMD x86-64 架构:将 x86 扩展到 64 位”,Hot Chips 14,2002 年 8 月。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

x86-64 REX 前缀中的“REX”代表什么? 的相关文章

  • 使用 XCHG 解锁的自旋锁

    维基百科提供的使用 x86 XCHG 命令的自旋锁的示例实现是 Intel syntax locked The lock variable 1 locked 0 unlocked dd 0 spin lock mov eax 1 Set t
  • 如果我有一个 8 位值,那么使用 8 位寄存器而不是 16、32 或 64 位寄存器有什么优势吗?

    我读到的 x86 asm 介绍性文献似乎在所有实际场景中都坚持使用 32 位寄存器 eax ebx 等 除了证明 64 位寄存器也存在之外 如果确实提到 16 位寄存器 那也是作为历史注释来解释为什么 32 位寄存器的名称前面有一个 e 编
  • 简单内核无法在 GRUB 中启动

    我正在学习一些操作系统开发的知识OSDev org http osdev org 我有一个内核 我正在尝试使用 qemu 在 GRUB Legacy 0 97 中启动 但是 当我输入kernel 200 9 我收到消息 Multiboot
  • 段寄存器如何参与内存地址转换?

    到目前为止我所学到的有关细分的知识 虚拟地址包含段选择器和偏移量 段选择器与GDTR配合使用 查找段描述符的线性地址 段描述符保存有关所选段的信息 包括其线性地址 所以 我的问题是 根据我所读到的内容 虚拟地址被加载到段寄存器中 然后以某种
  • GCC 从 C++ 程序生成的汇编代码中的 .cfi 和 .LFE 是什么?

    我有以下 C 代码 int factorial int n if n 0 return 1 return n factorial n 1 int main void factorial 5 return 0 当我使用 g S Factori
  • (nasm x86实模式)如何在引导加载的扇区中写入/读取字符串?

    我正在使用 NASM 为 x86 实模式编写一个最小操作系统 用于教育目的 我想使用 512 字节引导扇区加载包含操作系统其余部分的更大扇区 我已经成功创建了一个加载另一个扇区的引导扇区 但我似乎无法在加载的扇区中写入 读取字符串 这是我的
  • 尝试理解 printf() 的 gcc 汇编输出

    我正在尝试学习如何理解汇编代码 因此我一直在研究 GCC 的汇编输出以获取一些愚蠢的程序 其中之一只不过是int i 0 我现在或多或少完全理解了其中的代码 最大的困难是理解散布的 GAS 指令 无论如何 我向前迈了一步并添加了printf
  • 为什么此 NASM 代码会打印我的环境变量?

    本学期我刚刚完成计算机体系结构课程 除其他外 我们一直在涉足 MIPS 汇编并在 MARS 模拟器中运行它 今天 出于好奇 我开始在我的 Ubuntu 机器上摆弄 NASM 基本上只是将教程中的内容拼凑起来 并感受一下 NASM 与 MIP
  • 在 x86 汇编语言中获取文件大小的简单方法

    假设我已经在汇编中打开了一个文件 并且在寄存器 eax 中有该文件的文件句柄 我将如何获取文件的大小 以便为其分配足够的缓冲区空间 我在这里研究了另一个讨论 建议使用sys fstat 28 系统调用来获取文件统计信息但无法实现它 My a
  • 使用 GNU C 内联汇编在 VGA 内存中绘制字符

    我正在学习使用 C 和内联汇编在 DOS 中进行一些低级 VGA 编程 现在我正在尝试创建一个在屏幕上打印出字符的函数 这是我的代码 This is the characters BITMAPS uint8 t characters 464
  • 是否有必要每个机器码只能映射到一个汇编代码?

    假设这两者本质上是相同的 push 1 and 0x1231 这表示每个汇编指令都映射到一个机器代码 但是否每个机器码只能映射到一个汇编代码呢 MIPS汇编语言有几个 伪指令 例如 move 在内部只是一个带有隐式 0 操作数的 add
  • __stack_chk_fail_local 和 -fno-stack-protector - 如何让它工作?

    Update 我刚刚发现问题出在我的项目 libxml2 中包含的预构建库上 它是在启用堆栈保护的情况下构建的 因此依赖于 stack chk fail local方法 我现在已经重建了该库 fno stack protector也是 一切
  • Haswell 及其后续产品上的 A20 系列是否仍会被屏蔽?

    维基百科引用了英特尔手册中的这一说法 A20M 的功能主要由较旧的操作系统使用 现代操作系统不使用 在较新的 Intel 64 处理器上 A20M 可能不存在 现在的手册中实际上有这样一个短语 但它是含糊不清的 Does A20M 实际上仅
  • 我可以使用 AVX FMA 单元进行位精确的 52 位整数乘法吗?

    AXV2 doesn t have any integer multiplications with sources larger than 32 bit It does offer 32 x 32 gt 32 http www felix
  • MFENCE/SFENCE/etc“序列化内存但不序列化指令执行”?

    英特尔系统编程指南第 8 3 节中有关 MFENCE SFENCE LFENCE 的说明 以下指令是内存排序指令 而不是序列化指令 这些指令会耗尽数据内存子系统 它们不序列化指令执行流 我试图弄清楚为什么这很重要 在多线程代码中 对内存的写
  • 在 Intel 机器 (Mac) 上构建 ARM 架构的 Docker 镜像

    我希望能够从我的 Mac 构建 ARM 的 Docker 映像 我知道我可以使用 QEMU 在 Mac 上运行 ARM 容器 但我不知道如何为 ARM 构建 现在这有点复杂 我相信在不久的将来 docker 会让这一切变得更容易 基本上 您
  • 函数地址不是实际代码地址

    在 Visual Studio 2008 C 中调试一些代码时 我注意到函数指针变量中的地址不是函数本身的实际地址 这是一个外部 C 函数 int main void printaddr const char print debug sho
  • 在汇编中初始化字符串数组

    我想创建一个数据数组 在初始化数据部分保存 5 个字符串 每个字符串正好有 4 个字符 每个字符串都有一些初始数据 例如第一个字符串的 abcd 第二个字符串的 efgh 等等 无效的 0任何字符串都不需要字符 如何用汇编语言初始化字符串数
  • x86 asm 的 NASM 语法中的括号是什么意思?

    给出以下代码 L1 db word 0 mov al L1 mov eax L1 括号里是什么意思 L1 代表 这个问题专门针对 NASM Intel 语法汇编的另一个主要风格是 MASM 风格 当不涉及寄存器时 括号的工作方式有所不同 S
  • 在 OllyDbg 和 Assembler 中,EBP+8 是什么意思?

    我正在学习 OllyDbg 中的汇编和调试技巧 以便学习如何使用未记录的函数 现在我遇到以下问题 我有以下代码部分 来自 OllyDbg MOV EDI EDI PUSH EBP MOV EBP ESP MOV EAX DWORD PTR

随机推荐