堆栈指针寄存器如何工作

use*_*034 1 x86 stack-pointer

好吧,堆栈是如何工作的?例如说明:

push ax
Run Code Online (Sandbox Code Playgroud)

等于:

sub sp, 4
mov sp, ax
Run Code Online (Sandbox Code Playgroud)

其中sp是堆栈指针.是对的吗?

我的问题是 - 如果片刻后我将其更改为完全不同的值,那么从sp寄存器中减去4是什么意思?

AMA*_*nc. 5

我认为应该阅读

mov [sp], ax
Run Code Online (Sandbox Code Playgroud)

也就是说,将ax的值放入sp指向的内存中.