"rax" 与 "eax" 有何不同?
How is "rax" different from "eax"?
我正在阅读“黑客:剥削的艺术”。
书中的寄存器与我在电脑上看到的寄存器不同。这些是我的 cpu 寄存器:
拉克斯,
回复,
回复,
RDX,
强弱指数,
rdi,
限制性商业惯例,
回复,
r8,
r9,
r10,
r11,
r12,
r13,
r14,
r15,
撕裂,
旗帜,
CS,
党卫军,
,
是的,
飞秒,
GS
而在书中寄存器是:
eax,
执行,
埃德克斯,
电子书,
特别是
电子书,
埃西,
埃迪,
艾普,
旗帜,
CS,
党卫军,
,
是的,
飞秒,
GS
有人能解释一下为什么它们不同吗?我 运行 使用 AMD cpu; AMD 与 Intel 有不同的 CPU 寄存器吗?
这样的话谁能给我解释一下两种架构的寄存器的对应关系?
以r
开头的寄存器,如rax
、rbx
等,是64位寄存器,随着AMD64 extension to the existing 32-bit x86 ISA. That ISA extension was subsequently adopted by Intel and is often known by the more neutral name x86-64。基本上,过去十年中 AMD 和 Intel 发布的所有 x86 芯片都支持此 ISA。
eax
、ebx
等寄存器都是32位寄存器,既存在于原始的32位x86 ISA中,也存在于64位x86-64中。如果您的书仅 提到那些寄存器,它很可能没有涵盖 64 位扩展(也许它是在它之前写的)。
请注意,32 位和 64 位寄存器不是单独的寄存器,因为它们重叠:例如,64 位 rax
的底部 32 位为 eax
,依此类推 rbx
和 ebx
、r8
和 r8d
等等。因此,对 32 位寄存器的修改会反映在相应的 64 位寄存器中,反之亦然。
16 位(ax
等)和 8 位(al
等)寄存器之间存在类似的关系。您可以在 many places.
中找到所有血淋淋的细节
我正在阅读“黑客:剥削的艺术”。
书中的寄存器与我在电脑上看到的寄存器不同。这些是我的 cpu 寄存器:
拉克斯, 回复, 回复, RDX, 强弱指数, rdi, 限制性商业惯例, 回复, r8, r9, r10, r11, r12, r13, r14, r15, 撕裂, 旗帜, CS, 党卫军, , 是的, 飞秒, GS
而在书中寄存器是:
eax, 执行, 埃德克斯, 电子书, 特别是 电子书, 埃西, 埃迪, 艾普, 旗帜, CS, 党卫军, , 是的, 飞秒, GS
有人能解释一下为什么它们不同吗?我 运行 使用 AMD cpu; AMD 与 Intel 有不同的 CPU 寄存器吗?
这样的话谁能给我解释一下两种架构的寄存器的对应关系?
以r
开头的寄存器,如rax
、rbx
等,是64位寄存器,随着AMD64 extension to the existing 32-bit x86 ISA. That ISA extension was subsequently adopted by Intel and is often known by the more neutral name x86-64。基本上,过去十年中 AMD 和 Intel 发布的所有 x86 芯片都支持此 ISA。
eax
、ebx
等寄存器都是32位寄存器,既存在于原始的32位x86 ISA中,也存在于64位x86-64中。如果您的书仅 提到那些寄存器,它很可能没有涵盖 64 位扩展(也许它是在它之前写的)。
请注意,32 位和 64 位寄存器不是单独的寄存器,因为它们重叠:例如,64 位 rax
的底部 32 位为 eax
,依此类推 rbx
和 ebx
、r8
和 r8d
等等。因此,对 32 位寄存器的修改会反映在相应的 64 位寄存器中,反之亦然。
16 位(ax
等)和 8 位(al
等)寄存器之间存在类似的关系。您可以在 many places.