i'm not quite sure about all that absolute addressing stuff and asm linking but could it be that you're jumping into the text section of your kernel and not to the program itself?

edit: nevermind, i mixed data and text. (can't they call it code and data?)