解决 early_printk 不定参数错误问题

因为堆栈段基址和数据段基址不一致，导致不定参数地址错误。
将堆栈段基址重定位 0x00 处（和数据段基址一致）。

顺便实现了 exception C 语言处理。