So, I went out and hunting bootloaders
I found one that seemed to work and my kernel could print out characters to the screen when loaded with that bootloader.
But then I added a line like this to the kernel:
char strOut[256] = "Welcome!";
and everything paniced.
This is how I compiled the kernel:
gcc -nostartfiles -nostdlib -fno-builtin -fwritable-strings -c test.c
ld -o test -Ttext 0x8000 -e main test.o
(test.c is the kernel)
PS: I don't use GRUB because it's too complicated for me

