1 現在、Windows XPのNTLDRを分解しました。起動プロセス中に、NTLDRは次の割り込みを使用します。 INT 10H, AX=2000H, BX=0301H, CX=0H, DX=0H この割り込みの意味がわかりません。どういう意味ですか? boot bootloader interrupts ntldr — ズナッツ ソース その割り込みでコード/アセンブラ出力スニペットを投稿できますか?アセンブラー出力でその特定の場所を確認すると役立ちます。 — ブレークスルー また、バイトオーダー(エンディアン)が正しく計算され、そうであるかどうかAXは確かですか?2000H0020H — ブレークスルー
1 答えを理解するには、アセンブリ言語を少し理解する必要があります。 x86およびx64プロセッサで使用される多目的レジスタのうち、EAX、EBX、ECX、およびEDXは半分に分割できます。したがって、EAXはAXとAHに分類されます。同じことがEBXなどにも当てはまります。AX、BX、CX、およびDXは、EAX、EBX、ECX、およびEDXレジスタの下半分です。割り込み10Hはビデオ割り込みコードです。 — ジェイソンレーン ソース * 2 ...ではありません。グラマーフォール — ジェイソンレーン 下位互換性の理由から、int 10Hの拡張レジスタを使用する可能性は低いと思います。 — マルティノー 1 実際、INT = 10h / AH = 20Hの意味を知りたいです。int10h / ah = 20hの下には文書化されたサブサービスはありませんが、Ntldrには存在します。 @JasonLane:あなたはそれを編集することができます — Journeyman Geek @znatzバイトオーダーが正しいと確信していますか? — ブレークスルー