I am making a basic C kernel. (Loaded by an assembly program) I am compiling it with an i686-elf cross compiler for windows. My C code is as follows:
void c
You're not initializing the segment registers. Try changing the start of your bootsector to something like this:
xor ax, ax mov bp, 0x9000 mov ds, ax mov es, ax mov ss, ax ; disables interrupts until the end of the next instruction mov sp, bp mov [BOOT_DRIVE], dl