1.8 Desplegado de mensajes en el monitor

En este momento podemos comenzar a escribir las verdaderas instrucciones que le indicarán a la computadora que mensaje y como lo va a desplegar. Sugiero que comenzemos por borrar la pantalla. Esto se puede realizar de muy diversas formas, aquí lo haremos usando el BIOS, el cual es un microchip que se encuentra dentro de toda PC y controla las funciones básicas de entrada y salida (Basic Input Output System). Lo que haremos es decirle al chip "¡Hey! dime en que modo está trabajando la tarjeta de video", cuando obtengamos la respuesta le diremos: "Dile a la tarjeta de video que deje de trabajar en ese modo y que comienze a trabajar en el modo de video que me diste". Una instrucción rara, pues lo que le estamos ordenando es que deje de trabajar en el modo en el que está trabajando !y que comienze a trabajar en ese mismo modo! Así se lo decimos en su propio lenguaje:

principio:

mov ah, 0fh
int 10h

mov ah, 0
int 10h

Lo primero que vemos es una "etiqueta", con ella le damos nombre a un punto dentro del código, si más tarde dentro del programa deseamos repetir esta parte del código solo tenemos que decir "salta a 'principio'" y ya está. El primer grupo de instrucciones después de la etiqueta le dicen al BIOS que obtenga la modalidad en la que está trabajando el video. Aquí vemos por primera vez una interrupción (int 10h). Las interrupciones son funciones ya incorporadas dentro del BIOS y del sistema operativo MS-DOS que realizan tareas comunes como leer del disco, mostrar un mensaje en el monitor, o ¡borrar la pantalla!. Enseguida, mediante una función de la interrupción 10h, le decimos que cambie a la misma modalidad de video.

Bueno, ahora que la pantalla está limpia, podemos mostrar nuestro mensaje en el monitor. Aquí está el código:

lea dx, mensaje_a_mostrar
mov ah, 9h

int 21h

Con la primera instrucción le decimos al procesador "Carga en el registro DX, la dirección de memoria de la variable llamada 'mensaje_a_mostrar'". Enseguida le decimos que la despliegue en pantalla con la función 9h de la interrupción 21h.
Nuestra tarea está terminada, así que digamosle a la computadora que no hay más instrucciones que procesar.

int 20h

Las instrucciones están terminadas, pero todavía tenemos que decirle a la computadora que valor va a tener la variable 'mensaje_a_mostrar'.

mensaje_a_mostrar db "¡Hola Mundo!$",0

El signo de pesos al final de la cadena, es necesario para que el sistema operativo sepa en donde se acaba la cadena (una cadena es un grupo de caracteres) que va a desplegar.
Una vez que terminamos con las instrucciones y valores para la máquina, hay que marcar el archivo para que el compilador sepa que ya terminamos de darle instrucciones a la maquina.

CODE ENDS
end principio


¡Al fin! ¡Llegamos al final! Aquí está el código fuente completo:

CODE SEGMENT
ASSUME CS:CODE, DS:CODE, SS:CODE, ES:CODE
ORG 100h
principio:
mov ah, 0Fh
mov ah, 0
int 10h

lea dx, mensaje_a_mostrar
mov ah, 9h
int 21h

int 20h
mensaje_a_mostrar db "¡Hola Mundo!$",0
CODE ENDS


end principio

Comentarios