Para hacer el trabajo de programación mas sencillo existen varias funciones comunes que se pueden incluir a un programa. Para hacer que el programa implemente funciones definidas en otro archivo debes usar la directiva INCLUDE seguida del nombre del archivo. El compilador automáticamente busca el archivo en la misma carpeta donde esta localizado el archivo de código fuente, y si no lo encuentra ahí, lo buscara en la carpeta Inc.
Para usar cualquiera de las funciones de Emu8086.inc se debe colocar la siguiente linea al inicio del programa en donde se vaya a implementar:
include 'emu8086.inc'Emu8086.inc define los siguientes macros:
- PUTC char: imprime un solo caracter
- GOTOXY col, row: coloca el cursor en las coordenadas solicitadas
- PRINT string: Imprime una cadena
- PRINTN string: Imprime una cadena y tras imprimirla hace un salto de linea.
Sintaxis
;Creador por Cuevas Villafranco ivan enrique name "Suma dos numeros" include "emu8086.inc" org 100h .data suma db 2 dup (?) ;Creamos un arreglo llamado suma de 2 espacios de tipo byte .code Sumas proc ;Se crea un proceso de sumas y se piden los numeros printn " " print "Introduce el primer numero ==>" call scan_num mov suma[0],cl ;guarda el valor en cl,y lo manda al arreglo printn " " print "Introduce el segundo numero ==>" call scan_num ; mov suma[1],cl printn " " xor ax,ax ;se limpia el registro ax add al,suma[0] ;se manda la suma al registro al add al,suma[1] ;se manda para poder imprimir printn " " print "La suma es: " call print_num Sumas endp exit: printn " " printn " " print "Presiona enter para salir..";etiqueta con instruccion para salir del programa mov ah,0 int 16h ret define_print_string ;apartado de definicion de comandos emu8086.inc define_print_num define_print_num_uns define_scan_num end
Como en otras entradas, he dejado varios comentarios en toda la sintaxis para que sea mas facil el entender lo que hace el programa.
Al iniciar le asignamos un nombre al programa, en esta ocasion sera "Suma dos numeros"
Posteriormente, colocamos la libreria utilizada en esta ocasion que sera la emu8086.inc, despues de ello se inicia el programa como regularmente se hace con org 100h
En la seccion de datos, se va a declarar un arreglo llamado suma de dos espacios de tipo byte,despues de ello iniciamos con el codigo de nuestro programa.
Iniciamos creando un procedimiento llamado suma y comenzamos a pedir los numeros.
Mandamos a imprimir mensajes por medio de la instruccion print, posteriormente por medio de una llamada, usamos la funcion scan_num que funciona para la obtencion de datos ingresados por el usuario.
Guardamos el valor en la parte alta del registro cx, y posteriormente lo mandamos al arreglo que habiamos creado en un inicio. (Hacemos lo mismo con el segundo numero a ingresar).
Una vez que tenemos nuestros dos valores en el arreglo, limpiamos el registro ax que utilizaremos para poder realizar la suma. Mandamos lo que hay en la posicion 0 de nuestro arreglo suma a la parte alta de ax para que se sume con lo que hay en el(como se limpio, por ende no debe haber nada), y posteriormente hacemos lo mismo con la posicion 1 de nuestro arreglo.
Finalmente mandamos a imprimir el resultado de nuestra suma con la funcion print_num que nos imprime en pantalla el contenido del registro ax.(se termina el procedimiento).
Iniciamos la funcion exit, que nos servira unicamente para darle fin a nuestro programa.
Utilizando la interrupcion 16h(invoca los servicios estandar del teclado), y el servicio 0(leer caracter de teclado) en el registro ah.(al momento de dar enter, se finaliza el programa)
Finalmente tenemos el apartado de definicion de comandos que se estan utilizando en este programa,para escanear e imprimir numeros.
Corrida del programa.
Apartado del arreglo
No hay comentarios.:
Publicar un comentario