Re: Declare strings on stack, gas
Daniel Hilst <[email protected]> Thu, 19 Apr 2012 16:07:31 +0000
| Newsgroups | org.kernel.vger.linux-assembly |
|---|---|
| Message-ID | <[email protected]> |
On 04/18/2012 07:34 PM, Robert Plantz wrote: > On 4/18/2012 7:58 AM, Daniel Hilst wrote: >> Is possible to declare strings on stack? I'm using mov + ebp offsets >> to do something like that.. Is there an easier way to do it? >> >> Here is an sample off how I'm doing it: http://sprunge.us/UUZI >> >> The hex numbers are a "Hello World" string.. >> I have tried .assci without success :( >> >> Thanks in advance! >> >> > Basically, you're asking if the compiler/assembler can initialize the > stack to some known value. Since memory on the stack is dynamically > allocated by the instructions: > > doit: > push %ebp ; Save caller's base pointer > mov %esp, %ebp ; Establish our base pointer > > sub $12, %esp ; Allocate memory on the stack > > > > the answer is 'no.' After you allocate stack memory (which now has > garbage values), you need to copy known values there. Write your code in > C and use the '-S' gcc option to see how the compiler does this. The > '-S' option will generate the assembly language file foo.s from the C > source file foo.c. > > --Bob > > > Thanks guys, the closest I got was use .text section and the %esi trick. Now I know about stack dynamics. Cheers! -- Follow the white rabbit!