diff options
Diffstat (limited to 'tests/libc/kernel_stub.asm')
-rw-r--r-- | tests/libc/kernel_stub.asm | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/tests/libc/kernel_stub.asm b/tests/libc/kernel_stub.asm new file mode 100644 index 0000000..c9335a8 --- /dev/null +++ b/tests/libc/kernel_stub.asm @@ -0,0 +1,48 @@ +[bits 32] + +global syscall0 +global syscall1 +global syscall2 +global syscall3 + +; long syscall1( long n ); +syscall0: + push ebp + mov ebp, esp + mov eax, [ebp+8] + int 0x80 + leave + ret + +; long syscall1( long n, long a1 ); +syscall1: + push ebp + mov ebp, esp + mov eax, [ebp+8] + mov ebx, [ebp+12] + int 0x80 + leave + ret + +; long syscall2( long n, long a1, long a2 ); +syscall2: + push ebp + mov ebp, esp + mov eax, [ebp+8] + mov ebx, [ebp+12] + mov ecx, [ebp+16] + int 0x80 + leave + ret + +; long syscall3( long n, long a1, long a2, long a3 ); +syscall3: + push ebp + mov ebp, esp + mov eax, [ebp+8] + mov ebx, [ebp+12] + mov ecx, [ebp+16] + mov edx, [ebp+20] + int 0x80 + leave + ret |