, , , - , , , . , , (.. Lisp, , Haskell ..) . , . C - (: gcc x86, int double, . C ++, . , "\n\t" , gcc):
#include <stdio.h>
void rek(int x)
{
printf("Value for x: %d\n", x);
__asm("movl 8(%ebp), %eax\n\t"
"incl %eax\n\t"
"movl 4(%ebp), %ecx\n\t"
"movl (%ebp), %edx\n\t"
"addl $12, %ebp\n\t"
"movl %ebp, %esp\n\t"
"pushl %eax\n\t"
"pushl %ecx\n\t"
"movl %edx, %ebp\n\t"
"jmp rek\n\t");
}
int main()
{
rek(1);
printf("Finished call\n");
return 0;
}
gcc 4.4.3 Ubuntu 10.04, "" , , , . __asm , "", . ( ) , .
, , , . , / Lisp/ .. , , .