汇编语言中的ESP是什么意思?

8
ESP = ? stack pointer

这里的E代表什么?

更新

64位系统下的RSP是什么?

这里的R代表什么?


这里花了4分钟才得到答案。谷歌只需要几秒钟。"esp堆栈指针" - Anonymoose
@Anonymouse:好吧,严谨地说,问题和codeaddict的第一个答案之间只有2分钟。 - Eli Bendersky
讽刺的是,这现在是谷歌查询的第一个结果。我敢打赌,它已经为作者最初的时间损失赚回了数十万。好吧,不是作者的时间损失,而是其他人的! - James Binford
4个回答

17

E 代表 Extended

随着32位80386处理器的问世,16位通用寄存器、基址寄存器、索引寄存器、指令指针和FLAGS寄存器(但不包括段寄存器)被扩展到32位。这通过在x86汇编语言中给寄存器名称前缀添加"E"(表示扩展)来表示。

来源


4

R指的是“寄存器”,新的寄存器被称为r8-r15。由于旧的寄存器也需要扩展版本的名称,所以e就被换成了r。


1
也许是为了与其他32位寄存器保持一致:EAX、EBX等。
对于这些寄存器,E代表"扩展" - 即32位(16位版本称为AX、BX等)。
附注:根据The Free Dictionary,ESP代表扩展堆栈指针。

SP没有8位版本,但AX、BX、CX和DX有,它们被称为AL、AH、BL、BH等。 - PP.

0

E代表扩展。如果您有SP 16位,则ESP应为32位。


为了完整起见,RSP适用于64位。 - Blindy
R代表寄存器。比较r8、r9... - Jens Björnhager

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接