Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
As you can see there's still a lot of work to be done but now I can at least finally do the work. I'd like to thank everyone for their input. It certainly helped me a lot.
Tell me which boot loader you are using? What values have been placed in registers before your code gets control? Why you are using so much displacement where your code is loading to?
For example, my kernel file loads at 0x8000. And the starting code sets the stack pointer to 0x8000.
I'm using Bootstrap Bill, which is a homebrew bootloader. The reason I load the kernel there is because I can, that's pretty much the end of reason. Anyway, because of this the displacement I programmed in my code works. It is quite likely I'll change my bootloader but that falls under my "When I've got nothing better to do" category of things to do.