Intel 堆栈指针指向最新项还是下一项?

Is the Intel stack pointer pointing to the latest item or next item?

%esp 指向堆栈中的当前项还是下一条 PUSH 指令将使用的空闲地址?

英特尔手册中对PUSH的描述回答得很好:

ESP  ← ESP – 4;
Memory[SS:ESP]  ← SRC;

如您所见,堆栈指针是预先递减的,因此在 PUSH 之后,堆栈指针将指向您刚刚压入的值。