认识寄存器(X64)

Posted xky1306102chenhong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了认识寄存器(X64)相关的知识,希望对你有一定的参考价值。

  1. 通用寄存器:一个X86-64的CPU包含一组16个存储64位值的通用目的寄存器,对于IA32来说,是一组8个存储32位值的通用寄存器,下图红框中即为IA32的寄存器。而且相对于8086,IA32是在寄存器前面加了%e的前缀,X86-64是加了%r的前缀。
  2. 特殊寄存器:RIP,存放马上就要执行的指令的地址,就是PC。不能像访问通用寄存器那样访问它,即找不到可用来寻址EIP并对其进行读写的操作码(OpCode)。EIP可被jmp、call和ret等指令隐含地改变(事实上它一直都在改变)。
  3. 编译器在将C程序编译成汇编程序时(编译阶段),应遵循ABI所规定的寄存器功能定义
    https://www.cnblogs.com/clover-toeic/p/3755401.html

以上是关于认识寄存器(X64)的主要内容,如果未能解决你的问题,请参考以下文章

为啥在 x64 程序集中将复制变量地址移动到寄存器?

x64 寄存器使用

x64寄存器

xmm 寄存器 sse x64 里面的值

使用寄存器而不是堆栈从 x64 程序集调用 C 函数

在 Verilog 中实现一个 32x64 的寄存器文件