Explique cómo se puede usar int 21h para entrada y salida en el microprocesador 8086.

La interrupción INT 21h es una interrupción de software utilizada en el sistema operativo MS-DOS para realizar diversas operaciones de entrada/salida (E/S). Cuando un programa emite una interrupción INT 21h, el microprocesador salta a una ubicación de memoria específica donde se encuentra el código del controlador de E/S de MS-DOS. Este código luego lleva a cabo la operación de E/S solicitada.

A continuación se muestra un ejemplo de cómo se puede utilizar la interrupción INT 21h para leer un carácter del teclado:

1. El programa carga el registro AH con el valor 1 para indicar que quiere leer un carácter del teclado.

2. El programa emite una interrupción INT 21h.

3. El microprocesador salta al código del controlador de E/S de MS-DOS.

4. El código del controlador de E/S comprueba si hay un carácter disponible en el búfer del teclado.

5. Si hay un carácter disponible, el código del controlador de E/S lee el carácter del búfer y lo almacena en el registro AL.

6. Si no hay ningún carácter disponible, el código del controlador de E/S establece el indicador de acarreo (CF) en 1 para indicar esta condición.

7. El programa verifica el indicador de acarreo para determinar si un carácter se leyó exitosamente.

8. Si el indicador de acarreo es 0, el programa recupera el carácter del registro AL.

Aquí está el código ensamblador para este ejemplo:

```

mov ah, 1; AH =1 para leer un carácter del teclado

en 21h; Interrumpa 21h para realizar la operación de E/S

jc nochar; Saltar si se establece la bandera de acarreo (no hay ningún personaje disponible)

mov ch, al; Recuperar el personaje del registro AL.

```

Este ejemplo se puede modificar para realizar otras operaciones de E/S, como escribir un carácter en la pantalla, leer un archivo o escribir en un archivo. Cada operación de E/S se identifica mediante un código de función único que se carga en el registro AH antes de emitir la interrupción INT 21h.