Linux assembly list
 help / color / mirror / Atom feed
* Basic assembly
@ 2002-11-11  0:01 theguest
  2002-11-11  4:27 ` Joseph D. Wagner
  0 siblings, 1 reply; 2+ messages in thread
From: theguest @ 2002-11-11  0:01 UTC (permalink / raw)
  To: linux-assembly

Hi!
First of all, I'm spanish so sorry for my bad english.
I'm new on the list and I'm a novice in assembly. I'm interested in
linux assembly because I'm interested in linux security, buffer
overflows...
So, I'm reading the "Smash the stack for fun and profit" and the results
that Aleph get are different from mine.
For example he has this code in C:
-------------
void function(int a, int b, int c){
	char buffer1[5];
	char buffer2[10];
}
void main(){
	function (1,2,3);
}
-------------
He gets linux assembly code using gcc:
$ gcc -S -o example1.s example1.c

He says his assembly code has a line like:
subl $20,%esp
He says the memory is reserved multiples of "word". He says word=4bytes.
So our 5 bytes buffer needs 2 words = 8 bytes and buffer2[10]->12bytes.
That's why uses subl to get 20 bytes from esp. That seems correct for
me but when I compile it in assembly using gcc I don't get the same
assembly code...
For example:
	subl $8,%esp
	addl $-4,%esp
in the main function 
and in the function <function>:			
	subl $40,%esp
Why are my code reserving other quantity of space for variables?
It's something related with optimizated compilation in gcc?
Thanks in advance and sorry if something isn't correct in my first email
to the list.

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2002-11-11  4:27 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-11-11  0:01 Basic assembly theguest
2002-11-11  4:27 ` Joseph D. Wagner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox