diff options
author | Raghuram Subramani <raghus2247@gmail.com> | 2025-02-02 10:37:08 -0500 |
---|---|---|
committer | Raghuram Subramani <raghus2247@gmail.com> | 2025-02-02 10:38:56 -0500 |
commit | 6b76eb48066a5fb0c45b108fd3eed1743029da4f (patch) | |
tree | 126a4263c395a2b83e117fd8703e1dbeb96edcbc /kernel/boot/gdt | |
parent | c216a2000179a133e1e38852f55261f4bf9f08f6 (diff) |
build: Use the custom linker and nasm
Diffstat (limited to 'kernel/boot/gdt')
-rw-r--r-- | kernel/boot/gdt/gdt.s | 49 |
1 files changed, 33 insertions, 16 deletions
diff --git a/kernel/boot/gdt/gdt.s b/kernel/boot/gdt/gdt.s index d1d768c..73ebed1 100644 --- a/kernel/boot/gdt/gdt.s +++ b/kernel/boot/gdt/gdt.s @@ -1,24 +1,41 @@ -.global _GDT_flush -.type _GDT_flush, @function +;; +;; bubbl +;; Copyright (C) 2024-2025 Raghuram Subramani <raghus2247@gmail.com> +;; +;; This program is free software: you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. +;; +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with this program. If not, see <http://www.gnu.org/licenses/>. +;; + +global _GDT_flush _GDT_flush: - /* First Argument (Pointer to the GDT) */ - movl 4(%esp), %eax + ;; First Argument (Pointer to the GDT) + mov eax, [esp + 4] - /* Load GDT */ - lgdt (%eax) + ;; Load GDT + lgdt [eax] - /* Offset For Kernel Data Segment (16 bits) */ - mov $0x10, %eax + ;; Offset For Kernel Data Segment (16 bits) + mov eax, 0x10 - /* Set the Data Segment Selectors */ - mov %ax, %ds - mov %ax, %es - mov %ax, %fs - mov %ax, %gs - mov %ax, %ss + ;; Set the Data Segment Selectors + mov ds, ax + mov es, ax + mov fs, ax + mov gs, ax + mov ss, ax - /* Set the Code Segment Selector */ - jmp $0x08, $.flush + ;; Set the Code Segment Selector + jmp 0x08:.flush .flush: ret |