جالبه بدونید کتابخانه ها و توبابع رزرو شدهی C با اسمبلی پیاده سازی میشن. برای نمونه تابع های add و print رو ببینید:
//add.c
int add(int i,int j)
{
int p = i + j;
return p;
}
//add.s
.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
---------------------------------------------
//print.c
print(int i)
{
printf("%d\n",i);
}
//main.s
.globl main
main:
movl $123, %eax
pushl %eax
call print
addl $4, %esp
ret
از این سینتکس می تونید برای میکس کردن C و اسمبلی استفاده کنید. و با کمی تغییر اونو به ++C تعمیم بدید.
موفق باشید.