Magyarázza el, hogy az int 21h hogyan használható bemeneti kimenetre a 8086-os mikroprocesszorban?
Íme egy példa arra, hogy az INT 21h megszakítás hogyan használható karakterek beolvasására a billentyűzetről:
1. A program betölti az AH regisztert 1-es értékkel, jelezve, hogy egy karaktert akar beolvasni a billentyűzetről.
2. A program INT 21 órás megszakítást ad ki.
3. A mikroprocesszor az MS-DOS I/O kezelő kódra ugrik.
4. Az I/O kezelő kódja ellenőrzi, hogy van-e elérhető karakter a billentyűzet pufferében.
5. Ha van elérhető karakter, az I/O kezelő kód beolvassa a karaktert a pufferből, és eltárolja az AL regiszterben.
6. Ha nem áll rendelkezésre karakter, az I/O-kezelő kód 1-re állítja a Carry Flag-t (CF), jelezve ezt a feltételt.
7. A program ellenőrzi a Carry Flag-t, hogy megállapítsa, sikeresen beolvasott-e egy karaktert.
8. Ha a Carry Flag 0, a program lekéri a karaktert az AL regiszterből.
Íme a példa összeállítási kódja:
```
mov ah, 1; AH =1 karakter beolvasásához a billentyűzetről
int 21h; Az I/O művelet végrehajtásához szakítsa meg a 21 órát
jc nochar; Ugrás, ha a Carry Flag be van állítva (nincs elérhető karakter)
mov ch, al; Keresse ki a karaktert az AL regiszterből
```
Ez a példa módosítható más I/O műveletek végrehajtására, mint például karakter írása a képernyőre, fájl beolvasása vagy fájlba írása. Minden I/O műveletet egy egyedi funkciókód azonosít, amely az INT 21h megszakítás kiadása előtt betöltődik az AH regiszterbe.