Witam mam taki problem:
Mam dwa pliki pierwszy napisany w C:

 
int add(int i,int j)
{
	int p = i + j;
	return p;
}

oraz program napisany w Assemblerze:

 
.globl add
add:
	pushl %ebp
	movl %esp, %ebp
	subl $4, %esp		//create space for integer p
	movl 8(%ebp),%edx	//8(%ebp) refers to i
	addl 12(%ebp), %edx	//12(%ebp) refers to j
	movl %edx, -4(%ebp)	//-4(%ebp) refers to p
	movl -4(%ebp), %eax	//store return value in eax
	leave			//i.e. to movl %ebp, %esp; popl %ebp ret

Chcę tak zrobić żeby program napisany w assemblerze przekazywał wartości zmiennych z rejestrów do funkcji napisanej w C ale nie wiem jak to skompilować i w którym miejscu umieścić dane na stosie.

Czy ktoś mógłby mi wytłumaczyć ja to zrobić?
Będę wdzięczny!!!