Expliquez comment int 21h peut être utilisé pour l'entrée-sortie dans le microprocesseur 8086 ?
Voici un exemple de la façon dont l'interruption INT 21h peut être utilisée pour lire un caractère du clavier :
1. Le programme charge le registre AH avec la valeur 1 pour indiquer qu'il souhaite lire un caractère du clavier.
2. Le programme émet une interruption INT 21h.
3. Le microprocesseur accède au code du gestionnaire d'E/S MS-DOS.
4. Le code du gestionnaire d'E/S vérifie si un caractère est disponible dans le tampon du clavier.
5. Si un caractère est disponible, le code du gestionnaire d'E/S lit le caractère dans le tampon et le stocke dans le registre AL.
6. Si aucun caractère n'est disponible, le code du gestionnaire d'E/S définit le Carry Flag (CF) sur 1 pour indiquer cette condition.
7. Le programme vérifie le Carry Flag pour déterminer si un caractère a été lu avec succès.
8. Si le Carry Flag est 0, le programme récupère le caractère du registre AL.
Voici le code assembleur pour cet exemple :
```
mouvement ah, 1; AH =1 pour lire un caractère au clavier
int 21h; Interruption 21h pour effectuer l'opération E/S
jc nochar; Sauter si Carry Flag est défini (aucun personnage disponible)
mov ch, al; Récupérer le caractère du registre AL
```
Cet exemple peut être modifié pour effectuer d'autres opérations d'E/S, telles que l'écriture d'un caractère à l'écran, la lecture d'un fichier ou l'écriture dans un fichier. Chaque opération d'E/S est identifiée par un code de fonction unique qui est chargé dans le registre AH avant d'émettre l'interruption INT 21h.