据我所知,堆栈指针(ESP)指向堆栈的顶部。是否意味着ESP在任何时候都包含一个地址? 基本上,ESP寄存器的结构是什么?基址指针寄存器(EBP)的问题相同。
这可能是一个天真的问题,但我真的没有得到它的“大图”。谢谢你清理。
答案 0 :(得分:0)
每个逻辑内核都有一个包含单个32位值的ESP寄存器。请注意,ESP不一定必须用作堆栈顶部指针。它是一个通用寄存器。但是,它通常用作堆栈顶部指针。在这种情况下,它只包含一个指针。如果有多个线程,每个线程都有自己的堆栈,每当线程被调度为在核心上运行时,在允许线程执行之前,必须将与该线程关联的堆栈顶部指针加载到ESP寄存器中。这会覆盖ESP的旧值,它可能是前一个线程的堆栈顶部指针。