マイクロプロセッサ-8086割り込み

Interruptプログラムの実行中に一時停止を作成する方法であり、周辺機器がマイクロプロセッサにアクセスできるようにします。マイクロプロセッサはその割り込みに応答しますISR (割り込みサービスルーチン)。これは、割り込みの処理方法をマイクロプロセッサに指示するための短いプログラムです。

次の画像は、8086マイクロプロセッサで発生する割り込みの種類を示しています。

ハードウェア割り込み

ハードウェア割り込みは、指定されたピンを介してマイクロプロセッサに信号を送信することにより、周辺機器によって引き起こされます。

8086には、NMIとINTRの2つのハードウェア割り込みピンがあります。NMIはマスク不可割り込みであり、INTRは優先度の低いマスク不可割り込みです。関連するもう1つの割り込みピンは、割り込みアクノリッジと呼ばれるINTAです。

NMI

これは、マスカブル割り込み要求ピン(INTR)よりも優先度の高い単一のマスク不可割り込みピン(NMI)であり、タイプ2の割り込みです。

この割り込みがアクティブになると、これらのアクションが実行されます-

  • 進行中の現在の命令を完了します。

  • フラグレジスタ値をスタックにプッシュします。

  • リターンアドレスのCS(コードセグメント)値とIP(命令ポインタ)値をスタックにプッシュします。

  • IPは、ワードロケーション00008Hのコンテンツからロードされます。

  • CSは、次のワード位置0000AHの内容からロードされます。

  • 割り込みフラグとトラップフラグは0にリセットされます。

INTR

INTRは、割り込みフラグの設定命令を使用して割り込みが有効になっている場合にのみマイクロプロセッサが割り込みられるため、マスク可能な割り込みです。割り込みフラグのクリア命令を使用して有効にしないでください。

INTR割り込みは、I / Oポートによってアクティブになります。割り込みが有効でNMIが無効の場合、マイクロプロセッサは最初に現在の実行を完了し、INTAピンに「0」を2回送信します。最初の「0」は、INTAが外部デバイスに準備をするように通知し、2番目の「0」の間にマイクロプロセッサがプログラム可能な割り込みコントローラから8ビット(たとえばX)を受信することを意味します。

これらのアクションはマイクロプロセッサによって実行されます-

  • まず、現在の命令を完了します。

  • INTA出力をアクティブにし、割り込みタイプ(Xなど)を受け取ります。

  • フラグレジスタ値、リターンアドレスのCS値、リターンアドレスのIP値がスタックにプッシュされます。

  • IP値はワード位置X×4の内容からロードされます

  • CSは、次の単語の場所の内容からロードされます。

  • 割り込みフラグとトラップフラグが0にリセットされます

ソフトウェア割り込み

一部の命令は、割り込みを作成するためにプログラムの目的の位置に挿入されます。これらの割り込み命令は、さまざまな割り込みハンドラの動作をテストするために使用できます。含まれています-

INT-タイプ番号の割り込み命令

2バイト命令です。最初のバイトはオペコードを提供し、2番目のバイトは割り込みタイプ番号を提供します。このグループには256種類の割り込みがあります。

その実行には、次の手順が含まれます-

  • フラグレジスタ値はスタックにプッシュされます。

  • リターンアドレスのCS値とリターンアドレスのIP値がスタックにプッシュされます。

  • IPは単語の場所「タイプ番号」×4の内容からロードされます

  • CSは、次の単語の場所の内容からロードされます。

  • 割り込みフラグとトラップフラグが0にリセットされます

type0割り込みの開始アドレスは000000H、type1割り込みの場合は00004H、type2の場合も同様に00008Hなどです。最初の5つのポインターは、専用の割り込みポインターです。すなわち−

  • TYPE 0 割り込みはゼロ除算の状況を表します。

  • TYPE 1 割り込みは、プログラムのデバッグ中のシングルステップ実行を表します。

  • TYPE 2 割り込みは、マスク不可能なNMI割り込みを表します。

  • TYPE 3 割り込みはブレークポイント割り込みを表します。

  • TYPE 4 割り込みはオーバーフロー割り込みを表します。

タイプ5からタイプ31までの割り込みは、他の高度なマイクロプロセッサ用に予約されており、32からタイプ255までの割り込みは、ハードウェアおよびソフトウェアの割り込みに使用できます。

INT3-ブレークポイント割り込み命令

オペコードがCCHの1バイト命令です。これらの命令はプログラムに挿入されるため、プロセッサはそこに到達すると、プログラムの通常の実行を停止し、ブレークポイント手順に従います。

その実行には、次の手順が含まれます-

  • フラグレジスタ値はスタックにプッシュされます。

  • リターンアドレスのCS値とリターンアドレスのIP値がスタックにプッシュされます。

  • IPはワードロケーション3×4 = 0000CHのコンテンツからロードされます

  • CSは、次の単語の場所の内容からロードされます。

  • 割り込みフラグとトラップフラグが0にリセットされます

INTO-オーバーフロー命令で割り込み

これは1バイトの命令とそのニーモニックです INTO。この命令のオペコードはCEHです。名前が示すように、これは条件付き割り込み命令です。つまり、オーバーフローフラグが1に設定されている場合にのみアクティブになり、割り込みタイプ番号が4の割り込みハンドラに分岐します。オーバーフローフラグがリセットされると、実行は次の指示。

その実行には、次の手順が含まれます-

  • フラグレジスタ値はスタックにプッシュされます。

  • リターンアドレスのCS値とリターンアドレスのIP値がスタックにプッシュされます。

  • IPはワードロケーション4×4 = 00010Hのコンテンツからロードされます

  • CSは、次の単語の場所の内容からロードされます。

  • 割り込みフラグとトラップフラグが0にリセットされます