int do_syscall(int number, ...)
{
  __asm__(
    "push  %ebx           ;"
    "mov   0x1C(%ebp),%edi;"
    "mov   0x18(%ebp),%esi;"
    "mov   0x14(%ebp),%edx;"
    "mov   0x10(%ebp),%ecx;"
    "mov   0x0C(%ebp),%ebx;"
    "mov   0x08(%ebp),%eax;"
    "int   $0x80          ;"
    "pop   %ebx           "
  );
}
