summaryrefslogtreecommitdiff
path: root/kernel/src/long_mode_init.asm
diff options
context:
space:
mode:
authorDennis Kobert <dennis@kobert.dev>2019-10-25 03:59:21 +0200
committerDennis Kobert <dennis@kobert.dev>2019-10-25 03:59:21 +0200
commit92ad44ce3af9b000146d324e5c0f5dfce16927f9 (patch)
treeb350c1eda444a67d165882ea42dd41fb3ba9e946 /kernel/src/long_mode_init.asm
parentf45b2e7c13b3c8821832374e3e8860eabaaae5d2 (diff)
Start 64bit mode
Diffstat (limited to 'kernel/src/long_mode_init.asm')
-rw-r--r--kernel/src/long_mode_init.asm17
1 files changed, 17 insertions, 0 deletions
diff --git a/kernel/src/long_mode_init.asm b/kernel/src/long_mode_init.asm
new file mode 100644
index 0000000..f105388
--- /dev/null
+++ b/kernel/src/long_mode_init.asm
@@ -0,0 +1,17 @@
+global long_mode_start
+
+section .text
+bits 64
+long_mode_start:
+ ; load 0 into all data segment registers
+ mov ax, 0
+ mov ss, ax
+ mov ds, ax
+ mov es, ax
+ mov fs, ax
+ mov gs, ax
+
+ ; print `Uff!` to screen
+ mov rax, 0x8521846683668255
+ mov qword [0xb8000], rax
+ hlt