Está en la página 1de 2

Nombre: Rogelio Neftal Calleja Patio

Cdigo: 209452575
Grupo: Lunes 9:00 am 11:00 am y Mircoles 9:00 am
10:00 am
Aula: LC10
Practica: #4
Fecha de Entrega: 20/04/2015

Descripcin de Algoritmos
El algoritmo utilizado principalmente fue la utilizacin de if o bien if else para distinguir el
org, las directivas de constantes, directivas de reserva, el equ, o bien para comparar en el
tabop si dicho cdigo de operacin exista o no, una vez que se distingua de qu tipo de
cdigo de operacin se trataba se utilizaba un tipo de algoritmo segn sea el caso, en el
caso de la directiva org se igualaba el contador de localidades (CONLOC) a la directiva
de inicio que era el valor del operando del org para inicializar el CONLOC e ir sumando la
cantidad bytes correspondiente segn se presentara el caso y tambin se evaluaba la
directiva org para marcar algn error si es que existiera como por ejemplo el caso de que
existiera etiqueta, se agregaba al archivo temporal.txt el cual se creaba en tiempo de
ejecucin agregando el operando o bien la direccin inicial en formato hexadecimal de 4
bytes al igual que con las otras directivas, se converta primero el valor del operando a
decimal y luego a cadena en formato hexadecimal de 4 bytes utilizando una funcin que lo
converta, el valor del operando al igual que en las otras directivas se evaluaba con el
algoritmo utilizado en la prctica anterior para validar los cdigos de operacin
encontrados en el tabop que era un analizador lexicogrfico, s era un operando invalido
se marcaba el error correspondiente y se le asignaba 0 a la direccin inicial, cada que se
le sumaba un valor o bien se le asignaba un valor a al contador de localidades (CONLOC)
se verificaba que no pasara del valor permitido y s se llegase a pasar se marcaba el error
correspondiente, se verificaba que el END no tuviera operando y si lo presentaba se
marcaba su error correspondiente, en cuanto a las directivas de constante para las de 1
byte (db, dc.b, fcb) se utiliz el mismo algoritmo para validar dichas directivas, primero se
agregaba el conloc en formato hexadecimal de 4 bytes junto con la etiqueta, el codop y el
operando al archivo temporal.txt y al tabsim si exista alguna etiqueta y luego se le
sumaba al contador de localidades 1 byte s estaban escritas correctamente, s
presentaban algn error como por ejemplo pasar del rango valido se le sumaba 0 al
contador de localidades, para las directivas de constante de 2 bytes se utiliz un algoritmo
similar sumando 2 bytes al contador de localidades si se escriban correctamente y
siguiendo el mismo procedimiento que en el caso anterior, para la directiva fcc se
analizaba primero que existiesen las 2 comillas ubicadas correctamente para luego contar
los caracteres restarle dos y sumrselos al contador de localidades, en cuando a las
directivas de reserva de espacio en memoria se utiliz un algoritmo similar al de las
directivas de constante para 1 byte y para 2 bytes, utilizando un analizador lexicogrfico y
multiplicando el operando por 1 o bien por 2 segn fuese el caso para despus sumarse
al conloc, para la directiva equ se verificaba que tuviera tanto etiqueta como operando
escritos correctamente, s no se marcaba el error correspondiente, en cuanto a los
cdigos de operacin del tabop se utilizaba un algoritmo similar a los casos anteriores
sumando la cantidad de bytes correspondientes al conloc segn se tratase de un
inmediato de 2 bytes, extendido de 3 bytes,etc. Para el algoritmo de bsqueda en el
tabsim.txt para verificar si se repetan etiquetas se utiliz una bsqueda secuencial
utilizando el puntero lseek, si se encontraba una etiqueta duplicada se marcaba el error
correspondiente y no se agregaba al archivo tabsim.txt, s no se agregaba con su etiqueta
correspondiente y su conloc correspondiente.

También podría gustarte