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
Ir a la versión completa