Was this question too technical for this group? : Is the %ESP register special?
Was this question too technical for this list?
If so, where do you recommend I ask it again?
-- hendrik
> Using assembler in debian on an intel platform.
>
> Is the %ESP register special in any way (except, of course,
> ist use in the POP and PUSH istructions and their friends.)
>
> Let me clarify.
>
> On VMS (old VAX OS), the convnetion was that any data on the stack
> above the stacp poibter was forfeit -- at any time tod OS could
> come in and clobber it, even *during* instruction execution.
> Firthermore, the value of the stack pointer clued in the OS as to whether
> it chould create new pages to handle a page-fault exception, thereby
> extending the stack.
>
> As a result, if you used the stack pointer for anything other than
> pointing to the top of the stack, even momentarily, you were in deep,
> deep trouble.
>
> Are there similar OS constraints imposed by the Linux kernel? How do
> pages get allocated to the stack, for example. Is the user's %ESP
> used in any way for this? Can I make any use of %ESP that I want?
> For example, can I allocate a lot of mini-stacks in garbage-collected
> storage to handle, say, a coroutine system, without interference?
> (And yes, it's a compressing garbage-collector. The stacks will
> move around every time garbage-collection occurs.)
>
> -- hendrik
Reply to: