// Inline assembly in C source (AT&T syntax must be used instead of Intel syntax)

#include<stdio.h>
int foo(int N, int M){
   N=N+1;
   asm(" movl -4(%rbp), %eax"); // N --> eax
   asm(" addl %eax, -8(%rbp)"); // eax + M --> M
   M=M+2;
   asm(" movl -8(%rbp), %eax"); // M --> eax
   asm(" inc %eax ");           // eax++ (This will be the return value.)
   }
int main(){
   printf(" Result: %d\n",foo(3,6));
   return 0; 
   }


//// C style ////
// int foo(int N, int M){
//    N=N+1;
//    M=M+N;
//    M=M+2;
//    M++;
//    return M;
//    }
