Programación Web y Scripting > Python

 Ensamblador 2 pasos con python

(1/1)

eruelas:
Buenos dias compañeros, quisiera saber si me pueden orientar respecto a mi codigo, lo que pasa es que este intentando verificar que un mnemonico leido desde un archivo exista en mi matriz, pero no me da, solo me lee el primero y esta correcto y los demas los da como fallos a pesar de que si estan en mi matriz, agradezco su ayuda.

El archivo que leo lo dejare adjunto.

Saludos!


--- Código: Text ---#!/usr/bin/env python# -*- coding: utf-8 -*- import re n=0 matriz =  [["ABA",2],                   ["ABY",2],                   ["ADCA",2],                   ["ADCC",2],                   ["ADDD",2],                   ["ANDCC",2],                   ["ASL",2],                   ["ASLB",2],                   ["ASR",2],                   ["LDAA", 2],                   ["LDAB", 2],                   ["LDD", 2],                   ["LDS", 2],                   ["LDX", 2],                   ["LDY", 2],                   ["LEAS", ],                   ["LEAX", 2],                   ["LEAY", 2],                   ["LSL", 2],                   ["LSLA", 0],                   ["LSLB", 0],                   ["LSLD", 0],                   ["LSR", 2],                   ["LSRA", 0],                   ["LSRB", 0],                   ["LSRD", 0],                   ["MAXA", 2],                   ["MAXM", 2],                   ["MEM", 0],                   ["MINA", 2],                   ["MINM", 2],                   ["MOVB", 2],                   ["MOVW", 2],                   ["MUL", 0],                   ["NEG", 2],                   ["NEGA", 0],                   ["NEGB", 0],                   ["NOP", 0],                   ["ORAA", 2],                   ["ORAB", 2],                   ["ORCC", 1],                   ["PSHA", 0],                   ["PSHB", 0],                   ["PSHC", 0],                   ["PSHD", 0],                   ["PSHX", 0],                   ["PSHY", 0],                   ["PULA", 0],                   ["PULB", 0]] arc = open("salida.lst", "w") #Leer el archivo with  open("P1.ASM","r") as p1:         arc.write( "{0}\t{1:10}\t{2}\t{3}\t{4}\t{5}".format("Linea","Etiqueta","Mnemonico","Operador1","Operador2","Comentario\n") )                      #Ciclo que recorre las lineas existentes en p1         for line in p1:                n = n+1                i=0                                #Separar donde se encuentre espacio o coma                 pal=re.split('\s|,',line)                 #Identifica componentes de la linea                 etiq=nem=op1=op2=com=''                etiq=pal[0]                   if len(pal)>1 :                        nem=pal[1]                                if len(pal)>2 :                        op1=pal[2]                if len(pal)>3 :                        op2=pal[3]                if len(pal)>4 :                        com=pal[4]                 #Imprime linea con formato separando etiqueta si es muy larga                for i in range(45):                             if pal[1] ==matriz[i][0]:                                print nem                                break                        else:                                print nem                                print "\033[5;47;31merror en la linea ", n, " mnemonico invalido\033[0m" #Codigo ANSI para colorear el texto                                break                if len(etiq)<10:                        arc.write("{0:5}\t{1:10}\t{2:10}\t\t{3:5}\t\t{4:5}\t\t{5}\n".format(n,etiq,nem,op1,op2,com) )                else:                        arc.write("{0}\t{1}\n\t\t\t{2}\t\t{3}\t\t{4}\t\t{5}\n".format(n,etiq,nem,op1,op2,com) )arc.close()    

eruelas:
Problema resuelto

Navegación

[0] Índice de Mensajes

Ir a la versión completa