static int result; static inline int test(int a, int b, int c, int d, int e, int f) { register long _r asm("eax"); register long _a asm("eax") = a; register long _b asm("ebx") = b; register long _c asm("ecx") = c; register long _d asm("edx") = d; register long _e asm("esi") = e; register long _f asm("edi") = f; asm volatile ( "int 0x80" : "=r"(_r) : "0"(_a), "r"(_b), "r"(_c), "r"(_d), "r"(_e), "r"(_f) : "memory" ); result = _r; return 0; } int main(int argc, char *argv[]) { test(1,2,3,4,5,6); result -= 1; return result; }