aboutsummaryrefslogtreecommitdiff
path: root/src/kernel/tasks/userspace.asm
diff options
context:
space:
mode:
Diffstat (limited to 'src/kernel/tasks/userspace.asm')
-rw-r--r--src/kernel/tasks/userspace.asm20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/kernel/tasks/userspace.asm b/src/kernel/tasks/userspace.asm
new file mode 100644
index 0000000..4f79d4d
--- /dev/null
+++ b/src/kernel/tasks/userspace.asm
@@ -0,0 +1,20 @@
+global jump_userspace
+extern hl_cr3
+extern hl_esp
+extern hl_eip
+
+jump_userspace:
+ mov ax, 0x23
+ mov ds, ax
+ mov es, ax
+ mov fs, ax
+ mov gs, ax
+
+ mov eax, dword [hl_esp]
+ push 0x23
+ push eax
+ pushf
+ push 0x1B
+ push dword [hl_eip]
+
+ iret \ No newline at end of file