148.206.53.84148.206.53.84/tesiuami/UAM LOTE 5/UAM21149.pdf · Este procedimiento es conocido...
Transcript of 148.206.53.84148.206.53.84/tesiuami/UAM LOTE 5/UAM21149.pdf · Este procedimiento es conocido...
![Page 1: 148.206.53.84148.206.53.84/tesiuami/UAM LOTE 5/UAM21149.pdf · Este procedimiento es conocido comhnmente como expansibn de MACROS. ... pr0gramacib.n en lenguaje ensamblador, como](https://reader031.fdocumento.com/reader031/viewer/2022021907/5bc16a7609d3f2f2678d80c0/html5/thumbnails/1.jpg)
t
c
Y
c [:
![Page 2: 148.206.53.84148.206.53.84/tesiuami/UAM LOTE 5/UAM21149.pdf · Este procedimiento es conocido comhnmente como expansibn de MACROS. ... pr0gramacib.n en lenguaje ensamblador, como](https://reader031.fdocumento.com/reader031/viewer/2022021907/5bc16a7609d3f2f2678d80c0/html5/thumbnails/2.jpg)
I N D U C E
r- L
r i
c e r
TEMA
I .
2 .
3 .
4 .
5 .
6 .
7 .
8 .
Introduccibn.
Descripcibn del Proyecto.
Archivos.
Instalacion.
Pr incipales Estructuras de Datos.
Procedimientos principales.
B ib l iogra f ia .
Apendice.
2
PAGINA
3
4
6
8
1 0
2 3
3 5
3 6
![Page 3: 148.206.53.84148.206.53.84/tesiuami/UAM LOTE 5/UAM21149.pdf · Este procedimiento es conocido comhnmente como expansibn de MACROS. ... pr0gramacib.n en lenguaje ensamblador, como](https://reader031.fdocumento.com/reader031/viewer/2022021907/5bc16a7609d3f2f2678d80c0/html5/thumbnails/3.jpg)
c r: L
I r L
L
c
Este Macro procesador fue implementado básicamente para s e r u t i l i z ado con f ines didact icos como complemento del curso de Sistemas D ig i t a l e s I impa r t i d o en l a Un i v e r s i dad Autbnoma Metropo l i tana (Unidad Iztapalapa), y d isenado con base en el conjunto de ins t rucc i ones del microprocesador UAHICRO, cuyo estudio const i tuye la base de d icho curso.
E l desarrol lo de este macro procesador forma p a r t e de un proyecto que incluye, ademas, un simulador y un ensamblador para el microprocesador UAHICRO.
Una macroinstruccibn ( HACRO ) es simplemente una ayuda notacional para el programador. Es dec i r , una MACRO representa un grupo de in.Strucciones comhnmente usadas en c i e r t o lenguaje de programacibn.
Un Hacroensamblador (tambien conocido como Hacro- procesador) constituye una herramienta que permite a l programador e s c r i b i r una vers io f in c o r t a de un programa, mediante l a def inicibn de macroinstrucciones que seran manejadas por el Macro ensamblador..
La funcibn del Hacroensamblador es reemplazar por el co r r espond i en t e g rupo de ins t rucc i ones cada vez que se hace re ferenc ia a una macroinstruccibn en el cuerpo de un programa. Este procedimiento es conocido comhnmente como expansibn de MACROS.
Basicamente un macro procesador sust i tuye un grupo de l ineas o caracteres por otro, s in e f e c tuar un ana l i s i s del t ex to involucrado en la sustitucibn, salvo en c i e r t os casos especiales.
El uso mas comhn de un macro procesador es en la pr0gramacib.n en lenguaje ensamblador, como es nuestro caso.
3
![Page 4: 148.206.53.84148.206.53.84/tesiuami/UAM LOTE 5/UAM21149.pdf · Este procedimiento es conocido comhnmente como expansibn de MACROS. ... pr0gramacib.n en lenguaje ensamblador, como](https://reader031.fdocumento.com/reader031/viewer/2022021907/5bc16a7609d3f2f2678d80c0/html5/thumbnails/4.jpg)
L.
L
r L
?-
LI
íc
DESCRIPCBQN DEL PR(>YEETC>
E l p royec to es ta desarro l lado en su t o t a l i d ad en lenguaje Turbo Pascal, que nos permite un manejo senci l lo de pantal las para f a c i l i t a r a l usuario la operacibn del mismo.
E l programa f u e n t e que se desee p r o c e sa r debe proporcionarse a t r a v e s de un a r ch i v o de texto. Asimismo, debe indicarse el nombre del a r ch i v o por el cual se desea obtener la sa l ida , i.e. e l programa f u e n t e s i n macrodef in ic iones . E l proyecto cuenta con la opcibn de elegir un a r ch i v o de de fau l t para cada caso ( entrada y / o sal ida de datos).
La operacibn de este sistema se l leva a cabo con base en un menu p r inc ipa l de opciones. Para e l e g i r cualquiera de e l las es su f i c i en t e con opr im i r la i n i c i a l de la misma, o s i se desea, p o s i c i ona r s e en l a opcibn deseada u t i l i z a n d o l a s t e c l a s correspondi.entes a las f l echas ascendente y descendente, segun sea el caso.
Ayuda Despliega en pantal la un t ex to b r eve que explica a l usuario la forma de u t i l i z a r e l sistema, mencionando una s e r i e de pasos a s e gu i r de t a l forma que se u t i l i z en las opciones del sistema de la mejor manera posible.
Definir Arcñívor Se u t i l i z a pa ra d e f i n i r la fuen te y el des t ino de l o s datos cada vez que se desea procesar un archivo . S i se e l i g i b esta opcibn po r accidente, es pos ib le abandonarla presionando la tecla <ESO.
4
![Page 5: 148.206.53.84148.206.53.84/tesiuami/UAM LOTE 5/UAM21149.pdf · Este procedimiento es conocido comhnmente como expansibn de MACROS. ... pr0gramacib.n en lenguaje ensamblador, como](https://reader031.fdocumento.com/reader031/viewer/2022021907/5bc16a7609d3f2f2678d80c0/html5/thumbnails/5.jpg)
r h c
Yacroenramnblador I n i c i a l a e jecucibn de l Macroensamblador U A N I C R O p r e v i a d e f i n i c i b n de los arch ivos fuente y destino. S i durante e l procesamiento es detectado un e r r o r , la descripcibn del mismo sera desplegada en e l recuadro super io r de l a pantal la. S i esto ocurre, se t i enen las a l t e rna t i vas de i n t e r r u m p i r o c o n t i n u a r con el proceso. Cabe a c l a r a r que so lo se detectan los e r r o r e s correspondientes a la d e f i n i c i b n o invocac ibn de una macroinstruccibn. de t a l forma que los e r r o r e s asociados a l lenguaje mismo no serán f i l t r ados en este proceso.
Consulta Archivo Esta opcibn se u t i l i z a pa ra r e a l i z a r la consulta de cualquier a r ch i v o de texto, especialmente los de entrada y/o sal ida, s in necesidad de f i n a l i z a r la sesibn, y r equ i e r e solo e l nombre del a r ch i v o que se desea consul tar . S i se e l ige esta opcibn por accidente, puede abandonarse presionando la tecla <ESO.
Fin de Sesibn Con e s t a opc ibn se t e rm ina con l a e jecucibn del Nacroensamblador UAMICRO. v e r s i o n 1.1.
5
![Page 6: 148.206.53.84148.206.53.84/tesiuami/UAM LOTE 5/UAM21149.pdf · Este procedimiento es conocido comhnmente como expansibn de MACROS. ... pr0gramacib.n en lenguaje ensamblador, como](https://reader031.fdocumento.com/reader031/viewer/2022021907/5bc16a7609d3f2f2678d80c0/html5/thumbnails/6.jpg)
i
P
L
L
7- L
F
L
c
L
c
6
P
L
c
L
I-
L
F
i
A R C H I V O S
E l Macroensamblador esta formado po r un t o t a l de 7 archivos , a saber:
MACRO.COM A r c h i v o que cont i ene el programa en cbdigo ejecutable. Este a r ch i v o es e l que se invoca a l e j e cu t a r e l Hacroensamblador UAMICRO, tecleando el comando 'MACRO'.
M A C R O . P A L A r c h i v o p r i n c i p a l de l p r o g r a m a f u e n t e . Cont iene l a d e f i n i c i bn de l a s p r i n c i pa l e s e s t r u c t u r a s de datos , e l p roced im ien to p r i n c i p a l y los procedimientos de seleccibn de opciones y de inic ia l izacibn.
MACRO.HLP A r c h i v o q u e c on t i ene e l t e x t o completo de ayuda a l usuario. Se t r a t a de un a r ch i v o de t ex to creado en e l e d i t o r de Turbo Pascal.
MAC-ENTR.TXT Programa de demostracibn en ensamblador que s e e l i g e p o r d e f a u l t e n l a opc ibn de de f in i c ibn de archivos, cuando no se cuenta con un afChiV0 fu en t e especff ico.
MAC-UTI.PAS A r c h i v o q u e c on t i ene l a s u t i l e r l a s q u e u t i l i z a el programa d u r a n t e su ejecucibn, como son los procedimientos: Monitor, Sonido, L impia, T i tulo, Cuadro, Warco, Menu-Opciones y ERROR.
6
![Page 7: 148.206.53.84148.206.53.84/tesiuami/UAM LOTE 5/UAM21149.pdf · Este procedimiento es conocido comhnmente como expansibn de MACROS. ... pr0gramacib.n en lenguaje ensamblador, como](https://reader031.fdocumento.com/reader031/viewer/2022021907/5bc16a7609d3f2f2678d80c0/html5/thumbnails/7.jpg)
L .
5
i
r-
yi
(r
L
MAC -EM X .PA X A r c h i v o de Mac r oensa m bla d o. Con t i e ne .todos los procedimientos necesarios para e jecutar el macroensamblador una vez que se han de f in ido l o s arch i vos de entrada y sal ida de datos. Aqu í se encuentran los p r o c ed i - mientos que podemos cons ide ra r como 10s p r i n c i p a l e s y s on l o s s i g u i e n t e s : Obten Codigo, Sust-Arg, Sust-Etiq, O b t e n A r g , ObtenrLinea, Act-Etiq, Expande, Def E t i q , Define, Busca y Procesa-Linea.
[email protected] A r c h i v o de opciones. Cont iene los procedi - mientos que son llamados d i rectamente del programa p r i n c i p a l a l e l e g i r alguna de las opc i ones del menu p r i n c i p a l . D i chos procedimientos son : Ayuda, D e f i n e A r c h i v o s , Macroensamblador, Consulta y Fin-Sesion.
P a r a l a e jecucion del Macroensamblador, so lo son necesarios los arch i vos MACRO.COM. MACRO.HLP y MACENTR.TXT de t a l forma que s i se desea ins ta l a r el paquete solo se graben estos Ultimos a r ch i vos con el f i n de proteger los a r ch i vos que constituyen el programa fuente.
![Page 8: 148.206.53.84148.206.53.84/tesiuami/UAM LOTE 5/UAM21149.pdf · Este procedimiento es conocido comhnmente como expansibn de MACROS. ... pr0gramacib.n en lenguaje ensamblador, como](https://reader031.fdocumento.com/reader031/viewer/2022021907/5bc16a7609d3f2f2678d80c0/html5/thumbnails/8.jpg)
P
i
c
L
c
L
P
L
c
Este p royec to se desarro l lb en una computadora PC compatible con IBU, de modo que para su instalacibn se r e qu i e r e de un equipo con esas caracter is t icas .
Pa ra e j e c u t a r e l macroensamblador es n e c e sa r i o asegurarse de que se encuentren cargados en el drive por de f au l t los a r ch i vos : MAGRO.COM, MACRO.HLP y UAC-ENTR.TXT.
Una vez que se han cargado d ichos arcn ivos , pa ra e j ecutar e l paquete solo es necesario t ec l ear el comando 'HACRO' y aparece en la panta l la el mentz p r i n c i pa l con l a s opciones descr i tas anteriormente.
Si se desea e j e cu t a r e l macroensamblado sobre un a r ch i v o espec i f i co se deben seguir los s iguientes pasos:
- Ent ra r a la opcibn de Def inic ibn de arch ivos y tec lear e l nombre del a r ch i v o deseado (con su extension), como a r ch i v o de entrada, incluyendo el r e co r r ido s i no esta en el drive y d i r e c t o r i o por de faul t .
- Dentro de la misma opcibn ind i ca r el a r ch i v o de sal ida deseado tecleando su nombre, extensibn y r e co r r ido ( s i es necesar io ) , s i no se desea e l a r ch i vo p o r de fau l t NACSALI.TXT como a rch i vo de sal ida.
- S i se desea abandonar la opcibn en cualquiera de las dos preguntas debe opr imirse la tecla <ESC>.
- Una vez de f in idos los a rch ivos fuente y destino, e l e g i r l a opc ibn de Macroensamblador. S i d u r a n t e e l pr'ocesamiento es detectado un e r r o r , debe presionarse la tec la <ESO para abandonar o <ENTER> s i se desea con t inuar el proceso. Las correcc iones de e r r o r e s encon t rados a t i empo de macroensamblado deben efectuarse con un ed i t o r compatible con e l ut i l i zado.
8
![Page 9: 148.206.53.84148.206.53.84/tesiuami/UAM LOTE 5/UAM21149.pdf · Este procedimiento es conocido comhnmente como expansibn de MACROS. ... pr0gramacib.n en lenguaje ensamblador, como](https://reader031.fdocumento.com/reader031/viewer/2022021907/5bc16a7609d3f2f2678d80c0/html5/thumbnails/9.jpg)
- La consulta del a r ch i v o de sal ida puede e fectuarse con 8 1 un e d i t o r de textos , con comandos de HS-DOS, o s in
abandonar a l paquete con la opcibn de Consulta Archivo. S i se e l ige esto l i lt imo debe proporcionarse e l nombre
r- del a r ch i v o que se desea consultar de la misma manera L que se ind ico en la opcibn de Def inic ibn de Archivos.
T. L.
l- L
b
I L
T I L
c
L
L
- E l a r c h i v o de en t rada debe s e r de tex to y puede ser ed i tado con cualquier ed i t o r que nos permita esto.
- Se p e r m i t e e d i t a r e l a r c h i v o con s a n g r i a p a r a i d e n t i f i c a r mas faci lmente las e t ique tas y HACROS.
- Los comentar ios d en t r o del a r c h i v o se indican con un sj-gno de ';' como pr imer palabra de la linea. No seran reproducidos en el a r ch i vo de salida.
- No se acep tan macrodef i n i c i o n e s r e c u r s i v a s . S i n embargo, se puede r e f e r enc i a r a una MACRO de f in ida anteriormente, dent ro del cuerpo de o t r a HACRO.
- Cada vez que se desee macroensamblar un a r ch i v o dado, es necesario elegir la opcibn de de f in i c ibn de arch ivos ya que a l t e rminar e l procesamiento de un arch ivo , el programa c i e r r a todos los a rch ivos ocupados, incluyendo los a r c h i v o s f u e n t e y dest ino , pa ra p r o t e g e r l a informacibn.
9
![Page 10: 148.206.53.84148.206.53.84/tesiuami/UAM LOTE 5/UAM21149.pdf · Este procedimiento es conocido comhnmente como expansibn de MACROS. ... pr0gramacib.n en lenguaje ensamblador, como](https://reader031.fdocumento.com/reader031/viewer/2022021907/5bc16a7609d3f2f2678d80c0/html5/thumbnails/10.jpg)
PRINCIPALES ESTRWCTWRAS DE DATC)S
I- L
!- i F
L
c
r
c
L
b
i
c
L
Para el desarrol lo de este proyecto se implement6 un ambiente de va r i ab l e s d i v i d i d o práct icamente en dos grupos pr inc ipa les que son :
Var iab les de Este g rupo c on t i ene t odas aque l l a s u t i l e r l a s var iab les que son ut i l i zadas imicamente
para manejo de pantallas. Es dec i r , las q u e se u t i l i z a n p a r a mos t r a r el funcionamiento del sistema de una manera senc i l la y f a c i l de entender pa ra e l usuario del mismo.
Las v a r i ab l e s que se incluyen en este g rupo son : n u m o p c , f ondo , t e x t o , fon-inv, tex-inv, t e x e r r y opcion.
Variables de Engloban a todas las var iab les que son procesamiento u t i l i zadas a tiempo de ejecucibn durante
el macroensamblado.
Pa ra algunas de las var iab les de este grupo se d e f i n i e r o n t i p o s de da t o s e s p e c i a l e s q u e s e d e s c r i b i r a n poster iormente.
Las p r inc ipa l e s va r i ab l e s involucradas a q u i son : l inea , codigo, expansion, abandona, a r c h e n t , a r c h s a l , H A C R O S , ULTIMO, ma c a c t u a 1. r e n , c o l , U A C C O N T EN, MAC P A R A HI MAC - ETIQ ’ULTET IQ , apcon ten , s i g l i b r e .
MAC A R G U M I
A 1 nuacibn se muestra la descr ipc ibn de cada v a r i a b l e inc luyendo su t i po , los valores que puede tomar, los procedimientos que la ut i l i zan, etcetera.
I O
![Page 11: 148.206.53.84148.206.53.84/tesiuami/UAM LOTE 5/UAM21149.pdf · Este procedimiento es conocido comhnmente como expansibn de MACROS. ... pr0gramacib.n en lenguaje ensamblador, como](https://reader031.fdocumento.com/reader031/viewer/2022021907/5bc16a7609d3f2f2678d80c0/html5/thumbnails/11.jpg)
TlPOS ESPECIALES
T-
L
Se de f in ib previamente un t i p o CADENA = STRING[BO].
SI? de f in ib el t i p o APUN como un r e g i s t r o que contiene la s i gu iente informacibn :
nombre - nombre q u e i d e n t i f i c a a l a macro instruccibn; de t i p o CADENA.
i n i , f i n - apuntadores a las localidades donde i n i c i a y t e rmina el cuerpo de l a RACRO en el a r r eg l o RACCONTEN; de t i p o entero.
n u m a r g - aqu í se guarda el nUmero de argumentos que cont i ene la RACRO; t i p o entero.
num - e t i - almacena e l nUmero de e t i que t a s que se detectaron dent ro del cuerpo de la macro de f in i c ibn ; t i p o entero .
s i g m a c - apuntador a l r e g i s t r o que cont i ene l a i n f o r m a c i b n d e l a s i g u i e n t e macro def in i c ibn encontrada; t i p o APUN.
Por U l t i m o tenemos e l t i p o TIP-ET como un r e g i s t r o que contiene la s iguiente informacíbn :
n o m e t i - nombre que i d en t i f i c a a la e t iqueta ; es de t i p o CADENA.
s i g - e t i - campo que ind i ca el consecut ivo a s e gu i r pa ra e v i t a r l a dupl icac ibn de e t iquetas ; de t i p o CADENA.
usada - i n d i c a s i l a e t i q u e t a a c t u a l h a s i d o re ferenc iada, con el f i n de actual i zar la s i ese es e l caso; t i p o booleano.
l i g e t i - apuntador a l r e g i s t r o q u e c on t i ene l a i n f o rmac i bn de l a s i g u i e n t e e t i q u e t a encontrada; t i p o T I P E T .
h
L
11
![Page 12: 148.206.53.84148.206.53.84/tesiuami/UAM LOTE 5/UAM21149.pdf · Este procedimiento es conocido comhnmente como expansibn de MACROS. ... pr0gramacib.n en lenguaje ensamblador, como](https://reader031.fdocumento.com/reader031/viewer/2022021907/5bc16a7609d3f2f2678d80c0/html5/thumbnails/12.jpg)
I í n e a
I s
e-- I
i-
r-
L
s
i
c
TIPO : CADENA.
POSIBLES VALORES :
Si se está rea l i zando una Macro expansibn, la va r i ab l e l i n e a toma su v a l o r del e spac i o de memoria cor respond iente a l a macrodef in ic iún asoc iada; es decir, del contenido de MAC-CONTEN para la MACRO que se este invocando.
En o t r o caso el contenido de l inea corresponde a la l inea actual del a r ch i v o de entrada.
PROCEDIHIEHTOS QUE LA UTILIZAH :
O b t e n -Codigo. O b t e n --A r g , Obten-Linea, Expande , De f i n e , Procesa-Linea y Hacroensamblador.
S u s t A r g, Sus t E t iq ,
12
![Page 13: 148.206.53.84148.206.53.84/tesiuami/UAM LOTE 5/UAM21149.pdf · Este procedimiento es conocido comhnmente como expansibn de MACROS. ... pr0gramacib.n en lenguaje ensamblador, como](https://reader031.fdocumento.com/reader031/viewer/2022021907/5bc16a7609d3f2f2678d80c0/html5/thumbnails/13.jpg)
P-
i
i F , L
r- 1
L
c
L
L
L
c
....
b
L
F
TIPO : CADENA.
POSIBLES VALORES :
codigo toma su v a l o r de la l i nea que se encuentra actualmente en procesamiento. Nos indica la pr imera palabra encontrada, a p a r t i r de la columna actual, que sf? encuentre entre dos espacios en blanco. Se u t i l i z a para de tec tar las palabras claves como 'MACRO', WEND', 'END', y los argumentos y e t i q u e t a s de cada macrodef in ic ibn.
PROCEDIMIEHTOS QUE LA UTILIZAH :
Obten C o d i g o, Sus t -E t i q, Def-Etiq, Define, Busca y Procesa-Linea.
Sus t A r g , Obten -Li nea,
i
F 13
![Page 14: 148.206.53.84148.206.53.84/tesiuami/UAM LOTE 5/UAM21149.pdf · Este procedimiento es conocido comhnmente como expansibn de MACROS. ... pr0gramacib.n en lenguaje ensamblador, como](https://reader031.fdocumento.com/reader031/viewer/2022021907/5bc16a7609d3f2f2678d80c0/html5/thumbnails/14.jpg)
expansion
TIPO : BOOLEANO.
POSIBLES VALORES :
Esta v a r i ab l e puede tomar solo dos valores : CIERTO o FALSO. Solo toma el valor CIERTO cuando se ha invocado a una HACRO existente durante e l proceso y el macro ensamblador se encuentra expandiendo dicha AACRO. Una vez que se ha terminado de e x p a n d i r l a HACRO, l a va r i ab l e expansion vuelve a tomar el va lo r FALSO.
PROCEDIMIENTOS QUE LA UTILIZAN :
S i r s t A r g , Obten-Linea, Expande y Define
14
![Page 15: 148.206.53.84148.206.53.84/tesiuami/UAM LOTE 5/UAM21149.pdf · Este procedimiento es conocido comhnmente como expansibn de MACROS. ... pr0gramacib.n en lenguaje ensamblador, como](https://reader031.fdocumento.com/reader031/viewer/2022021907/5bc16a7609d3f2f2678d80c0/html5/thumbnails/15.jpg)
e..
c
abandona
L
L
b.'
L
F
i - L
r
L
s-
L
h
TIPO : BOOLEANO.
POSIBLES VALORES :
Esta v a r i ab l e puede tomar solo dos valores : CIERTO o FALSO. Su va l o r normal es FALSO, y toma el va l o r de CIERTO cuando se ha detectado un e r r o r , ya sea a tiempo de ejecucibn del macroensamblador ( en cuyo caso e l usuario decide si se abandona o no e l proceso 1, o s i durante la de f in ic ibn de a rch i vos se presentb alguna anomalia.
PROCEDIUIENTOS QUE LA UTILIZAN :
ERROR, Act-Etiq, Expande, Def ine-Archivos, Consulta y Macroensamblador.
15
![Page 16: 148.206.53.84148.206.53.84/tesiuami/UAM LOTE 5/UAM21149.pdf · Este procedimiento es conocido comhnmente como expansibn de MACROS. ... pr0gramacib.n en lenguaje ensamblador, como](https://reader031.fdocumento.com/reader031/viewer/2022021907/5bc16a7609d3f2f2678d80c0/html5/thumbnails/16.jpg)
a- -
c.
L
L
c
L
archent y arch-sal
TIPO : TEXT.
POSIBLES VALORES :
Estas v a r i a b l e s toman su va lo r cuando se e l ige l a opcibn de def inicibn de archivos en el menil pr inc ipa l y se proporcionan correctamente los archivos de entrada y sal ida. No su f ren modificacibn durante el procesamiento y se ut i l i zan pa ra direccionar la entrada y sal ida de datos.
PROCEDIMIERTOS QUE LA UTILIZAN :
Obten-Linea, Def ine,Def ineArchivos y Hacroensamblador.
16
![Page 17: 148.206.53.84148.206.53.84/tesiuami/UAM LOTE 5/UAM21149.pdf · Este procedimiento es conocido comhnmente como expansibn de MACROS. ... pr0gramacib.n en lenguaje ensamblador, como](https://reader031.fdocumento.com/reader031/viewer/2022021907/5bc16a7609d3f2f2678d80c0/html5/thumbnails/17.jpg)
,”...
c
I”
I.
c
L
c
L
c
i
MACROS, ULTIMO y mac-actual
TIPO : APUN.
POSIBLES VALORES :
Se? t r a t a de los apuntadores a la l i s t a l i gada que contiene la inforrnacibn descr ip t i va de cada MACRO. La va r i ab l e MACROS apunta a l i n i c i o de la l i s ta ; ULTIMO apunta a l Ult imo elemento de la l i s ta , y macac tua l apunta a l nodo correspondiente a la MACRO que se esta expandiendo.
PROCEDIMIEATOS QUE LA UTILIZAN :
Obten-Linea, Expande, Def ine y Busca.
F
L
F
L
c 17
![Page 18: 148.206.53.84148.206.53.84/tesiuami/UAM LOTE 5/UAM21149.pdf · Este procedimiento es conocido comhnmente como expansibn de MACROS. ... pr0gramacib.n en lenguaje ensamblador, como](https://reader031.fdocumento.com/reader031/viewer/2022021907/5bc16a7609d3f2f2678d80c0/html5/thumbnails/18.jpg)
R"
L.
r- L
---
TIPO : ARREGLO DE CADENAS.
POSIBLES VALORES ;
Esta a r r e g l o esta d e s t i n a d o a c on t ene r t oda l a inforrnacibn correspondiente a las rnacrodef iniciones. Es d e c i r , e l cuerpo de ins t rucc i ones de cada MACRO se guarda en este a r r eg l o l inea po r l inea a medida que se van leyendo d e l a r c h i v o fuen te . Pa ra e x t r a e r l a in formacibn de MACCONTER, se debe r e c u r r i r a los apuntadores correspondientes a l MACRO en la l i s t a l igada mencionada anteriormente.
PROCEDIMIENTOS QUE LA UTILIZAN :
Obten-Linea y Define.
L
c 18
![Page 19: 148.206.53.84148.206.53.84/tesiuami/UAM LOTE 5/UAM21149.pdf · Este procedimiento es conocido comhnmente como expansibn de MACROS. ... pr0gramacib.n en lenguaje ensamblador, como](https://reader031.fdocumento.com/reader031/viewer/2022021907/5bc16a7609d3f2f2678d80c0/html5/thumbnails/19.jpg)
ñ”
L
F
L
TIPO : ARREGLO DE CADENAS.
POSIBLES VALORES :
Estos a r r e g l o s se u t i l i z a n t a n t o d u r a n t e l a macrodefinicibn como en la macroexpansibn. Su l imite es de 10 localidades ya que se asumen MACROS con un numero de argumentos menor o i gua l a 10. HAC-ARGUH es u t i l i z ado durante la de f in ic ibn de MACROS y guarda los argumentos para sus t i tu i r l os por notacibn posicional en el arreg lo MACCONTEN. y HACPARAH se usa en expansibn de MACROS almacenando los parametros con que se esta invocando a l a MACRO, pa ra inc lu i r l o s du ran t e l a expansibn.
PROCEDIHIEHTOS QUE LA UTILIZAN :
Obten-Arg y S u s t A r g .
L
F
L - 19
![Page 20: 148.206.53.84148.206.53.84/tesiuami/UAM LOTE 5/UAM21149.pdf · Este procedimiento es conocido comhnmente como expansibn de MACROS. ... pr0gramacib.n en lenguaje ensamblador, como](https://reader031.fdocumento.com/reader031/viewer/2022021907/5bc16a7609d3f2f2678d80c0/html5/thumbnails/20.jpg)
r- b-
!- u-
c c
c c
r- L
f; L
r-
TIPO : T I P E T .
POSIBLES VALORES :
Se trata de los apuntadores a la l i s t a ligada que contiene la i n f orrnacibn asociada a cada etiqueta. La v a r i a b l e HAC-ETIQ apunta al i n i c i o de la l i s ta , y ULT-ETIQ apunta a l ultimo elemento de la l ista .
PROCEDIHIENTOS QUE LA UTILIZAN :
Siist-Etiq, A c t E t i q y D e f E t i q .
20
![Page 21: 148.206.53.84148.206.53.84/tesiuami/UAM LOTE 5/UAM21149.pdf · Este procedimiento es conocido comhnmente como expansibn de MACROS. ... pr0gramacib.n en lenguaje ensamblador, como](https://reader031.fdocumento.com/reader031/viewer/2022021907/5bc16a7609d3f2f2678d80c0/html5/thumbnails/21.jpg)
ap conten y síg-libre -
TIPO : ENTERO.
POSIBLES VALORES :
Apuntadores al arreglo MACCONTEN. Estan limitados por el tamaiio del arreglo. a p c o n t e n se ut i l i za durante la expansibn de MACROS y apunta a la l inea actual de la MACRO que se esta expandiendo; s i g l i b r e apunta siempre a la siguiente localidad vacfa dentro del arreglo.
PROCEDIUIENTOS QUE LA UTILIZAB :
Obten-Linea, Expande y Define.
c
21
![Page 22: 148.206.53.84148.206.53.84/tesiuami/UAM LOTE 5/UAM21149.pdf · Este procedimiento es conocido comhnmente como expansibn de MACROS. ... pr0gramacib.n en lenguaje ensamblador, como](https://reader031.fdocumento.com/reader031/viewer/2022021907/5bc16a7609d3f2f2678d80c0/html5/thumbnails/22.jpg)
col y rem
TIPO : ENTERO.
POSIBLES VALORES :
Var iab les que nos indican siempre la l inea actual y la posicibn que se t iene dent ro de la mismo durante el procesamiento del a r ch i v o fuente . ren nos ind ica la l inea del a r ch i v o de entrada que se esta procesando y col la posicibn dent ro de la l inea misma.
PROCEDIHIERTOS QUE LA UTILIZAN :
0.b t e n C o d i g o, Obten - Linea y Procesa-Linea.
Sus t A r g , Sus t E t i q, Obt en --A r g ,
L
F
L
r L
r L
22
![Page 23: 148.206.53.84148.206.53.84/tesiuami/UAM LOTE 5/UAM21149.pdf · Este procedimiento es conocido comhnmente como expansibn de MACROS. ... pr0gramacib.n en lenguaje ensamblador, como](https://reader031.fdocumento.com/reader031/viewer/2022021907/5bc16a7609d3f2f2678d80c0/html5/thumbnails/23.jpg)
c c L
L r iL n- e
PROCEDIMIENTOS PRINCIPALES
Los procedimientos que u t i l i z a e l proyecto pueden ser c las i f i cados en dos grupos basicamente :
Procedimientos Aqu i se inc luyen todos l os que se de u t i l e r i a . u t i l i z a n p a r a la p r esen tac ibn del
s i s t ema y l o s q u e nos p e r m i t e n u t i l i z a r l o , como d e f i n i r o c onsu l t a r a rch ivos , por ejemplo.
Procedimientos de procesamiento.
Son los procedimientos pr inc ipa les que nos permiten e f e c tuar el Procesamiento de un a r c h i v o , de t ec tando pos ib l e s e r r o r e s en el mismo.
Los procedimientos p r inc ipa l e s son : Obten C o d i g o, Sus t E t i q , Obten A r g, A c t E t i 9, Expande. D e f E t i q , De f ine , Busca y Procesa-Linea.
Sus t A r g , O b t en-Li nea,
A cont inuac ibn se muestra la descr ipc ibn de cada procedimiento, ind icando las var iab les mas re levantes que son actual izadas en el mismo.
23
![Page 24: 148.206.53.84148.206.53.84/tesiuami/UAM LOTE 5/UAM21149.pdf · Este procedimiento es conocido comhnmente como expansibn de MACROS. ... pr0gramacib.n en lenguaje ensamblador, como](https://reader031.fdocumento.com/reader031/viewer/2022021907/5bc16a7609d3f2f2678d80c0/html5/thumbnails/24.jpg)
ObtenCodigo
Obtiene el cbdig0 ope ra t i vo actual para poder tomar una d e c i s i o n s o b r e e l f l u j o de l a i n f o rmac i bn d u r a n t e el procesamiento del a r c h i v o de entrada.
Encuentra el pr imer conjunto de caracteres, a p a r t i r de la columna actual, que se encuentre del imitado por dos espacios en blanco, dos comas o cu l qu i e r combinacib doble de estos, trabajando siempre sobre la que se considera como l inea actual.
Es invocado practicamente por todos los procedimientos y se u t i l i z a pr inc ipa lmente pa ra d e t e c t a r palabras clave del macroensamblador (como 'MACRO'. 'MEND', etc.), a s i como pa ra encontrar los argumentos o parametros de las macroinstrucc.iones durante la def inic ibn o bien en una macro llamada.
Actualiza la v a r i ab l e global col, que corresponde a la coordenada de columna dentro de la l inea actual.
?- 24
![Page 25: 148.206.53.84148.206.53.84/tesiuami/UAM LOTE 5/UAM21149.pdf · Este procedimiento es conocido comhnmente como expansibn de MACROS. ... pr0gramacib.n en lenguaje ensamblador, como](https://reader031.fdocumento.com/reader031/viewer/2022021907/5bc16a7609d3f2f2678d80c0/html5/thumbnails/25.jpg)
I L
c
[I
c
Se u t i l i z a t an to en la de f in ic ibn de macroinstrucciones como durante la expansibn de MACROS.
En l a d e f i n i c i bn se usa e s t e p r o c ed im i en t o p a r a s u s t i t u i r d e n t r o del cuerpo de l MACRO l a ocur r enc ia de los argumentos del mismo por notacibn posicional para poder e f e c tua r e l paso de parametros posteriormente.
Durante la expansibn de MACROS se toma la l inea actual y se busca en el la la ocurrencia de algiin parametro de la MACRO que se encuentra en expansibn, reemplazando l a no tac ibn posicional con los parametros que son enviados.
Actualiza la v a r i ab l e l inea ya que en cualquier caso e fect i ia sus.titucibn de palabras den t ro de ella. Tambien t r aba j a con los vectores MAC-ARGUM y MAC-PARAM, para guardar en los mismos los parametros de la macro ins t rucc ibn d u r a n t e l a def in ic ibn o la expansibn, respectivamente.
25
![Page 26: 148.206.53.84148.206.53.84/tesiuami/UAM LOTE 5/UAM21149.pdf · Este procedimiento es conocido comhnmente como expansibn de MACROS. ... pr0gramacib.n en lenguaje ensamblador, como](https://reader031.fdocumento.com/reader031/viewer/2022021907/5bc16a7609d3f2f2678d80c0/html5/thumbnails/26.jpg)
y- ".-
Suit-Etip
i h
L
T" L
c P
L
F
L
Se u t i l i z a durante la expansibn de MACROS. Se toma la l inea actual. y se busca en el la la ocurrencia de alglin parámetro de l a MACRO que se encuentra en expansibn, reemplazando la notacibn posicional con los parámetros que son enviados.
Actualiza la v a r i ab l e l inea ya que en cualquier caso efectlia sust i tucibn de palabras dentro de ella. Tambien t r aba j a con los apuntadores a la l i s t a de e t iquetas MAC-ETIQ y ULTET IQ , para l oca l i zar en dicha l i s t a s i en la l inea actual ex i s t e alguna et iqueta. S i este es el caso, se efecti ia la sustitucibn y una vez que se ha concluido la expansibn, se actual iza el consecutivo de cada et iqueta contenida dentro de la HACRO expandida.
P
L
m- 26
![Page 27: 148.206.53.84148.206.53.84/tesiuami/UAM LOTE 5/UAM21149.pdf · Este procedimiento es conocido comhnmente como expansibn de MACROS. ... pr0gramacib.n en lenguaje ensamblador, como](https://reader031.fdocumento.com/reader031/viewer/2022021907/5bc16a7609d3f2f2678d80c0/html5/thumbnails/27.jpg)
L
c
L
i
Obten-Arg
Se u t i l i z a t an to en la de f in i c ibn de macroinstrucciones como durante la expansibn de MACROS.
En l a de f in ic ibn se usa este procedimiento para obtener los argumentos de l a KACRO actual para despues e f e c tuar una sus t i tuc ibn de los mismos po r notacibn pos ic ional den t ro del cuerpo del MACRO.
Durante la expansibn de MACROS se toma la l inea actual, que corresponde a una macrollamada, para obtener los parametros que se l e están pasando y guardarlos en e l a r r eg l o HACPARAM para despues e f e c tuar la sust i tucibn de parametros.
Actual iza las var iab les col y HAC-PARAH, para guardar en los esta i i lt ima los parametros de la macroinstruccibn durante la expansibn de la MACRO.
i ! i
F-
..
27
![Page 28: 148.206.53.84148.206.53.84/tesiuami/UAM LOTE 5/UAM21149.pdf · Este procedimiento es conocido comhnmente como expansibn de MACROS. ... pr0gramacib.n en lenguaje ensamblador, como](https://reader031.fdocumento.com/reader031/viewer/2022021907/5bc16a7609d3f2f2678d80c0/html5/thumbnails/28.jpg)
F
L
!- L
F
L
w-
L
P
L
Obten-Linea
Obtiene la s iguiente l inea de t raba j o dependiendo del va lo r de la va r i ab l e expansion.
Si se esta efectuando una macro expansibn, la l inea que se tomará como la s i gu i en t e prov iene del a r reg lo HAC-CONTEI, especif icamente de la casi l la apuntada p o r apcon ten . En este caso, se t r a t a de una l inea que corresponde a l cuerpo de la macroinstruccibn que se esta expandiendo. La va r i ab l e a p c o n t e n se incrementa despues de l e e r l a l inea.
S i no se t r a t a de una expansibn, se lee la l i nea s iguiente del a r ch i v o de entrada y se incrementa la va r i ab l e r e n que contiene el numero de renglbn del a r ch i v o de entrada que se esta procesando.
Este procedimiento dec ide tambien s i es necesar io e f e c tuar alguna sust i tucibn de argumentos o e t ique tas s i se esta efectuando una expansibn y la HACRO actual t i ene levantadas las banderas co r r espond i en t es , en cuyo caso l l amara a l os procedimientos S u s t A r g y Sust-Etiq.
actual. Tambien in i c i a l i z a la va r i ab l e col en uno para la :linea
L
P
L
c
- m-
28
![Page 29: 148.206.53.84148.206.53.84/tesiuami/UAM LOTE 5/UAM21149.pdf · Este procedimiento es conocido comhnmente como expansibn de MACROS. ... pr0gramacib.n en lenguaje ensamblador, como](https://reader031.fdocumento.com/reader031/viewer/2022021907/5bc16a7609d3f2f2678d80c0/html5/thumbnails/29.jpg)
Act-Etíq
L
F
L
b
L
n."
L
Es uti l izado iinicamente po r e l procedimiento Expande a l f i n a l i z a r la expansibn de una MACRO. S i la macroinstruccibn que f u e expandi.da incluia et iquetas, se invoca e este procedimiento para actualxzar e l consecutivo de las e t iquetas que fue ron usadas durante la expansibn, para e v i t a r que se dupl ique una e t i que ta a l expander de nuevo una macroinstruccibn que ya se uti l izb.
Revisa la l i s t a de et iquetas apuntada por las va r i ab l e s MACETIQ y ULTETIQ, y actual iza unicamente aquellas que tengan levantada la. bandera de usada.
29
![Page 30: 148.206.53.84148.206.53.84/tesiuami/UAM LOTE 5/UAM21149.pdf · Este procedimiento es conocido comhnmente como expansibn de MACROS. ... pr0gramacib.n en lenguaje ensamblador, como](https://reader031.fdocumento.com/reader031/viewer/2022021907/5bc16a7609d3f2f2678d80c0/html5/thumbnails/30.jpg)
Expande
m-
i
c
L
P-
L
6 L
T L
Procedimiento u t i l i zado para la expansibn de MACROS. La manera en que esta implementado este procedimiento, aunado a l de ProcesaL inea , permite que dent ro del cuerpo de una MACRO sea pos ib le l lamar a o t r a macroinstruccibn de f in ida anteriormente, r ep i t i endo coste proceso cuantas veces sea necesario.
Enciende la bandera de expans ion a l i n i c i a r i a macroexpansíbn y la apaga a l terminar. Tambien detecta e r r o r e s en e l paso de parametros.
Ll.ama a los procedimientos O b t e n A r g , Obten-Linea, Procesa-Linea y A c t E t i q .
F" L
L
F- 30
![Page 31: 148.206.53.84148.206.53.84/tesiuami/UAM LOTE 5/UAM21149.pdf · Este procedimiento es conocido comhnmente como expansibn de MACROS. ... pr0gramacib.n en lenguaje ensamblador, como](https://reader031.fdocumento.com/reader031/viewer/2022021907/5bc16a7609d3f2f2678d80c0/html5/thumbnails/31.jpg)
L
D e l -Etiq
c
L
Se ut i l i za durante la de f in i c ibn de MACROS cada vez que se encuentra alguna e t i que ta dentro de l cuerpo de ].a F~ACRO. ES llamado en cada l i n ea de l a r c h i v o de entrada que no sea un comentario e i d e n t i f i c a una e t i que ta dentro de la l inea s i el tiltimo ca rac t e r del pr imer cbdigo ope ra t i vo de la misma es el s igno de ':'.
Si esto ocur r e anade a la l i s t a de e t iquetas la actual, ver i f icando previamente que no se haya d e f i n i do con anter ior idad.
Ac tua l i za los apuntadores a l a l i s t a de e t i que t a s MACETIQ y ULTETIQ.
31
![Page 32: 148.206.53.84148.206.53.84/tesiuami/UAM LOTE 5/UAM21149.pdf · Este procedimiento es conocido comhnmente como expansibn de MACROS. ... pr0gramacib.n en lenguaje ensamblador, como](https://reader031.fdocumento.com/reader031/viewer/2022021907/5bc16a7609d3f2f2678d80c0/html5/thumbnails/32.jpg)
Define
c
L
?- yi
F
L
E s t e procedimiento es llamado po r el de Procesa-Linea cuando se ha detectado una nueva macrodefinicibn.
S u ob j e t i vo es guardar la informacibn de esa MACRO en las es t ruc turas de datos correspondientes. Asl, guarda e l cuerpo de instrucciones de la MACRO en el a r r eg l o MACCONTEN y en la l i s ta apuntada por las variables MACROS y ULTIHO guarda e l nombre del MACRO, su numero de argumentos, e l de e t i que t a s y los apuntadores a l i n i c i o y f i n de las localidades de HAC-COKTEH donde esta contenido el cuerpo del MACRO.
Durante la def inic ibn, s i la MACRO t i ene argumentos, va reemplazando estos por notacibn posicional (llamando a S u s t A r g ) a medida que se lee el cuerpo de instrucciones.
Llama a los procedimientos O b t e n A r g . O b t e n L i n e a , ObtenCodigu. D e f E t i q y S u s t p r g .
L
r
L
c 32
![Page 33: 148.206.53.84148.206.53.84/tesiuami/UAM LOTE 5/UAM21149.pdf · Este procedimiento es conocido comhnmente como expansibn de MACROS. ... pr0gramacib.n en lenguaje ensamblador, como](https://reader031.fdocumento.com/reader031/viewer/2022021907/5bc16a7609d3f2f2678d80c0/html5/thumbnails/33.jpg)
L
I- L
F
c
L
c
L
r
L
Busca
Este procedimiento es llamado solo p o r Procesa-Linea y se u t i l i z a linicamente p a r a ve r i f i c a r s i una MACRO (sea pa ra definicibn o expansibn) ya h a sido def in ida . Regresa el resultado de la blisqueda en una var iab le Booleana y s i f u e exitosa, regresa además el apuntador macactua l a la MACRO deseada.
33
![Page 34: 148.206.53.84148.206.53.84/tesiuami/UAM LOTE 5/UAM21149.pdf · Este procedimiento es conocido comhnmente como expansibn de MACROS. ... pr0gramacib.n en lenguaje ensamblador, como](https://reader031.fdocumento.com/reader031/viewer/2022021907/5bc16a7609d3f2f2678d80c0/html5/thumbnails/34.jpg)
F"
Y.
F'
1. F-
L.
c
L
P
i
c
L_
7-
i.
r- iL
F"
L
m-
L
Procesa-Linea
Este procedimiento es basico para e l macroensamblador ya que en él se toman las dec is iones sobre el f l u j o de la i n f ormacibn..
Es llamado cada vez que se ha obtenido una nueva l inea, ya sea del a:rchivo de entrada o del a r reg lo MAC-CONTEN.
Dependiendo del primer cbdigo opera t i vo de la l inea, se tomara una de las s iguientes acciones:
- s i e l cbdigo es 'MACRO' se t r a t a de una d e f i n i c i bn y debe v e r i f i c a r s e que la MACRO tenga un nombre. S i e l nombre ex i s te , entonces se debe v e r i f i c a r que no se haya def inido previamente una MACRO con ese nombre. S i esto no ocurre entonces l lamar a Define.
- s i e l cbdigo no es 'MACRO' puede t r a t a r s e de una macro llamada en cuyo caso debe e x i s t i r una MACRO def i .nida prev iamente con un nombre que correponde a i cbdigo operat ivo . Si esto no ocurre, entonces se asume que no es: una macrollamada Sino una instruccibn senci l la que debe ser escr i ta t a l cual es en el a r ch i v o de salida.
Llama a los pprocedimientos ObtenCodigo, Busca, Def ine y Expande, y actual i za las var iab les l inea y col.
p- i
P
1
34
![Page 35: 148.206.53.84148.206.53.84/tesiuami/UAM LOTE 5/UAM21149.pdf · Este procedimiento es conocido comhnmente como expansibn de MACROS. ... pr0gramacib.n en lenguaje ensamblador, como](https://reader031.fdocumento.com/reader031/viewer/2022021907/5bc16a7609d3f2f2678d80c0/html5/thumbnails/35.jpg)
. 1 .
T u r b o Pasca l (Ve r s i bn 3.0)
Rt!ference Manual
BORLAND INTERNATIONAL Inc.
35
![Page 36: 148.206.53.84148.206.53.84/tesiuami/UAM LOTE 5/UAM21149.pdf · Este procedimiento es conocido comhnmente como expansibn de MACROS. ... pr0gramacib.n en lenguaje ensamblador, como](https://reader031.fdocumento.com/reader031/viewer/2022021907/5bc16a7609d3f2f2678d80c0/html5/thumbnails/36.jpg)
I” b..
L
Se anexan a este manual el l i s t ado de los archivos fuente que contiene el paquete, que son:
- HAC-UTI.PAS
- MAC EN S . PAS
- HAC-0PC.PAS
- WACRO.PAS
r- c
Asimismo se anexan los d iagramas de f lujo de datos p r i n c i p a l e s .
36
![Page 37: 148.206.53.84148.206.53.84/tesiuami/UAM LOTE 5/UAM21149.pdf · Este procedimiento es conocido comhnmente como expansibn de MACROS. ... pr0gramacib.n en lenguaje ensamblador, como](https://reader031.fdocumento.com/reader031/viewer/2022021907/5bc16a7609d3f2f2678d80c0/html5/thumbnails/37.jpg)
C MAC-UTI . PFIS 3 C FIRCHIVO DE UTILERICIC 1
PROCEDURE Moni t:or ;
BEG IN C l r C c r ; Gotoxy(lO,13); Wr i te( ’Es ta usted usando un monitor de co lor S/N ? ’ ) ;
Repeat
U n t i l opciori IN C ’ C ’ , ‘ N ’ l ; I f opcion = ’S’ t.hen
Read(Kbd,opcion); opcion := UpCaseíopcion)
BEG I N .fondo := 1 ; t,exto := 15; f on._i riv : = 7; tex.-inv := 1 ; tex-.err := 4
END else? BEGIN
.Fondo := O ; t.exto : = 15; f on.-i nv : = 7; tex_.inv := O; tex-.err := C)
END END g
PROCEDLJRE Coni do;
BEGIN Soiund (500) ; Del ay ( 100) ; Nnwxind
END5
PROCEDLJRE L i mpi a í x 1 , y 1 , x 2, y2, c o l or : INTEGER) ;
BEGIN TextRacI:groi.ind (co lor) ; Window(xl ,y l ,x2 ,y2) ; C1 rCcr
END;
PKOCEDURE T i t u l o;
BEGIN L. impia(3,2,78,4,7): Textcolor (tex-inv) ; Got oxy (20,l ) ; Writei’UNIVERSIDAD FIUTONOMA METROP0LITANA’)g Gotoxy(20,2) ; Write( ’Proyecto de Ingenier ia E l e c t r o n i c a 2 ’ ) : Gotoxy(20.3) ; Write(’Macroensamb1ador UAMICRO Version 1 . 1 ’ )
END j
PROCEDURE Ciradro ( x l , y l , x 2 . y 2 : INTEGER):
VFIR i : INTEGER;
BEGIN Gotoxy(x1 ,y l ) ; W r i t e 0 ,-’)i For i := ( x l + 1 ) t o (x2 - 1 ) do
Write i ’ , ’ ) 3 For i := (y1 + 1 ) t o <y2 - 1 ) do
Write (’--’ ;
BEG IN
![Page 38: 148.206.53.84148.206.53.84/tesiuami/UAM LOTE 5/UAM21149.pdf · Este procedimiento es conocido comhnmente como expansibn de MACROS. ... pr0gramacib.n en lenguaje ensamblador, como](https://reader031.fdocumento.com/reader031/viewer/2022021907/5bc16a7609d3f2f2678d80c0/html5/thumbnails/38.jpg)
END ; Gotox ,y ( : i i . y :?? ; W r j t e ( ’ L ’ : , ; For i := (x:l + 1 : lo ( x 2 . 1 ) do
W r i t e i ,’ J .* ! w r i t e ( ’ ) ;
END;
PROCEDURE M a r c o ;
VAR i : INTEGER;
B E G I N T e x t C o l o r ( t e ? x t . o ) ; L i m p i a í l , l , t30 ,25 ,1) ; C u a d r o ( 2 , f 79,25) j
G o t o x y (2,5) I; ---..ku!q 5 f-- END;
PROCEDURE M e n i r _ O p c i ones;
BEG I N T i t u l o; T e x t C o l or (t n x t o ) j l..impia(3,6,78,24,1); C u a d r o ( 2 , 5 , 2 1 15) ; C u a d r o (22,1% 75,19) ; T e x t , C o l o r ( t e ? x - e r r l j Text.Battkground(fon-.inv); G o t o x y ( 7 , 5 ) j W r i t e ( ’ OPCIONES ’ ) ; T e x t C o l o r ( t . e x t o ) j
G o t o x y ( 4 , 9 ) j G o t o x y ( 4 , l O I ’ ; G o t . o x y ( 4 , l l ) ; G o t o x y (4,1218 ; Wr i te ( ’F in de sesion.’)
T e x t R a c k g r o u n d (fondo) j G o t o x y ( 4 , B ) J W r i t e ( ? A y u d a ’ ) ;
Wr i te ( ’ D e f i n i r a r c h i vos’ ) ; W r i t e ( ’ M a c r o e n s a m b l ador’ 1 ; Wr i te ( ’ C n n s c i l t a A r c h i vo’ ) ;
END 8
PROCEDURE ERROR ( f r a s e : CADENA);
VAR t e c l a : CHAR;
B E G I N Sonido; T e x t C o l or (t ex-er r i j
W r i t e l n i’ ’ % l i n e a ) ; Wr i te ln í ‘ ERHOR : ’ , f rase); Wri . te( ’ O p r i m a <ENTER> p a r a cont.inuar o CESC> p a r a abandonar ... ’ ) ;
R e p e a t
l...i m p i a (3,2,78,4,7) j
R e a d ( K b d , t . e c l a ) ; If Keypressed then
If NOT ( O R D i t e c l a ) I N C13,271) then Sonido R e a d (Kbd, t .ecl a i ;
U n t i l O R D c t e c l a ) I N CJ.3,273; If O R D ( t e c 1 a ) = 27 then
abandona P = TRUE; T i t.ul o; Te,: t C o l or ( t . e x t o ) ; T e x t B a c k g r o u n d (fondo) ; Window(3,6,78,23)
END;
![Page 39: 148.206.53.84148.206.53.84/tesiuami/UAM LOTE 5/UAM21149.pdf · Este procedimiento es conocido comhnmente como expansibn de MACROS. ... pr0gramacib.n en lenguaje ensamblador, como](https://reader031.fdocumento.com/reader031/viewer/2022021907/5bc16a7609d3f2f2678d80c0/html5/thumbnails/39.jpg)
I MRC_ENC.PAS 3 < ARCHIVO DE MñCROENSAMBLADO >.
PROCEDURE Cibteri._Codi go;
BEG IN codlgo : = " i While (col i= LENGTHilinea)) AND ilineaCcol1 IN C ' ' , ' , ' I ) do
While (col ,(:= LENGTH(1inea)) AND (NOT (lineñCcol1 IN C ' '-'*'I)) do BEG IN
col :-= col + 1;
codiqo := codiao + COPY(linea,col,l); - - col := col + 1
END END;
PROCEDURE Sust -Ar g j
VAR num : INTEGER;
REG IN num := O; col :- 1 ; While col LENGTH(linea1 do REGIN
Obt en-Cod i go; If expansion FIND (codi goC 11
REG IN col := col. - 2; DELETE(linea.col.2): nurn := ORD(c~digol21) INRERT(MAC..PARAMCnuml, linea,col) ; col : = col + LENGTH (MAC-ARGUMCnuml)
END
I f NOT expansion then BEGIN
el 5e
niinn := 1 ; While (num <= MFIX-ARGUM) AND (codigo < 3 MRC-ARGUMCnuml) do
num := nurn + 1 :
= ' & ' ) then
- 4s;
I f nurn <= MAX-ARGUM ihen BEG IN
r o l := col - LENGTH(codig0); DELETE(linea,col ,LENGTHicodigo) ) ;
INSERT ( ' %' +CHR (4Btnum) , 1 i nea, col ) ; col := col + 2
ENü END
END END;
PROCEDURE Sust. ..Et.i q i
VAR IJ : TIP-ET;
REG IN e3t.a : ROOL..EfIN;
rrol := 1 ; Whjle col a:= L.ENGTH(linea) do REG IN
Obten-Codi go; If cadigoCL.ENGTH(codigo)l = ':' then
BEG IN DELETE (codi go, LENGTH (codi go) , 1 ) ; col := col - 1
![Page 40: 148.206.53.84148.206.53.84/tesiuami/UAM LOTE 5/UAM21149.pdf · Este procedimiento es conocido comhnmente como expansibn de MACROS. ... pr0gramacib.n en lenguaje ensamblador, como](https://reader031.fdocumento.com/reader031/viewer/2022021907/5bc16a7609d3f2f2678d80c0/html5/thumbnails/40.jpg)
Q : :: Yi>C._ETIQ; est.+* ::: FALSE; While ,:I;r ,<> NIL) AND (NRT esta) do REGIN
I f (1.”.,nom,,_et.i = codigo t.hen
< : * l ! + i ? C1 :=: G!”.lig-eti esta : -i ‘TRUE
END; I f ec-tii then
DEG :N W*., usada : = TRlJE; CNBERT (Q*.s ig_et i 1 i n e a , c o l ) ; to]. := col + 3
END END
END;
PROCEDURE Obteri-Arg (VAH niun : INTEGER) j C L lena l a t a b l a de argumentos con los parametros de l a l i n e a . 3
VAR arg : CADENA;
REGIN num := O; While col <= LENGTH(1inea) do REGIN
arg := y - .
While Cecil C= LENGTH(1inea)) AND NüT(l ineaCcol1 IN C ’ ’ , ’ , ’ I ) do REGIN
arg := arg + C O P Y ( l i n e a , c o l , i ) ; col := COI + 1
END j I f arg <:::. ” then REGIN
nirm : =: nium C 1 ; I f expansion then
MAC-PARAMCnumJ : = arg e l s e Mac-ARGlJMCnumI : = arg
END; col := col + 1
END END:
PROCEDURE 0bt.en-Li nea;
REG IN I f expansion then
REGIN l i n e a := MAC-CONTENEap-contenl; ap-coriten := ap-conten + i; I f mac:-actual*.num_arg >. O then
I f mac:_actual^.ni~m_et.i I O t.hen Sust -nrg;
Sust -Et i q END
else REGIN ren := ren + i; Reacl ln(arch-ent, l inea)
END; COI := 1 ; (iotoxy(58,11); Write(ren)
END;
![Page 41: 148.206.53.84148.206.53.84/tesiuami/UAM LOTE 5/UAM21149.pdf · Este procedimiento es conocido comhnmente como expansibn de MACROS. ... pr0gramacib.n en lenguaje ensamblador, como](https://reader031.fdocumento.com/reader031/viewer/2022021907/5bc16a7609d3f2f2678d80c0/html5/thumbnails/41.jpg)
FKOCFDI.IRF-- Ar:t.~..Ft.i q ;
VAR 0 : TIP-ET;
BEGIN c a r : INTEGER;
i.? := NAC-ETIG!; While (I-1 .:> NIL) AND (NOT abandona) do BEG IN
I f usada then BEG X N
car :=: ORD(O^.sig..et.I.CZl); I f @*,,s ig_etiC21 = ’ 2 ’ then
Q”.s ig .-et i tZI := ’ A ” : car : = ORD ( í?*.sig_eti C 1 I ) ; I f B ^ . s i g - e t i t l l = .‘Z’ then
else W.sig_.et. i117 := CHRicar + 1 )
BEG I N
ERRORi’Demasiadas e t iquetas . ’ )
ENI) e l s e E1~’.5ig-~eti121 := CHR(car + 1 ) ; W . usada : = FALSE
END; 0 := W . l i g _ e t i
END END i
PROCEDURE Procesa-Li nea4
PROCEDURE Expande;
VAR num-par : INTEGER; I-1 :I APUN;
BEGIN expansion := TRUE; Obten-Arg (num-par) ;
FORWARD:
If num-par <: > mac-.actual.’. num-arg t.hen
I f NOT abandona then REI3 IN
ERRORi’Numero incor rec to de parametros’);
Writ.eln (arch-sal ,’; EXPRNDIENDO MACRO ’,mac_actual*.nombre); W r i te1 n (m-ch-sal, ’ j ap-corit.en := mac-.actual”. i n i + 1 ; While ao conten < mac ac tua l“ ‘ . f in do
’ + I i nea) ;
. ._ BEG I N
expansion :=. TRUE; Obtrn,_.i..i nea; 13 :=: mac-actual; nuin-.par : = ap-canten; Pr- ocesa-Li nea; mac_actual := Q; ap-conten : = num-par
END; Wr i t .e ln(arch_sa l , ’ ; FIN DE Act-Etiq
END; ex pansi on : =: FALCE
END;
EXPANSION ’ ,mac_actual^.nomhre);
PROCEDURE Def -Et i q : C Actua l i za l a l i s t a de et iquetas 3
VAR r* : TIP-ET!
![Page 42: 148.206.53.84148.206.53.84/tesiuami/UAM LOTE 5/UAM21149.pdf · Este procedimiento es conocido comhnmente como expansibn de MACROS. ... pr0gramacib.n en lenguaje ensamblador, como](https://reader031.fdocumento.com/reader031/viewer/2022021907/5bc16a7609d3f2f2678d80c0/html5/thumbnails/42.jpg)
HEGKN »ELETE(codigo,L.ENGTH(codi~o), 1 ) ;
r?:.ii.ste := FALSE; W h i l e (0 < > N I L ) AND (NOT existe) d o BEGIN
a : 2 MAC.._E.T:[O;
T f O”.nom_eti = c o d i g o t h e n e x i s t e := TRUE
else 0 5:: 0” . l i g_e t i END; I + NOT existe t .hen
NE# ( O 18 ; W. nom-et i : = e o d i go; O*. si g-eti : = ’ AA’ ; O*. irsiida : = FALCE; W.lig_eti := N I L ; I f MAC-ETIO = N I L t h e n
REGIN
BEG I N NAC.-ETIR : = O; ULT_.ETIO : = O
ENI) else BEGIN
LILT-.ETIO”. l i q _ , e t i := O; ULLT-ETIR := O
EtND END
END:
PROCEDURE D e f i n e ;
‘JAR P : OPUN; n i v e l : INTEGER; b o l : BOOLEAN; num : INTEGER;
REG I N NEW (P) ; P.“. nombre : = c o d i g o ;
MAC-CONTENCs ig_ l ihre l := l i n e a ; b o l := e x p a n s i o n ; e x p a n s i o n := FALCE; O b t e n - e r g (numb ; e x p a n s i o n := b o l ; P.“. nurn-.arg :, = num; b o l : = FALCE; n i v e l := 1;
1.1 m := ci; W h i l e (NOT EOF i a r ch - en t . ) ) FIND ( n i v e l > Ci) da
P”‘. i n i : = sig-1 i b r e ;
BEG I N s i g - l i b r e := s i g . _ l i b r e + 1; Obten-1.i n e a ; O b t e n .-Cod i go; I f c o d i g o < > ” ; ’ t h e n REG I FI
I 4 c:odigoCl ... E N G T H ( c o d i g o ) l = ‘:’ t h e n BEGIN
n u m := num + 1; D e f -Et i q
END; Su s t - A r g 5 NüC...CONTENCsi 9-1 i b r c l : = 1 i n e a ; I f c : od i g o = ’MFICRO’ t h e n
n i v e l := n ive l + 1 el se
I f c n d i g o = ’MEND’ t h e n n i v e l := n i v e l - 1
, . . .. ..~. ~ . -
![Page 43: 148.206.53.84148.206.53.84/tesiuami/UAM LOTE 5/UAM21149.pdf · Este procedimiento es conocido comhnmente como expansibn de MACROS. ... pr0gramacib.n en lenguaje ensamblador, como](https://reader031.fdocumento.com/reader031/viewer/2022021907/5bc16a7609d3f2f2678d80c0/html5/thumbnails/43.jpg)
END: P.". nirm...et.i :I = n u m ; P.". f i i, : =i si g- 1 i. bre; s i g - l i b r e z = = s i g - l i b r e + 1.; P-".,-iig_.mac : = N I L $ I f MTrCROC = NIL.. t.hen
R E F l N MACKOlj := P; LIL.TIM13 : = P
END else B E G I N
UI..TU.MO*. 5 ig - .mac : = P; U L T I M O : = P
END END:
PROCEDl.JRE Busca (VAR es ta : BOOLEAN) ;
VA" t e m p : AfYJN;
P E G I N c5t.a : = FAL.CE; t e m p : = mac. .ac tua l ; mac-actual :, = MACROS; While ( m a - a c t u a l *:> N I L ) AND ( m a c _ a c t r r a l ^ . n o m b r e < > codigo) do
I f mac..~act.ii;il .:> NIL.. then
e l se mac..ac:tiral : = t.emp
mac ._act t ira1 I = m a c .-ac t u a l * .5 i g-mac ;
est.a := TRUE
END;
PROCEDURE ProcE?sa-l..i nea;
VAR e x i s t e : BOOLEAN; c o l u m : INTEGER;
B E G I N O b t e n - C o d i go; I f codigo = 'MFICRO' then
B E G I N c o l u m := col - 5; Ob t .en C o d i go; C O b t i e n e e l n o m b r e de l macro. 3 If codigo = I ' then
else R E G I N E R R O R i ' M a c r o s in n o m b r e . ' )
DELETE (1 i nea, c o l u m , 5) ; col := c o l - 5; R u s c a i e x i s t e ) 8 I f e x i s t e then
e l5e D E F I N E ERROR ( e D o b l e def i n ic ion . ' )
END END
I f codigi:) < > ' j ' t.hen BEG I N
el se
Busca ( e x i s t e ) ; C V e r i f i c a s i se t r a t a de una m a c r o - l l a m a d a I f ewiate then
e lse Wr i te ln (arch..sai, 1 inea) EXPANDE
END END;
. 3
![Page 44: 148.206.53.84148.206.53.84/tesiuami/UAM LOTE 5/UAM21149.pdf · Este procedimiento es conocido comhnmente como expansibn de MACROS. ... pr0gramacib.n en lenguaje ensamblador, como](https://reader031.fdocumento.com/reader031/viewer/2022021907/5bc16a7609d3f2f2678d80c0/html5/thumbnails/44.jpg)
C MAC-0PC.PAS 1) C ARCHIVO DE OPCIONES 3
PROCEDlJRE A y u d a ;
VAR arch : TEXT; ! i n : CiqDENFi; i : INTEGER;
L i m p i a (25,7,76,23,1) ; T e x t C o l or ( t ex -er r 1 ; G o t o x y (20,l) ; W r i t e ( ’ AYUDA MAXIMA ’ ) j T c x t C o l o r ( t e x t o ) ; L i m p i a (27,9,76,23,1) ; nSSIGN(arch,’MACRO.HLPI); R E G E T C a r c h ) :; Wh i le NOT E13FCarch) do B E G I N
B E G I N
T e x t Bac kground í f on -i nv 1 ;
i := 1; While (NOT E O F ( a r c h ) l FiND (i < 14) do BEG I N
R e a d 1 n (arch, 1 i n ) ; W r i te11 n ( 1 i n ) j D e l ay í 100) ; i s = .i + 1
END; R e a d
END; CLOSE (arch)
END;
PROCEDURE Lee . A r c h i v o ( x , y : INTEGER; VAR n o m b r e : CADENA):
VAR t e c l a : CHAR;
REG I N n o m b r e : = ’ :’ i G o t o x y ( x , y ) ; W r i t e ( ’ ’ : 1 2 ) ; G o t o x y ( x ,y) 2 R e a d ( K b d t e c l a ) j If ( O R D ( t e c 1 a ) = 27) AND (NOT K e y p r e s s e d ) then
e l s e If O R D ( t e c 1 a ) < 3 13 then
W r i t e i t e c l a ) ; R e a d ( n o m b r e ) j nombre := t e c l a + nombre
abandona : = TRLJE
B E G I N
END END3
PROCEDlJRE Dei: i n e - A r c h i v o s ;
VflR e x i s t e : BOOLEAN; def a, n o m b r e .: CADENA; n u m : INTEGER:
B E G I N L.i.mpj.a(29,13,72,1R,i); def a : = ’MAC-ENTR. T X T z ;
![Page 45: 148.206.53.84148.206.53.84/tesiuami/UAM LOTE 5/UAM21149.pdf · Este procedimiento es conocido comhnmente como expansibn de MACROS. ... pr0gramacib.n en lenguaje ensamblador, como](https://reader031.fdocumento.com/reader031/viewer/2022021907/5bc16a7609d3f2f2678d80c0/html5/thumbnails/45.jpg)
.-.,m . - * . .. ”
.-i!,iitbr.e : :: ’ IENTRADA’ ; bhilc ( r i r i m ,<= 2) AND (NOT abandona) do 2 F G I FJ
e>: i 5t.e : := FALSE; T e x t . C r > l o i - ( ter.-err); TextBackQround(fon-inv); G o t o x y ( 5 , b ) ; W r i t e ( ’ D e f a u l t : ’,defa,’ ’1; T e x t C c i l o i - ( t e x t . 0 ) ; T e x t R a c k g r o u n d ( f o n d o ) ; G o t o n y ( 5 , Z t n u m ) ; W r i t e i ’ A r c h i v o de ’ ,nombre , ’ : ’ ) ;
Repeal. L.E>f?-Ri‘Chi vo (27, Z h u m , n o m b r e ) ; I f NO’T abandnna then BEG I N
i f n o m b r e = ” then BEG I N
n o m b r e : = def a; Wri. te ( n o m b r e )
END;
ASSIGN (a rch en t , nombre) I f defa = ’MRC..ENTR.TXT’ then
e lse A C S I G N ( a r c h - s a 1 ,nombre) ; E$ I -> I f de fa = ’MAC-ENTR.TXT’ t.hen
else R E W R I T E ( a r c h - s a 1 ) ; CBT+3 existe := ( I O r e s i i l t = O); I f NOT e x i s t e then
RESET (arch ent)
REG I N ERROR(’E1 archivo C ’ + n o m b r e + ’ l no e x i s t e en e l d i rec to r io ’ ) ; W i n d o w ( 2 9 , 1 2 , 7 2 , 1 8 )
END END
U n t i l e x i s t e OR abandona; n u m := ni-im + 1 ; defa := ‘MAC-CALI.TXT’; n o m b r e ::= ‘SALIDA
END; I f (NOT abandona) AND E O F ( a r c h _ e n t ) then
REG I N E R R O R ( ’ A r c h i v o fuent.e vacio. ’ ) ;
a h a n d o n a . : = TRUE; CL.OSE (arch-ent) ; CLOSE (arch.-sal)
END END;
PROCEDURE M a c ; r o e n s a m b l adar ;
BEG I N I f abandona then
e l se ERROR(’No se han de f in ido l o s archivos fuente y des t ino- )
BEG I N I n i ci a l i z a ; O b t e n .-Li nea; Whi le (NOT E O F ( a r c h - e n t ) ) AND
B E G I N ( l i n e a .:Z ’END’) AND (NOT abandona) do
Procesa-l..i nea; O b t e n - L i n e a
END; C:l..DCE (arch-ent) ; CLOSE ( a r c h sal. 1 :
![Page 46: 148.206.53.84148.206.53.84/tesiuami/UAM LOTE 5/UAM21149.pdf · Este procedimiento es conocido comhnmente como expansibn de MACROS. ... pr0gramacib.n en lenguaje ensamblador, como](https://reader031.fdocumento.com/reader031/viewer/2022021907/5bc16a7609d3f2f2678d80c0/html5/thumbnails/46.jpg)
FRt3CEDi.IRE C o n s i u l t a ;
VAR arch : TEXT; e,. i % t e : HOOLEAN; de fa , l i n : CFIDENA; n o m b r e : CQDENA; i : INTEGER;
L.impia(29,1:2,72,18,1); defa : = ’MAC-SAL.1. TXT’ ; abandona : = FALSE; e x i s t . e := FlñLSE: T e x t C o l o r ( t i i x - e r r ) ; TextRackground(fon- inv); G o t o x y (S, 6 ) ; W r i t e ( ‘ D e f a u l t : ’ ,de fa , ’ ’ ) ;
T e x t C o l . o r ( t e x t o ) ; O o t O X y ( 5 , 4 ) ; W r i t e ( ’ Q r c h i v o o consu l ta r : ” ) ; R e p e a t .
REG I N
T e x t . R a c k g r o u n d (fondo) ;
Lee.., ,Qrchi vo (28 , 4, n o m b r e ) ; I f NOT abandona then REEXN
I f n n i n b r e = ’ ’ then RE13IFJ
nombre : = def a; W r i t e ( n o m b r e )
END; ASSIGN (arch, nombre) ; <*I-> RESET í arch ) ; < % I C 3 e x i s t . i i := ( I O r e s c i l t = 0) ; I f NOT e x i s t e then
REG I N ERROR(’E1 a rch i vo [’+nombre+’] no e x i s t e en e l d i r e c t o r i o ’ ) ; W i n d o w ( 2 9 , 1 2 , 7 2 , 1 8 )
EN13 END
U n t i l e x i 5 t i . OK abandona; If NOT abandona then REG IN
l..imFiia(2g,7,76,23,1); T e x t c o l o r ( t e x - e r r ) ; TextBackground(fon..inv); G o t . 0 x y ( 1 : 7 , 1 ) ; W r i t e ( ’ CONSULTA ARCHIVO ’ ) ;
T e x t C o l or (te,: t o ) ; L.i m p i a (2:7,9,76, 23, 1. ) ; Whi le NOT E Q F í a r c h ) do BEG I N
i := :L While (NOT E O F ( a r c h ) ) AND (i < 14) do B E G I N
R e a d l n (arch, 1 i n ) ; W r i t e1 n (1 i n 1 ; D e l ay í 100) ; i I:= i + 1
END; R e a d
END; CLOSE (arch)
END ; abandona : == TRUE
END;
![Page 47: 148.206.53.84148.206.53.84/tesiuami/UAM LOTE 5/UAM21149.pdf · Este procedimiento es conocido comhnmente como expansibn de MACROS. ... pr0gramacib.n en lenguaje ensamblador, como](https://reader031.fdocumento.com/reader031/viewer/2022021907/5bc16a7609d3f2f2678d80c0/html5/thumbnails/47.jpg)
L
c.
L
c 5:
Vi1H frase : CCIDENA;
REG I N 1. : INTEGER;
L ~ i mpi a ( 9 , h , 7 R , 2 4 , 3.1 : +rose := 'Eso es t,odo, no o lv ide apagar el tiquip0 de comput.o.'; Gotoxy i 13,8i ; for k := 1 to 51 do
+rase := 'U A C T FI 1. LI E G 13 ! ! ! ' ; Gotoxyí24 , l 'O) j For k := 1 to 2R do
Gotoxy(75,1'71
Write i f rase[ k 3 1 ;
Write i f I- ac,eCk 11 j
END;
L
![Page 48: 148.206.53.84148.206.53.84/tesiuami/UAM LOTE 5/UAM21149.pdf · Este procedimiento es conocido comhnmente como expansibn de MACROS. ... pr0gramacib.n en lenguaje ensamblador, como](https://reader031.fdocumento.com/reader031/viewer/2022021907/5bc16a7609d3f2f2678d80c0/html5/thumbnails/48.jpg)
< 8 ._ _ _ 1 _ . _ _ _ _ _ 1 _ _ _ _ _ _ _ _ - _ . _ . _ _ . - _ _ _ _ . _ . _ _ _ _ _ _ - . - _ _ _ I _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ I
l J N I VERSI DfW AUTONOMA METROPOL I TANA I ZTfiFAL.APA
1 MATERIA : Seminario de Proyecto Terminal 11.
ASESOR : L.uis Felipe Castro
PROYECTO : " Macroensamblador UAMICRO ' I
AL.LIMNO : Urtega Ledn Mario César
:----.-________-__----------I I
3
PROGRAM Macro-UAMICRO;
CONST MAX-CONTEN = 100; MAX-ARGLIM = 10;
TYPE CADEFIA := CTRINGCBOI; 1IP-ET := *ETID; ET10 := RECORD
nom-eti : CADENA; sig-eti : CADENA; usada : BOOLEAN; lig_.eti : TIP..ET
END; APUN := ."CELDA; CELDA := RECORD
nombre : CADENA; ini,fin : INTEGER; num-arg : INTEGER; num-eti : INTEGER; sig-mac : APUN
END ;
VAR 1 i neñ, cotji go : CADENA; ex pansi on ; BOOLEAN; a. b an don a : ROOLEAN; arch-ent, arch-sal : TEXT; MACROS, LILT I MO : AFUN; mac ..ac t ual : APlJN; MAC-CONTEN : ARRRYCl..MAX..CONTENl OF CADENA; MAC-ARGUM,MAC-PARAN : ARRAYCi..MAX..ARGUMl OF CADENA;
ap.-conten,ren,col : INTEGER; 5i g...l i bre : INTEGER;
forido,text~n!,fari..inv,t.e>c~..inv,te,:._err : IN.TEGER; npci on : CtinR;
M~c_ETID,L~L:~...~TID : 'r1P-n;
num-opc 2 1I.ITESER;
![Page 49: 148.206.53.84148.206.53.84/tesiuami/UAM LOTE 5/UAM21149.pdf · Este procedimiento es conocido comhnmente como expansibn de MACROS. ... pr0gramacib.n en lenguaje ensamblador, como](https://reader031.fdocumento.com/reader031/viewer/2022021907/5bc16a7609d3f2f2678d80c0/html5/thumbnails/49.jpg)
51’ 7“ L
1 1 T-
i
r iL
c
.-
FROCEDlJRE I n i c i al i L a j
REG I N For ap-conten := 1. t.o MQX-CONTEN dcr
MQC-CONTENCap-conten] := ” * I
For ap._cont:i?n := 1. t o MAX-QRCiUM do REG I N
MAC-ARGUMCap-conten l : = ’ ’ , * MAC_PAiRAMr:ap~..contenI : = ’ ’
END; ap-.conten : = 1 ; r e= n ::= 0 ; s i g _ . l i b r e := 1; expansi on : := FQl-SE; MACROS : = N IL ; MfiC..ETXíI ::= NIL..; C O d i g O : = I ? .
I . i ~ p i . a ( 7 9 , 1 i I ) . , 7 2 , J . R i 7 ) ; Windnw(3 ,& ,77 ,%3) ; T e x t . C o 1 or ( t e x . . e r r ) ; Got~ory (40,ii) ; Write(’Prncesandn l i n e a 1; T e x t c o l o r ( t ’w tn ) ; Te,: t .Rackqro i . . in r i (fondo)
END:
PROCEDlJRE I n f o r m a ín i rn i : INTEGER) ;
R E G I N L . i mpi a (25,7,76,23,1) ; Case n i i m of
1 n BEGIN C u a d r o ( 1 1,6,42,iZ) ; T e x t Col or (t e x -e r r ) ; G o t o x y ( 2 4 , b ) j Te:< t C o l or ( t e x t o ) ; Gotoxy ( th ,B) ; Go%ox y ( 16,9) ; Gotoxy í 16,101 ;
END j 7. : R E G I N
C~ . i ; ad ro (4 ,3 ,49 , 13) ; T e x t C o l n r ( t . e x - e r r ) ; G o t o x y ( l 5 , S ) 3 Tc: . : t .Cn ln r ( t e x t o ) ; G o t o x y ( i 0 , 7 ) j
Gotaxy(l0,9); Gotox y ( 1 O , 1 1 ) j
END; 3 : B E G I N
C u a d r o ( 4 , 6 , 4 9 , 1 3 ) : Te:ctCol or í te>! -er r ) ; Gotoxy ( 18,6) ; T e r t . C o 1 cw- ( t e x t.o) ; G o t o x y ( i 3 , B ) j GCSt Ox y ( 13,9) j GotoxyilJ, 10); G o t o x y (17,li) ;
END; 4 : B E G I N
C u a d r o ( l l , h , 4 2 . 1 2 ) ; Te :c t .Co lnr ( t e x - e r r ) ; Gotoxy (21 I 6) ; Te:.: t . C o l or (t EX t ~ o ) j
O o t o x y ( l 6 , O ) j Gnt.oxy f l .b, 9) 5 , . . -..._-I. --
TextKackground( fon- inv ) ; W r i t e ( ’ AYiJDA ,’) j
W r i t e ( ’ D e s p l i e g a in formacion’ ) : Wr i t -@( ’de a y i r d a para e jecu ta r ’ ) ; Wr i te ( ’e1 M a c r o - E n s a m b l a d o r . ’1
T e x t H a c k g r o u n d if ondo)
T e x t . B a c k g r n u n d if on-inv) ; W r i t e ( ’ D E F I N I C I O N DE CIRCHIVOS ’ ) ;
W r - i % e ( ’ D e f i n i c i o n de arch ivos de entrada‘); l J r - j t e ( ’ ( a rch i vo fuente) y s a l i d a (a rch ivo ’ ) ; Wr i te ( ’ des t i no ) de i n f o r m a c i o n . ’ ) ;
T e x t R ñ c k q r n u n d (fondo)
T e x t B a c k g r o u n d ( fon- inv) ; Wr i t e ( ’ MACROENCQMBLQDOR ’ ) j
W r i t e ( * X n i c i a r l a e jecuc ion del. ’) ; Writ.e(’Macroensamblador UQMJCRO, ’ ) ; W r i t e i ’ p r e v i a d e f i n i c i o n de los’); W r i t e ( ’ a r c h i v o s f r r e n t e y dest ino. ’ ) ;
T c x t H a c k g r n u n d (fondo) 3
T e x t . B a c k g r o u n d ( fon. ,_ inv) j W r i t e ( CONSULTAS ’ 1 5
T c x t B a c k g r o u n d (fondo) ; W r i t e ( ‘ C o n s u 1 t a de un arch ivo ’ ) ; i 4 r i t e ( ’ r J e t . ex t .0 , como lo son’); .~. ,I_ .... I -. .. -- - -----.,I _I,_ I___...-. .
![Page 50: 148.206.53.84148.206.53.84/tesiuami/UAM LOTE 5/UAM21149.pdf · Este procedimiento es conocido comhnmente como expansibn de MACROS. ... pr0gramacib.n en lenguaje ensamblador, como](https://reader031.fdocumento.com/reader031/viewer/2022021907/5bc16a7609d3f2f2678d80c0/html5/thumbnails/50.jpg)
EN3 j 5 ! K G 1 I,!
C u a d r r ! í 1 ’f $ 6 , 4:!* 12) ; ?ex CCnl. nr’ ! t F Y . ~er r ) ; G o t o x y ( 7 3 , 6 ) ; I r l r i i :e ( . ’ S M I D A ’ i ;
G o t O x y ( s 6 , R ) j W r i t e ( ’ A b a n d o n a r s e s i o r i a c t u a l ” 1; GotoXy(Ih,9); M a c r o e n s a m b l ador:’ ) ; B o t o x y ( l 6 , l O ) ; Wr i te ( ’ l . J f lM ICR0, V e r s i o n 1 . 1 ’ )
Te:: ! . f i sc I;qroi.irid í f c ~ . . i nv) ;
?E.I:.tC01nr (t.C:<t..D) ; Te:ctBackgr.ound (fondo) 2
Idr i t e ( ’ de l
END End ; .: C a s e 1 Window(3,h,78,24)
END;
PROCEDIIRE l...ee-Opcion iVAR ncim : INTEGER) ;
VAR OPC : ARRAYKI . .S I OF CADENA; t e c l a : CHAR; antes : INTEGER;
B E G I N O P C t l . 3 := ’ A y u d a 7 .
OPCC21 := ’ D e . F i n i r a rch ivos ’; OPCK33 : = ’ M ñ c r n e n s ñ m h l ador ’ ; OPCC47 := ’ C o n s u l t a A r c h i v o ’ ; OPCC51 := ’ F i n de sesinn. ’; R e p e a t
ant.t.5 : = riuni; I n f o r m a ( n u m ) ; T e x t . C n l o i - ( t e x - i n v ) ; D o t o x y ( C I , 7 + n u m ) ; W r i t e ( O P C C n u m 1 ) ; R e p e a t
T e x t . B ñ c k q r o u n d ( fon-inv) ;
R e a d ( # b d , t e c l a ) ; t e c l a := Upcase(tec1a); If N O T ( O R D ( t e c 1 a ) I N C13,27,65,h8,67,70,771) then
C o n i do Unt i. 1 ORü í t e c 1 a) I N C 13,27,65,68,67,70,77 1 5 Case O R D c t e c l a ) of
27 : I f NOT K e y p r e s s e d t.hen Son i do
B E G I N e1 5P
R e a d ( K b d , t e c l . a ) ; C a s e O R D t t e c l a ) of
72 : I f n u m = 1 then ni.rm := 5
nirm - I ; e lse nirm := 80 : n u m := ( n u m NOD 5 ) + 1 ;
e l s e Sonido End C Case 3
END; hS : inum := I ;
77 : n u m := 3; h7 2 n u m := 4; 70 : n u m := 5;
hB : l l i l ln : = 2 ;
End; C C a s e 1, I f nirm = 1 then
e l se opcion I = OPCCnumIC21; T e x t . C o l o r ( t . e x t . 0 ) ; G o t a x y ( 9 , 7 + antes); W r i t e ( O P C C a n t e s 1 ) 5
ripcinn := ’ A ”
T e x t B a c k g r o u n d (fondo) ;
l l n t i l O R D ( t . e c l a ) = 13 END;
![Page 51: 148.206.53.84148.206.53.84/tesiuami/UAM LOTE 5/UAM21149.pdf · Este procedimiento es conocido comhnmente como expansibn de MACROS. ... pr0gramacib.n en lenguaje ensamblador, como](https://reader031.fdocumento.com/reader031/viewer/2022021907/5bc16a7609d3f2f2678d80c0/html5/thumbnails/51.jpg)
. e .I
b.
r*
r- L
F
L
P
i
L
RFC; I r4 .: Comienza Programa P r i n c j p a l 3 Mcni tcrj P13i co; Mer:ii_Opci ones; 1 j i-ea . -. ahiondcina : = TRI.IE; nirm,,-npn z c = 1.;
.- ) ) . opc.:ion := 'a ' ; Fie[:! ea?,
!.ee._íJpci on (num_.opc 1 ; Case opcion nf
'R' : !Flyuda; 'D' : Def i ne-Clrchi vos; 'M' : :Macroensambl ador; 'C ' : Consulta; 'F' : IFin-Cesion
End 4 Case > U n t i l opcioil = 'F'
END.
![Page 52: 148.206.53.84148.206.53.84/tesiuami/UAM LOTE 5/UAM21149.pdf · Este procedimiento es conocido comhnmente como expansibn de MACROS. ... pr0gramacib.n en lenguaje ensamblador, como](https://reader031.fdocumento.com/reader031/viewer/2022021907/5bc16a7609d3f2f2678d80c0/html5/thumbnails/52.jpg)
j c - '. c
I
I i -
! l..-
![Page 53: 148.206.53.84148.206.53.84/tesiuami/UAM LOTE 5/UAM21149.pdf · Este procedimiento es conocido comhnmente como expansibn de MACROS. ... pr0gramacib.n en lenguaje ensamblador, como](https://reader031.fdocumento.com/reader031/viewer/2022021907/5bc16a7609d3f2f2678d80c0/html5/thumbnails/53.jpg)
I_
![Page 54: 148.206.53.84148.206.53.84/tesiuami/UAM LOTE 5/UAM21149.pdf · Este procedimiento es conocido comhnmente como expansibn de MACROS. ... pr0gramacib.n en lenguaje ensamblador, como](https://reader031.fdocumento.com/reader031/viewer/2022021907/5bc16a7609d3f2f2678d80c0/html5/thumbnails/54.jpg)
c
ZRUOR I