summaryrefslogtreecommitdiff
path: root/kernel/usrbin/usrbin.s
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/usrbin/usrbin.s')
-rw-r--r--kernel/usrbin/usrbin.s32
1 files changed, 32 insertions, 0 deletions
diff --git a/kernel/usrbin/usrbin.s b/kernel/usrbin/usrbin.s
new file mode 100644
index 0000000..91dd94a
--- /dev/null
+++ b/kernel/usrbin/usrbin.s
@@ -0,0 +1,32 @@
+bits 32
+org 0x100000
+
+main:
+ push .msg
+ call puts
+ add esp, 4
+.loop:
+ ; loop forever
+ jmp .loop
+.msg: db "Hello World from Userspace!", 0
+
+puts:
+ push ebp
+ mov ebp, esp
+ push esi
+ push edi
+ mov esi, [ebp+8]
+ mov edi, 0xB8000
+.loop:
+ lodsb
+ cmp al, 0
+ je .end
+ mov [edi], al
+ mov byte [edi+1], 0x07
+ add edi, 2
+ jmp .loop
+.end:
+ pop edi
+ pop esi
+ pop ebp
+ ret