Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porLidia Maggio Modificado hace 6 años
1
Introducción a las ciencias de la computación Antonio López Jaimes
Macroprocesadores Introducción a las ciencias de la computación Antonio López Jaimes
2
Macroinstrucciones Existen ciertos grupos de instrucciones que tienen un fin preciso y que se repiten frecuentemente a lo largo del programa ensamblador. Por ejemplo: Podemos dotar al ensamblador de la capacidad de compactar estas instrucciones en una sola que funcione como su abreviatura. IN GUARDA ALFA CARGA CONTADOR SUMA-i 1 GUARDA CONTADOR CARGA ALFA SUMA BETA GUARDA GAMA 20-sep-18
3
Ejemplo CARGA CONTADOR SUMA-i 1 GUARDA CONTADOR Compactamos INCREMENTA Cada vez que el ensamblador encuentre una abreviatura como ésta, la «expandiría» para producir el grupo original de instrucciones. El ensamblador lee ... CARGA CONTADOR SUMA-i 1 GUARDA CONTADOR BR CICLO Expande la abreviatura ... INCREMENTA BR CICLO ... INCREMENTA BR CICLO 20-sep-18
4
Macroprocesamiento Este esquema de compactación y expansión se denomina macroprocesamiento. Un macroprocesador es un programa que trabaja con definiciones globales formadas por un grupos de instrucciones (o símbolos) llamadas macrodefiniciones (o macro). La invocación a una macrodefinición recibe el nombre de macrollamada. 20-sep-18
5
Definición de una macrodefinición
Una macrodefinición tiene la siguiente estructura (i.e., sintaxis): <nombre>: MACRO Instrucción 1 ... Instrucción n FIN_MACRO 20-sep-18
6
Macrodefiniciones de los ejemplos
La macrodefinición de los ejemplos anteriores sería: INCR:MACRO CARGA CONTADOR SUMA-i 1 GUARDA CONTADOR FIN_MACRO ADICIÓN:MACRO CARGA ALFA SUMA BETA GUARDA GAMA FIN_MACRO LEE:MACRO IN GUARDA ALFA FIN_MACRO 20-sep-18
7
Macrollamada y macroexpansión
Para realizar una macrollamada (i.e., invocación de la macro) tan sólo escribimos el nombre de la macro, agregando por ejemplo, el símbolo %. Cuando el macroprocesador encuentre la macrollamada (e.g., %LEE) la sustituirá por el cuerpo de la macro para dar como resultado un programa intermedio que consiste de ensamblador «puro». 20-sep-18
8
Macros con parámetros En este momento las macros están ancladas a las variables escritas en el cuerpo de la macro. Por ejemplo, la macro que lee la variable ALFA solamente tiene esa función, pero podríamos necesitar leer cualquier otra variable. Para flexibilizar una macrodefinción se permite usar variables llamadas parámetros. 20-sep-18
9
Ejemplo: macros con parámetros
La macro para incrementar una variable sería ahora: Para incrementar la variable CONTADOR, la invocaríamos mediante %INCR(CONTADOR), pero también podemos invocar %INCR(POTENCIA), para incrementar la variable POTENCIA. INCR:MACRO(1) CARGA ?1 SUMA-i 1 GUARDA ?1 FIN_MACRO 20-sep-18
10
Ejemplo: macros con parámetros
La macro para sumar dos números sería ahora: ADICIÓN:MACRO(3) CARGA ?1 SUMA ?2 GUARDA ?3 FIN_MACRO Macrollamadas posibles: %ADICIÓN(ALFA, BETA, GAMA) %ADICIÓN(ALFA+2, EPSILON, PI) Y su expansión será: CARGA ALFA SUMA BETA GUARDA GAMA CARGA ALFA+2 SUMA EPSILON GUARDA PI 20-sep-18
11
Parámetros ficticios y reales
Los parámetros utilizados en el cuerpo de la macrodefinición son llamados parámetros ficticios o argumentos. Mientras que los parámetros reales son las expresiones que utilizadas en la invocación de la macro. Argumentos ADICIÓN:MACRO(3) CARGA ?1 SUMA ?2 GUARDA ?3 FIN_MACRO Parámetros reales %ADICIÓN(ALFA, BETA, GAMA) 20-sep-18
12
Macroensamblador Programa fuente Memoria CARGA 20 SUMA 21 GUARDA 22 ALTO 2020 3021 0222 70 Macroprocesador Ensamblador Macroensamblador Un macroensamblador es un ensamblador que maneja macrodefiniciones. 20-sep-18
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.