Wenn ich Zahlen auf den Stack pushe
Code: Alles auswählen
	pushl	$1337
	pushl	$4223
Code: Alles auswählen
	movl	8(%ebp), %eax
	movl	%eax, 0(%esp)
	movl	12(%ebp), %eax
	movl	%eax, 4(%esp)
pushe ich jedoch Register oder Offsets anstelle der Zahlen, dann kann ich diese nicht mit dieser Methode wiederbekommen:
Code: Alles auswählen
	pushl	0(%esp) # 23
	pushl	4(%esp) # 42
Was kommt da durcheinander? Darf ich keine Register/Offsets Funktions übergreifend auf den Stack packen?
Nachtrag:
Nur zum besseren Verständnis, wir reden von bspw. solchen Funktionen:
Code: Alles auswählen
.globl	_add
_add:
	pushl	%ebp
	movl	%esp, %ebp
	subl	$8, %esp
# Begin Parameters
	movl	8(%ebp), %eax
	movl	%eax, 0(%esp)
	movl	12(%ebp), %eax
	movl	%eax, 4(%esp)
# End Parameters
# ...Ändere ich den Zugriff auf den zweiten Parameter ab, so dass ich als Offset 20 statt 12 benutzt, klappt es (in diesem Fall):
Code: Alles auswählen
movl	20(%ebp), %eax
Edit:
Ups völlig falsches Forum.. Kann das jemand verschieben?



