0xCC及び0xCD特に、これらからの遺物であるインテル8088 / 8086 1980におけるプロセッサ命令セットバック。ソフトウェア割り込みオペコードの 0xCC特殊なケースです。特別な1バイトバージョンでは、プログラムが割り込み3を生成できます。INT 0xCD0xCC
ソフトウェア割り込み番号は、原則として任意ですINT 3が、伝統的にデバッガのブレークまたはブレークポイント機能に使用されていましたが、この慣習は今日まで残っています。デバッガーが起動されるたびに、INT 3そのオペコードが実行されるとデバッガーがトリガーされるように、割り込みハンドラーがインストールされます。通常、現在実行中のプログラミングを一時停止し、インタラクティブなプロンプトを表示します。
通常、x86 INTオペコードは2バイトです0xCD。0〜255の範囲の目的の割り込み番号が続きます。で発行できますが、未使用のメモリの信頼できる「フィルバイト」として機能するためには、オペコードが1バイトのみでなければならない0xCD 0x03ためINT 3、インテルは特別なバージョンを追加することを決定しました0xCC。
ここでのポイントは、プロセッサが意図した命令を含まないメモリに誤ってジャンプした場合に、正常な回復を可能にすることです。マルチバイト命令は、誤ったジャンプが適切に形成された命令ストリームで続行しなければならない可能性のあるバイトオフセットに到達する可能性があるため、この目的には適していません。
明らかに、1バイトのオペコードはこれで問題なく機能しますが、風変わりな例外が発生する可能性もあります。たとえば、塗りつぶしシーケンス0xCDCDCDCD(このページでも説明)を考えると、命令ポインターがどこにあるかに関わらず、かなり信頼できることがわかります(おそらく最後に満たされたバイトを除いて)、CPUは有効な2バイト x86命令の実行を再開できます。CD CDこの場合、ソフトウェア割り込み205(0xCD)を生成します。
さらに奇妙なことに、CD CC CD CC100%は解釈可能ですが、どちらINT 3かを与えると、INT 204シーケンスのCC CD CC CD信頼性は低下します(図のように75%だけです)。

マクロアセンブラリファレンス、1987