From 8fcd0cf7d6a2c891422c7101840778043207a60d Mon Sep 17 00:00:00 2001 From: Nic Gaffney Date: Sun, 10 Dec 2023 09:48:53 -0600 Subject: Changed to the based ASM syntax and implemented a rudementary GDT --- tests/compile_flags.txt | 1 + tests/test | Bin 0 -> 20752 bytes tests/test_gdt.c | 21 +++++++++++++++++++++ 3 files changed, 22 insertions(+) create mode 100644 tests/compile_flags.txt create mode 100755 tests/test create mode 100644 tests/test_gdt.c (limited to 'tests') diff --git a/tests/compile_flags.txt b/tests/compile_flags.txt new file mode 100644 index 0000000..f8a2c60 --- /dev/null +++ b/tests/compile_flags.txt @@ -0,0 +1 @@ +-I../src/include/ diff --git a/tests/test b/tests/test new file mode 100755 index 0000000..f2cb106 Binary files /dev/null and b/tests/test differ diff --git a/tests/test_gdt.c b/tests/test_gdt.c new file mode 100644 index 0000000..938e709 --- /dev/null +++ b/tests/test_gdt.c @@ -0,0 +1,21 @@ +#include "gdt.h" +#include +#include +#include +int main() { + + uint16_t code_info = make_code(0, 0, 1); + uint16_t data_info = make_data(0, 0, 1); + Segment_Descriptor_t null = make_descriptor(0, 0, 0); + Segment_Descriptor_t code = make_descriptor(0, 0xFFFFF, code_info); + Segment_Descriptor_t data = make_descriptor(0, 0xFFFFF, data_info); + GDT_t *table = malloc(sizeof(GDT_t)); + *table = (GDT_t){null, code, data}; + GDTR_t gdtr = {(table + sizeof(GDT_t) - table - 1), (uint32_t)table}; + + printf("%zu\n", sizeof(GDT_t)); + printf("0x%.16llX\n", null); + printf("0x%.16llX\n", code); + printf("0x%.16llX\n", data); + printf("0x%.24llX\n", table); +} -- cgit v1.2.3