diff options
| author | Miguel <m.i@gmx.at> | 2018-08-17 18:19:38 +0200 |
|---|---|---|
| committer | Miguel <m.i@gmx.at> | 2018-08-17 18:19:38 +0200 |
| commit | 6fd78c2ff950310d8372ec0353553cc4a5a43e72 (patch) | |
| tree | 9fee483633617da90d64364ee94dce5813e6dd8e /asm/syscall.s | |
| parent | 340f513e9a41dd5815e79cffe54c3f631407f4e1 (diff) | |
rename syscall assembly
Diffstat (limited to 'asm/syscall.s')
| -rw-r--r-- | asm/syscall.s | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/asm/syscall.s b/asm/syscall.s new file mode 100644 index 0000000..8860d89 --- /dev/null +++ b/asm/syscall.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 + |
