diff options
author | Xander <xander@icth.xyz> | 2023-06-28 21:21:02 +0200 |
---|---|---|
committer | Xander <xander@icth.xyz> | 2023-06-28 21:21:02 +0200 |
commit | fd86b8a4769860f22fc04ce3b80510d809f68d3c (patch) | |
tree | ce507aa2cd84c7e61f3e5777a88f14a6fe843431 /src/arch/x86_64/long_mode_init.asm | |
parent | b83b28b21571f9b1fadd251295f5ca03d9dfedc7 (diff) | |
download | ats-os-fd86b8a4769860f22fc04ce3b80510d809f68d3c.tar.xz ats-os-fd86b8a4769860f22fc04ce3b80510d809f68d3c.zip |
Booting to Long mode
Diffstat (limited to 'src/arch/x86_64/long_mode_init.asm')
-rw-r--r-- | src/arch/x86_64/long_mode_init.asm | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/arch/x86_64/long_mode_init.asm b/src/arch/x86_64/long_mode_init.asm new file mode 100644 index 0000000..eab3788 --- /dev/null +++ b/src/arch/x86_64/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 `OKAY` to screen + mov rax, 0x2f592f412f4b2f4f + mov qword [0xb8000], rax + hlt |