8086 マイクロプロセッサの入出力に int 21h をどのように使用できるかを説明してください。
以下は、INT 21h 割り込みを使用してキーボードから文字を読み取る方法の例です。
1. プログラムは、AH レジスタに値 1 をロードして、キーボードから文字を読み取りたいことを示します。
2. プログラムは INT 21h 割り込みを発行します。
3. マイクロプロセッサは MS-DOS I/O ハンドラ コードにジャンプします。
4. I/O ハンドラー コードは、キーボード バッファーに使用可能な文字があるかどうかをチェックします。
5. 使用可能な文字がある場合、I/O ハンドラ コードはバッファから文字を読み取り、AL レジスタに格納します。
6. 使用可能な文字がない場合、I/O ハンドラー コードはキャリー フラグ (CF) を 1 に設定して、この状態を示します。
7. プログラムはキャリー フラグをチェックして、文字が正常に読み取られたかどうかを判断します。
8. キャリー フラグが 0 の場合、プログラムは AL レジスタから文字を取得します。
この例のアセンブリ コードは次のとおりです。
「」
mov ああ、1; AH =1 キーボードから文字を読み取る
int 21h; I/O 操作を実行するための 21h の割り込み
jc ノーチャー;キャリーフラグが設定されている場合にジャンプします(使用可能なキャラクターがありません)
モブ ch、アル; ALレジスタから文字を取得します。
「」
この例は、画面への文字の書き込み、ファイルの読み取り、ファイルへの書き込みなど、他の I/O 操作を実行するように変更できます。各 I/O 操作は、INT 21h 割り込みを発行する前に AH レジスタにロードされる固有の機能コードによって識別されます。