X86 ESP和EBP寄存器的结构和大小

X86 ESP和EBP寄存器的结构和大小,x86,cpu-architecture,cpu-registers,X86,Cpu Architecture,Cpu Registers,据我所知,堆栈指针(ESP)指向堆栈的顶部。这是否意味着ESP在任何时候都包含一个地址? 基本上,ESP寄存器的结构是什么?基本指针寄存器(EBP)也有同样的问题 这可能是一个幼稚的问题,但我并不真正了解它的“大局”。感谢您的澄清。每个逻辑核都有一个包含单个32位值的ESP寄存器。请注意,ESP不一定要用作堆栈顶部指针。这是一个通用寄存器。但是,它通常用作堆栈顶部指针。在这种情况下,它只包含一个指针。如果有多个线程,每个线程都有自己的堆栈,每当一个线程计划在内核上运行时,在允许该线程执行之前,必

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


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

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

重要的是,它与EAX、EBX等一样是一个常规寄存器。唯一真正的区别是
push
pop
等指令改变了它;没有别的了,真的。