summaryrefslogtreecommitdiff
path: root/kernel/src/asm/long_mode_init.asm
diff options
context:
space:
mode:
authornatrixaeria <upezu@student.kit.edu>2019-11-09 04:44:04 +0100
committernatrixaeria <upezu@student.kit.edu>2019-11-09 04:44:04 +0100
commitb17a0a41bea7789178919f4a0999ea8519e1f897 (patch)
tree96ef6db92da1c63e99041ef7220e58e8af577543 /kernel/src/asm/long_mode_init.asm
parenta68a9a11c91c3aca4d6f2e8a32df673ca39ec34d (diff)
Introduce integration test crate
Diffstat (limited to 'kernel/src/asm/long_mode_init.asm')
-rw-r--r--kernel/src/asm/long_mode_init.asm19
1 files changed, 19 insertions, 0 deletions
diff --git a/kernel/src/asm/long_mode_init.asm b/kernel/src/asm/long_mode_init.asm
new file mode 100644
index 0000000..8c1b1e7
--- /dev/null
+++ b/kernel/src/asm/long_mode_init.asm
@@ -0,0 +1,19 @@
+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
+
+ extern _start
+ jmp _start