.global syscall // call from c with 4 x 32bit params // syscall number, p1,p2,p3,p4 // TODO: push stack frame? syscall: push %ebx // preserve (sysV abi convnetion) mov 0x8(%esp),%eax //syscall number mov 0xC(%esp),%edx //p1 mov 0x10(%esp),%ecx //p2 mov 0x14(%esp),%ebx //p3 int $0x80 mov %ebx, %eax // set as return value pop %ebx // preserve ret