-wohin lädt er den kernel?
(ich sag es nur nochmal deutlich, da er meinen oberen Post da missverstanden hat)
Der Bootloader (NTLDR) lädt deinen Kernel ja in den Speicher. Es ist nun wichtig zu wissen an welche physische Adresse dein Kernel geladen wird, sonst stimmen die Adressen der Labels (z.B. 'msg') nicht, d.h. wenn du auf 'msg' zugreifen möchtest wird in Wirklichkeit an der falschen physischen Adresse nachgeschaut und es kommt natürlich nur Müll dabei raus.
Ich konnte jetzt auf Anhieb aber auch nicht rausfinden, was denn der NTLDR genau macht, insofern würde ich dazu raten einen anderen Bootloader zu verwenden (ABER: Vorsicht! Wenn du nicht ausreichend Kenntnisse dahingehend hast, dann installier keinen Bootloader auf deinem PC, sonst wirst du Windows evtl. nicht mehr booten können). Aber wenn du eine gute Dokumentation zu NTLDR findest, kannst du ja mal einen Link posten, dann kann man dir vielleicht besser helfen. Ich würde aber schätzen, dass Microsoft das wie so oft nicht öffentlich zugänglich dokumentiert hat.