gpt4 book ai didi

assembly - "rax"与 "eax"有什么不同?

转载 作者:行者123 更新时间:2023-12-02 22:07:36 46 4
gpt4 key购买 nike

我正在阅读“黑客:剥削的艺术”。

书中的寄存器与我在电脑上看到的寄存器不同。这些是我的 cpu 寄存器:

拉克斯,RBX,接收,RDX,相对强弱指数,RDI,重组蛋白,回复,r8,r9,r10,r11,r12,r13,r14,r15,撕裂,旗帜,CS,SS,ds,是的,FS,GS

书中的寄存器是:

eax,埃克克斯,edx,埃克斯,特别是,电子BP,欧西,电子数据交换,电子IP,旗帜,CS,SS,ds,是的,FS,GS

有人可以解释一下为什么它们不同吗?我在 AMD cpu 上运行; AMD 的 CPU 寄存器与 Intel 不同吗?

在这种情况下,有人可以解释一下两种架构的寄存器之间的对应关系吗?

最佳答案

r开头的寄存器,如raxrbx等,是64位寄存器介绍 AMD64 extension到现有的 32 位 x86 ISA。该 ISA 扩展随后被英特尔采用,并且通常以更中性的名称 x86-64 为人所知。 。基本上 AMD 和 Intel 在过去十年中发布的所有 x86 芯片都支持此 ISA。

诸如eaxebx等寄存器是32位寄存器,既存在于原始32位x86 ISA中,也存在于64位x86中-64。如果您的书提到这些寄存器,则它很可能不涵盖 64 位扩展(也许它是在它之前编写的)。

请注意,32 位和 64 位寄存器不是单独的寄存器,因为它们重叠:例如,64 位 raxeax 作为其寄存器。底部 32 位,对于 rbxebxr8r8d 等等。因此,对32位寄存器的修改会反射(reflect)到相应的64位寄存器中,反之亦然。

16 位(ax 等)和 8 位(al 等)寄存器之间也存在类似的关系。你可以在many places中找到所有血淋淋的细节。 .

关于assembly - "rax"与 "eax"有什么不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44972293/

46 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com