スタックポインタを2バイトの境界に揃える必要があることが分かりました。つまり、SPを0xF(またはその他の奇数)で終わる値に設定すべきではありません。x86リアルモード(アライメント)でスタックポインタアドレスを選択
SPとして0xFFFFを使用するとどうなりますか? 64kBはすべて使用可能か、それとも1バイト少ないですか?
スタックサイズを1024バイトにしたい場合は、SPを0x3FFまたは0x400に設定する必要がありますか?例えばSS(スタックセグメント)が使用されることを指しているバイトですか?
hereには、0xEで終わるSPアドレスも使用しないでください。「0x..Eおよび0x..F」のバイトを無駄にする必要があります。どうして?
#GPはリアルモードで表示されますか?例外がスローされたときに何が起こるはずですか?私は私のブートローダでそれを引き起こすように見えることはできません、1つのオーバー/アンダーフローバイトはちょうど失われるようです。 – user2725580
@ user2725580 AFAIR(そしてIntelのマニュアルによれば)それは上げられるべきです。 #GPはintです13.トリガーされますか?私はこれを後でテストし、最終的に答えを更新します。あなたに洞察があれば教えてください。 –
@ user2725580 SSの例外です!私は一瞬で答えを更新します –