This (most likely) won't fix your triple fault, but just a quick look at your early.asm and I noticed you've labeled (and set up) your stack backwards.
Remember: On x86 The stack grows downwards. From the wiki:
Code:
To set up a stack, we set the esp register to point to the top of our
stack (as it grows downwards on x86 systems). This is necessarily done
in assembly as languages such as C cannot function without a stack.
Although written for 32 bit protected mode, it should apply to you. I could also be completely wrong, because I am new to OSDev, but being proven wrong is an opportunity to learn
EDIT: Sorry, I goofed. I misread your code and had a dyslexic moment. Your stack is set up properly.