What exactly does "reserve" mean in this context and how does decrementing the stack pointer reserve space on the stack? Does adjusting the stack pointer register have some side effect?
"Reserving space" sounds like memory allocation but memory for the stack is typically fixed and allocated up front so I don't think that's what it means.
I think it just means that we're telling someone else not to use our stack space and that someone else simply reads the stack pointer register and by convention knows that it shouldn't clobber anything above that. If that's right then who is that someone else? Subsequent function calls? The OS?