diff --git a/arm/start.s b/arm/start.s
new file mode 100644
index 0000000000000000000000000000000000000000..8495600c4ebac866736934cea3ec56b47ed3cc67
--- /dev/null
+++ b/arm/start.s
@@ -0,0 +1,17 @@
+interrupt_vector_table:
+    b . @ Reset
+    b . 
+    b . @ SWI instruction
+    b . 
+    b .
+    b .
+    b .
+    b .
+
+.comm stack, 0x10000 @ Reserve 64k stack in the BSS
+_start:
+    .globl _start
+    ldr sp, =stack+0x10000 @ Set up the stack
+    bl kstart @ Jump to the main function
+1: 
+    b 1b @ Halt
diff --git a/x86/kernel.ld b/x86/kernel.ld
deleted file mode 100644
index c5e3a9deeb08591012027e4347f6311cc90308bf..0000000000000000000000000000000000000000
--- a/x86/kernel.ld
+++ /dev/null
@@ -1,62 +0,0 @@
-ENTRY(kstart)
-OUTPUT_FORMAT(elf64-x86-64)
-
-KERNEL_OFFSET = 0x100000;
-
-SECTIONS {
-    . = KERNEL_OFFSET;
-
-    . += SIZEOF_HEADERS;
-    . = ALIGN(4096);
-
-    .text : AT(ADDR(.text) - KERNEL_OFFSET) {
-        __text_start = .;
-        *(.text*)
-		. = ALIGN(4096);
-        __text_end = .;
-    }
-
-	.rodata : AT(ADDR(.rodata) - KERNEL_OFFSET) {
-        __rodata_start = .;
-        *(.rodata*)
-		. = ALIGN(4096);
-        __rodata_end = .;
-    }
-
-    .data : AT(ADDR(.data) - KERNEL_OFFSET) {
-        __data_start = .;
-        *(.data*)
-		. = ALIGN(4096);
-        __data_end = .;
-    }
-
-    .tdata : AT(ADDR(.tdata) - KERNEL_OFFSET) {
-        __tdata_start = .;
-        *(.tdata*)
-        . = ALIGN(4096);
-        __tdata_end = .;
-        __tbss_start = .;
-        *(.tbss*)
-        . += 8;
-        . = ALIGN(4096);
-        __tbss_end = .;
-    }
-
-    .bss : AT(ADDR(.bss) - KERNEL_OFFSET) {
-        __bss_start = .;
-        *(.bss*)
-        . = ALIGN(4096);
-        __bss_end = .;
-    }
-
-    __end = .;
-
-    /DISCARD/ : {
-        *(.comment*)
-        *(.debug*)
-        *(.eh_frame*)
-        *(.gcc_except_table*)
-        *(.note*)
-        *(.rel.eh_frame*)
-    }
-}
diff --git a/x86/bootsector.asm b/x86_64/bootsector.asm
similarity index 100%
rename from x86/bootsector.asm
rename to x86_64/bootsector.asm
diff --git a/x86/descriptor_flags.inc b/x86_64/descriptor_flags.inc
similarity index 100%
rename from x86/descriptor_flags.inc
rename to x86_64/descriptor_flags.inc
diff --git a/x86/gdt_entry.inc b/x86_64/gdt_entry.inc
similarity index 100%
rename from x86/gdt_entry.inc
rename to x86_64/gdt_entry.inc
diff --git a/x86/harddrive.asm b/x86_64/harddrive.asm
similarity index 100%
rename from x86/harddrive.asm
rename to x86_64/harddrive.asm
diff --git a/x86/initialize.asm b/x86_64/initialize.asm
similarity index 100%
rename from x86/initialize.asm
rename to x86_64/initialize.asm
diff --git a/x86/memory_map.asm b/x86_64/memory_map.asm
similarity index 100%
rename from x86/memory_map.asm
rename to x86_64/memory_map.asm
diff --git a/x86/print16.asm b/x86_64/print16.asm
similarity index 100%
rename from x86/print16.asm
rename to x86_64/print16.asm
diff --git a/x86/startup-common.asm b/x86_64/startup-common.asm
similarity index 100%
rename from x86/startup-common.asm
rename to x86_64/startup-common.asm
diff --git a/x86/startup-i386.asm b/x86_64/startup-i386.asm
similarity index 100%
rename from x86/startup-i386.asm
rename to x86_64/startup-i386.asm
diff --git a/x86/startup-x86_64.asm b/x86_64/startup-x86_64.asm
similarity index 100%
rename from x86/startup-x86_64.asm
rename to x86_64/startup-x86_64.asm
diff --git a/x86/unreal.asm b/x86_64/unreal.asm
similarity index 100%
rename from x86/unreal.asm
rename to x86_64/unreal.asm
diff --git a/x86/vesa.asm b/x86_64/vesa.asm
similarity index 100%
rename from x86/vesa.asm
rename to x86_64/vesa.asm
diff --git a/x86/vesa.inc b/x86_64/vesa.inc
similarity index 100%
rename from x86/vesa.inc
rename to x86_64/vesa.inc