Programas con uso de librerias en ensamblador

Referencias externas al módulo

Sirve para poder particionar un programa en varios archivos fuentes o módulos. Son imprescindibles si se hace un programa en alto nivel con procedimientos en assembler. Hay tres: PUBLIC, EXTRN e INCLUDE.
  • PUBLIC nombre[, nombre...]: Estos nombres simbólicos se escriben en el archivo objeto. Durante una sesión con el linker, los símbolos en diferentes módulos pero con los mismos nombres tendrán la misma dirección.
  • EXTRN nombre:tipo [,nombre:tipo...]: Define una variable externa con el nombre y tipo (NEAR, FAR, BYTE, WORD, DWORD o ABS (número constante especificado con la directiva EQU o =)) especificado. El tipo debe ser el mismo que el del ítem indicado con la directiva PUBLIC en otro módulo.
  • INCLUDE nombre_de_archivo: Ensambla las sentencias indicadas en dicho archivo.
Para facilitar la programación, hay algunas funciones comunes que pueden incluirse en un programa. Para hacer que nuestros programas usen funciones definidas en otro archivo, debe usar INCLUDE seguido de un nombre de archivo. El compilador busca automáticamente el archivo en la misma carpeta donde se encuentra el archivo de origen, y si no puede encontrar el archivo allí, busca en la carpeta Inc.
Para usar cualquiera de las funciones en emu8086.inc, debe tener la siguiente línea al comienzo de su archivo fuente: include 'emu8086.inc'

emu8086.inc define las 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.


 Ejemplo(Código):

name 'suma de dos numeros'
include 'emu8086.inc'

org 100h

.data
suma db 2 dup (?)

.code
Sumas proc
    printn " "
    print "Introduce el primer numero ==> "
    
    call scan_num
    mov suma[0], cl
    printn " "        
    print "Introduce el segundo numero ==> "
    call scan_num
    mov suma[1], cl  
    printn " "      
    xor ax, ax
    add al, suma[0]
    add al, suma[1]
    printn " "
    print "La suma es: "
    call print_num
Sumas endp

exit:
   printn " " 
   printn " "
   printn "Presiona enter para salir... "
   mov ah, 0
   int 16h
   ret
   
define_print_string   
define_print_num  
define_print_num_uns
define_scan_num
end
    

Da click para ver el video.
Ensamblador: Suma de dos numeros


Comentarios

Entradas más populares de este blog

Uso de la multiplicacion con ensamblador

Programa de resta en ensamblador

Librerías para graficar en Python