diff --git a/kernel/src/boot/boot_16.cpp b/kernel/src/boot/boot_16.cpp index 8a0f55f2..17d86e68 100644 --- a/kernel/src/boot/boot_16.cpp +++ b/kernel/src/boot/boot_16.cpp @@ -5,6 +5,8 @@ // http://www.boost.org/LICENSE_1_0.txt) //======================================================================= +#include "boot/code16gcc.h" + namespace { typedef unsigned int uint8_t __attribute__((__mode__(__QI__))); @@ -77,10 +79,10 @@ void setup_gdt(){ }; static gdt_ptr gdtr; - gdtr.length = sizeof(gdt); + gdtr.length = sizeof(gdt) - 1; gdtr.pointer = reinterpret_cast(&gdt); - asm volatile("lgdt %0" : : "m" (gdtr)); + asm volatile("lgdt [%0]" : : "m" (gdtr)); } } //end of anonymous namespace