-
12-09-2019 - |
質問
刺激によりこの問
目の前を通りがかった私達のINT21hしています。今では、一部の錆び知識の炉内構造物が多くはなく。たのを覚えているC64ました障害、非Maskable割り込みを行うが、自分の知識を停止します。ですがもらえるとありがたいか?それはDOS関連の戦略とは?
他のヒント
DOSと考えることができる図書館の利用を提供しファイル/ディレクトリの抽象化のためのPC-少。 int 21h
簡単なハードウェア"trick"で使用することができるコーコードからこのライブラリを知らずに予める場所ではあります。できると考えることを活用しDOS APIに含まれています。
今、話題のソフトウェア障害が複雑であり、一部での概念に進化してインテル機能を追加し、x86家族を追ううちには対応し古いソフトウェアです。適切な説明をこんにちはページさんのほうが短いものです。
主要な問題であるかどうかで リアルモード または 保護モード.
リアルモード は、"オリジナルの"モードの操作のためのx86プロセッサーこのモードDOS運行(時のDOSプログラムWindows、モードプロセッサvirtualisedで内で同一の規則が適用されます).現在実行中のプログラム実行時にカスタマイズされ、プロセッサーに
実際のモードであるベクトルテーブルに高めることをプロセッサによるアドレスにジャンプ毎に割り込みから0-255です。この表は人口のBIOSやDOSなどのデバイスドライバがプログラムしました。これらの障害を発生することが可能ですハードウェアなどによる打鍵).その他によるソフトウェアの条件など分割により0)です。 他の ることができるように発生するの実行による int n
ました。
プログラムをセット/クリアを有効にする"障害"の旗;このフラグに影響するハードウェアの割り込みには影響しない int
ください。
DOSデザイナーを選びました割り込み番号21h扱いDOSの要求の数は実質的な意味:で未使用の入力時です。多くの他(番号10hはBIOS設置割込みルーチンとグラフィック、のためのインスタンス).また、これらはすべて、IBM PC compatiblesだけます。x86プロセッサーにも組み込みシステムがそのソフトウェアおよび割り込みのテーブルを配したものとは大きく異な!
保護モード は、"セキュリティ意識"モードにおいて紹介した286プロセッサーおよび多くの拡張に386.で複数の特典です。OSの設定にすることが必要す(とそうでない場合は、OSがで間違っているのは、お持ちの潜在的なセキュリティ用).ユーザプログラムは一般的に閉じ込める"最小限の権限を"モードの動作がアクセスしようとしているハードウェアポートの割り込みフラグ、アクセスするメモリ領域で止めるプログラムでは、OSの決定などで終了させるプログラムのプログラムでしたいと思われている).
割り込みの取扱いが複雑になります。十分と言うと一般的にユーザプログラムはソフトウェア割り込み、割り込み番号 ない ベクトルとしての割り込みます。むしろ一般的な保護の例外が生成され、OSのハンドラについての例外である場合、OSのデザインもその作業の過程にしたいとサービスになります。またまたLinuxおよびWindowsにおけるいかない場合は、現在)このような機構のためのシステムに発信します。でも、他の方法を実現するこなどのSYSENTER。
ラルフ・ブラウンの割り込みリストには何をして中断されている多くの情報が含まれています。 int型21 に、他のすべてのように、レジスタ値に応じて、幅広い機能をサポートしていますます。
ラルフ・ブラウンのリストでのINT命令は、ソフトウェア割り込みです。これは、ルーチンにジャンプは、メモリ内の固定位置で、割り込みベクトルによって指し示させます。 INT命令の利点は、JMPため多分6にoposedように、わずか2バイト長であり、そしてそれは容易に割り込みベクタの内容を変更することによって、再方向付けすることができることである。
のInt 0x21では、x86ソフトウェア割り込みである - 基本的には、割り込みテーブルは、ソフトウェア割り込み関数のアドレスをリストメモリ内の固定点であることを意味します。 x86 CPUは、割り込みオペコードを受信する(または特定のソフトウェア割り込みを実行すべきと判断した)場合、それは(その時点で関数が返す代わりにiret
のret
を使用しなければならない)、その点へのコールを実行するために、そのテーブルを参照します。
のInt 0x21で、その他のソフトウェア割り込みを再マッピングすることが可能です。 (あなたが注意している場合または0x08の)システムチック割り込みである、一つの興味深いソフトウェア割り込みをマッピングしたり、チェーンがint 0x1cにある、毎秒18.2回と呼ばれます。これはさえシングルスレッドリアルモード(リアルモードプロセスは、あなたの割り込み機能を呼び出すために18.2倍秒を中断されます)、「バックグラウンド」のプロセスを作成するために使用することができます。
DOSオペレーティングシステム(またはWindowsコンソールとして、いくつかのDOSエミュレーションを提供しているシステム)でのInt 0x21では、効果的に「API」メインDOSオペレーティングシステムが何であるかにマッピングされています。 AHレジスタに異なる値を提供することによって、異なるDOS機能は、スクリーン(AH = 0x09の)にファイル(AH = 0x3D)または印刷を開くように実行することができます。
これは素晴らしいからの割り込みについてのアセンブリ言語プログラミングでの芸術です。
80×86で、通称イベントの3つのタイプがあります 割り込み:トラップ、例外、割り込み(ハードウェア割り込み)。 この章では、これらの形態のそれぞれを説明し、彼らを議論します 80×86のCPUとPC互換機でサポートします。
用語トラップと例外が頻繁に私達は、同義に使用されているが、 プログラマが開始され、期待示すために、長期的なトラップを使用します。 特別なハンドラ・ルーチンへの制御の移行。多くの点で、A トラップは、特殊なサブルーチンコール以外の何ものでもありません。多くの書籍 ソフトウェア割り込みなどのトラップを参照してください。 80×86のint型の命令であります トラップを実行するためのメイン車両。トラップが通常であることに注意してください 無条件;それは、あなたがint型の命令を実行するとき、ある制御 常にトラップに関連付けられているプロシージャに渡します。から トラップが明示的な指示を介して実行される、決定することは容易です 正確にプログラムのどの命令がトラップ処理を起動します 日常ます。
(ほぼ)全体DOSインターフェースは、各種レジスタ内のパラメータと、INT21Hコマンドとして利用できるようになりました。これは、右のコードにジャンプするビルトイン・ハードウェアテーブルを使用して、少しトリックです。また、INT 33hを、マウスのためだった。
これは、「ソフトウェア割り込み」です。そうでないハードウェアは全く中断ます。
アプリケーションは、ソフトウェア割り込みを起動すると、そのそれは呼び出しのコードの正確なメモリアドレスを知っている必要はありません(サブルーチンコールとは違って)ことを除いて、サブルーチンの呼び出しを行うと、、それは本質的には同じです。
システムソフトウェア(例えばDOSやBIOS)ソフトウェア割り込みなどのアプリケーションへのAPIを公開します。
ソフトウェア割り込みしたがってダイナミックリンクの一種である。
正確には、ここではR.ブラウンのINT 21Hコマンドリストへの直接リンクがあります: HTTP ://www.ctyme.com/intr/int-21.htmする
実際、多くの概念です。まずはエールを送ります。
割り込みは平均を求め、CPU、 割り込み 現在のプログラムフローにジャンプエントリにトラックバック(ISR-割り込みサービスのルーチン)は、仕事(通常、OSカーネルやデバイスドライバ)として返します。
どう考えている代表的な用途のために割り込みを行う?
- ハードウェア障害:デバイスの要求から注目のCPUにより発行、割り込みます。
- CPUの例外:場合に異常があCPU条件が起こるなどの部門によるゼロ、ページ、...CPUの飛躍に対応する割込みハンドラのOSでは何でもやる"ということではない送信信号を工程の負荷のページからスワップおよび更新のTLB/ページテーブル,...).
- ソフトウェア割り込み:その割込みまでの通話のOSカーネルで簡単に実装システム呼び出しで使用割り込みを行う.ものだと思うので、x86を使用できる電話指示一部の構造(TSS IIRC、新しいx86がの使用に対する強制/SYSENTER intructions.
Cpuに決まるのにジャンプを見てテーブルを除くベクトル割り込みベクター IVTにx86リアルモードでは、IDTにx86保護モード,...).一部のCpuにはシングルベクターのためのハードウェア障害ととも例外ではISRはいくつかの特定のオリジネーターの割り込みその他多くのベクターダイレクトにジャンプす非常に具体的なGfp.
x86は256で割り込みベクトル.オリジナルパソコン、これらの分かれるとともに,いくつかのグループ:
00-04
CPUの例外を含むNMI.は、その後のCpu(80186,286,...)では、この範囲を拡大し、重複するのです。08-0F
これらのハードウェア障害、通常とIRQ0 7のとおりとする。パソコンで追加IRQ8-1510-1F
BIOSます。概念的には、これらのできるシステム呼び出しは、BIOSは、DOSることができるコンクリート機械にも満足のいくホテルでした定義されるCP/M)20-2F
DOSます。このうちのいくつかの多重化し、多様な機能を備えています。はあINT21h、多DOSサービス30-FF
のための外部ドライバーやユーザプログラム.