3

ただの予防策。私は組み立ての完全な初心者です。私の唯一の質問は、DOS では次のコマンドのみであるということです。

MOV  AH, 09
INT  21

MOV  AX, 4C01
INT  21

092 番目の割り込みには、パラメータ意味表示画面がまだありますか、AXそれとも何らかの方法で変更されますか?

4

2 に答える 2

3

AHALAX、それぞれ の上半分と下半分です。はい、設定AX変更AHです。

4C「終了プログラム」です。

于 2013-02-04T05:02:20.843 に答える
3

Ralf Brown の Interrupt Listを検索する必要があります。これは、これらの古い DOS/Windows 割り込みの決定的なガイドです。

AH = 09H で INT 21h を呼び出すと、コンソール$にある -terminated 文字列が出力されます。DS:DX

AH = 4cH で INT 21H を呼び出すと、リターン コードAL(この場合は 01H) でプログラムが終了します。

が単に の上位 8 ビットであるため、2 番目の呼び出しはに設定されません。2 番目の設定は、設定の一部として次のように設定されます。AH09HAHAXMOVAH4cHAX

ここに画像の説明を入力


より詳細に(ウィキペディアから):

ここに画像の説明を入力


この他のレジスターから作られたレジスターには、Intel での長い歴史があります。

  • axahとで構成されていalます。
  • eax16 ビットと からの他の 16 ビットで構成されていaxます。
  • rax32 ビットと からの他の 32 ビットで構成されていeaxます。

他の汎用レジスターインデックスまたはベースレジスターなどの特殊レジスター、およびスタックポインターに対する同様のアプローチとともに。

興味深いことに、それらは拡張レジスタの上位半分にアクセスする機能を複製しませんでした。たとえば、とeaxで構成されていました(どちらも神話上の話ですが、後者は のエイリアスです)。eahealax

これにより、より高いモードで非常に小さなレジスタの大きなキャッシュが得られますが、コストがどうなるかはわかりません (Intel/AMD がコストを知っていることは間違いなく、おそらく高すぎると見なされていました)。

于 2013-02-04T05:18:41.267 に答える