Windows XP NTLDRのINT = 10H / AX = 2000Hとは何ですか?


1

現在、Windows XPのNTLDRを分解しました。起動プロセス中に、NTLDRは次の割り込みを使用します。

INT 10H, AX=2000H, BX=0301H, CX=0H, DX=0H

この割り込みの意味がわかりません。どういう意味ですか?


その割り込みでコード/アセンブラ出力スニペットを投稿できますか?アセンブラー出力でその特定の場所を確認すると役立ちます。
ブレークスルー

また、バイトオーダー(エンディアン)が正しく計算され、そうであるかどうか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バイトオーダーが正しいと確信していますか?
ブレークスルー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.