【问题标题】:Structure and size of the ESP and EBP registersESP 和 EBP 寄存器的结构和大小
【发布时间】:2016-06-07 11:32:59
【问题描述】:

据我了解,堆栈指针 (ESP) 指向堆栈的顶部。这是否意味着在任何时候 ESP 都包含一个地址? 基本上,ESP寄存器的结构是什么?基指针寄存器(EBP)的问题相同。

这可能是一个幼稚的问题,但我并没有真正了解它的“大局”。感谢您清理一切。

【问题讨论】:

  • 总体情况是它与 EAX、EBX 等一样是一个常规寄存器。唯一真正的区别是pushpop 等指令改变了它;没有别的,真的。

标签: x86 cpu-architecture cpu-registers


【解决方案1】:

每个逻辑内核都有一个包含单个 32 位值的 ESP 寄存器。请注意,ESP 不一定必须用作栈顶指针。这是一个通用寄存器。但是,它通常用作栈顶指针。在这种情况下,它只包含一个指针。如果有多个线程,每个线程都有自己的堆栈,每当一个线程被调度在一个内核上运行时,与该线程关联的栈顶指针必须在线程被允许执行之前加载到 ESP 寄存器中.这会覆盖 ESP 的旧值,它可能是前一个线程的栈顶指针。

【讨论】:

    猜你喜欢
    • 2012-01-11
    • 1970-01-01
    • 2011-08-23
    • 2015-02-03
    • 2012-01-28
    • 1970-01-01
    • 2013-02-07
    • 2014-02-04
    相关资源
    最近更新 更多