From 51d4dd040a291b62c648ff6cc0d7e0058cf4056f Mon Sep 17 00:00:00 2001 From: Miguel Date: Fri, 17 Aug 2018 17:51:51 +0200 Subject: starting implicit function calls cleanup --- asm/syscallasm.s | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 asm/syscallasm.s (limited to 'asm') diff --git a/asm/syscallasm.s b/asm/syscallasm.s new file mode 100644 index 0000000..8860d89 --- /dev/null +++ b/asm/syscallasm.s @@ -0,0 +1,22 @@ +.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 + -- cgit v1.2.3