En esta ocación les dejo un ejemplo claro del uso de estructuras en ensamblador.
Las estructuras en ensamblador como en otros lenguajes de programación son una forma para organizar datos y facilitar el manejo de ellos, por ejemplo las pilas y los vectores que ya hemos visto.
En nuestro ejemplo haremos algo similar a una lista, el cual se podrá llamar a un dato dentro de la lista, en este caso cada valor dentro de la lista se guarda en un bloque de memoria pero es difícil saber en donde comienza y donde termina un dato, todos los datos pueden ser de diferente tamaño, a diferencia de un vector que todos sus datos son iguales en cuanto al tipo y longitud.
Las estructuras se declaran de la siguiente manera:
nombreEstructura STRUC
declaración de variables
nombreEstructura ENDS
Se deberá declarar al inicio del código (antes de .model).
Ejemplo: El programa hace llamados directos a 3 variables, nombre, apellidos y pais.
estructura struc
nom db 'nombre ' ;Declaro mis variables y la longitud de las variables, por eso los espacios en
app db 'apepat ' ;blanco para tener más longitud.
pais db 'pais '
estructura ends
imprimir macro estr
mov ax,@data
mov ds,ax
mov es,ax
mov ah,09h
mov dx,estructura.estr ;Este es un llamado directo de una estructura, imprimirá el dato que se pase
int 21h ;como parámetro y lo buscará dentro de la estructura, siempre y cuando sea endm ;una variable válida dentro de la estructura
.model small
.stack 64
.data
public persona ;Se declara un apuntador en mi caso la llamo persona.
persona estructura <"Eric $","Medina $","Mexico $">
;Se cargan los datos a la estructura, si un dato ;es más grande que la longitud de la cadena (Variable ;declarada en la estructura) habrá error de compilación.
.code
inicio:
imprimir nom ;Hacemos el llamado a la macro.
imprimir app
imprimir pais
mov ax,4c00h ;Finaliza el programa
int 21h
end
Resultados:
No hay comentarios:
Publicar un comentario