1.5 Llamadas a servicio

Imagen relacionada
En una entrada anterior hemos hablado referente a las interrupciones, una interrupción como mencionamos, tiende a interrumpir la ejecución normal de un programa, es una subrutina (como una función o comando) que ejecuta cierta accion segun una especie de selector. Para utilizarlas, tendremos que poner los registros con un determinado valor (el selector) para que se realice el propósito que buscamos. Cada interrupción tiene varias funciones, y podremos elegir cuál ejecutamos según el valor de AH.

21h: Invoca a todos los servicios de llamada a función DOS, generalmente usado en convinacion con otros servicios para la entrada o salida de datos.
20h: Invoca al servicio de terminación de programa del DOS (termina un programa, como el exit).
10h: Despliega opciones de video
16h: Esta interrupción se encarga de controlar el teclado del PC.

Servicios:
Un servicio es el valor (selector del que hablamos anteriormente), este nos proporciona la facilidad para realizar varias tareas, desde una simple inserción de datos, hasta el hecho de modificar propiedades del display.

Veamos algunos servicios comunes para algunas interrupciones vistas en clase:

Interrupcion 21h

Servicio 01: lee un caracter introducido por teclado
    mov ah,01 ;invoco al servicio
    int 21h       ;ejecuto la accion

Servicio 09:  Visualización de una cadena de caracteres

    MOV DX,OFFSET CADENA2     ; Paso la cadena a DX
    MOV AH,9                                 ;LLamo al servicio 09
    INT 21H                                     ;ejecuto la accion
    ;lo anterior imprimira el contenido de la cadena2

Servicio  02: imprime un solo caracter

    mov ah,02
    mov dl,suma
    int 21h

Servicio 4ch: Termina un programa pero antes retorna el control si es que este programa fue invocado por otro programa. Sin tanto rollo es como el return 0 en C al final del main.

    mov ah,4ch
    int 21h


Interrupcion 16h:

Servicio 00: Leera una pulsacion de teclado (dejara el cursor esperando hasta que se presione una tecla, parecido a presione cualquier tecla para continuar)

        MOV AX,0
        INT 16H 


Interrupcion 10h:

Servicio 0Fh: Mediante esta función podemos saber en todo momento, en qué modo de vídeo estamos trabajando.

Servicio 0: o 00h, establece el modo de video, este lo deja en resolucion de 40x25

    mov ah,0Fh ;-consigo el modo actual 
    mov ah,0     ;-lo cambio a la resolucion mensionada
    int 10h        ;-aplico los cambios



Comentarios