diff options
Diffstat (limited to 'sys.s')
-rw-r--r-- | sys.s | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/sys.s b/sys.s new file mode 100644 index 0000000..9a72e16 --- /dev/null +++ b/sys.s @@ -0,0 +1,78 @@ +.intel_syntax noprefix + .global write + .global read + .global open + .global close + .global fork + .global real_waitid + .global execve + .global pause + .global mknod + .global dup2 + .global chdir + .global mount + .global exit + + write: + mov rax, 1 + syscall + ret + + read: + mov rax, 0 # syscall number for read + mov rdi, rdi # file descriptor (already in rdi) + mov rsi, rsi # buffer pointer (already in rsi) + mov rdx, rdx # size (already in rdx) + syscall + ret + + open: + mov rax, 2 + syscall + ret + + close: + mov rax, 3 + syscall + ret + + fork: + mov rax, 57 + syscall + ret + + real_waitid: + mov rax, 247 + mov r10, rcx + syscall + ret + + execve: + mov rax, 59 + syscall + + pause: + mov rax, 34 + syscall + + mknod: + mov rax, 133 + syscall + + dup2: + mov rax, 33 + syscall + + chdir: + mov rax, 80 + syscall + + mount: + mov rax, 165 + mov r10, rcx + syscall + + exit: + mov rax, 60 + syscall + ret |