【问题标题】:What does ESP mean in assembly? [duplicate]ESP在汇编中是什么意思? [复制]
【发布时间】:2011-02-02 00:03:00
【问题描述】:
ESP = ? stack pointer

E在这里代表什么?

更新

64 位的 RSP?

R 在这里是什么意思?

【问题讨论】:

  • 这里花了 4 分钟才得到答案。谷歌会花几秒钟的时间。 "esp 堆栈指针"
  • @Anonymous:好吧,学究一下——问题和codeaddict的第一个答案之间只有2分钟
  • @EliBendersky 具有讽刺意味的是,现在这是该 Google 查询的第一个结果。我敢打赌,它现在已经补偿了作者最初的数十万时间损失。好吧,不是作者的——而是其他人的!

标签: architecture syntax assembly preprocessor cpu-registers


【解决方案1】:

E 代表Extended

随着 32 位 80386 处理器的出现,16 位通用寄存器、基址寄存器、变址寄存器、指令指针和 FLAGS 寄存器,而不是段寄存器,被扩展为 32 位。这通过在 x86 汇编语言中的寄存器名称前加上 “E”(表示扩展) 来表示。

Source

【讨论】:

    【解决方案2】:

    也许是为了与其他 32 位寄存器保持一致:EAX、EBX 等。

    对于那些,E 表示“扩展” - 即到 32 位(16 位版本称为AX、BX 等)

    附:根据The Free Dictionary,ESP代表扩展堆栈指针。

    【讨论】:

    • SP 没有 8 位版本,但 AX、BX、CX 和 DX 有,它们被称为 AL、AH、BL、BH 等。
    【解决方案3】:

    E 表示扩展。如果你有 SP 16bit,那么 ESP 应该是 32bit。

    【讨论】:

    • 为了完整起见,64位的RSP。
    • R 在寄存器中。比较 r8,r9...
    【解决方案4】:

    R 仅用于“寄存器”,新寄存器仅称为 r8-r15。由于旧版本的扩展版本也需要名称,因此 e 只是换成了 r。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-03
      • 2011-04-18
      • 1970-01-01
      • 2020-10-27
      • 2015-07-15
      相关资源
      最近更新 更多