From: ovek AT arcticnet DOT no (Ove Kaaven) Newsgroups: comp.os.msdos.djgpp Subject: Re: Custom Stack? Date: Mon, 17 Feb 1997 03:01:54 GMT Organization: Vplan Programvare AS Lines: 26 Message-ID: <5ecodg$f6j$1@troll.powertech.no> References: <19970217 DOT 193154 DOT 4951 DOT 0 DOT chambersb AT juno DOT com> NNTP-Posting-Host: alwayscold.darkness.arcticnet.no To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp chambersb AT juno DOT com (Benjamin D Chambers) wrote: >Let's say I want to use my own buffer as a temporary stack (I would, of >course, switch back to the main stack when I'm done). Would I simply >load %esp with the location of my buffer, plus the size if the buffer? >Ie: >int buf[10]; >int old; >asm(" > movl %%esp, (%%eax) > movl %%ebx, %%esp > addl $40, %%esp > . . > movl (%%eax), %%esp >" >:: "a" (&old), "b" (buf):"memory"); The stack grows downwards. Try: :: "a" (&old), "b" (&buf[10]) : "memory" ); The first value pushed should then be at buf[9], the next at buf[8], etc.