Domingo 22 de Diciembre de 2024, 02:16
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación Web y Scripting
»
Python
(Moderador:
arielb
) »
Ensamblador 2 pasos con python
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Ensamblador 2 pasos con python (Leído 3222 veces)
eruelas
Miembro activo
Mensajes: 69
Nacionalidad:
Ensamblador 2 pasos con python
«
en:
Martes 17 de Febrero de 2015, 17:11 »
0
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()
El mensaje contiene
1 archivo adjunto
. Debes
ingresar
o
registrarte
para poder verlo y descargarlo.
Tweet
«
última modificación: Martes 17 de Febrero de 2015, 21:15 por eruelas
»
eruelas
Miembro activo
Mensajes: 69
Nacionalidad:
Re:Ensamblador 2 pasos con python
«
Respuesta #1 en:
Jueves 19 de Febrero de 2015, 18:22 »
0
Problema resuelto
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación Web y Scripting
»
Python
(Moderador:
arielb
) »
Ensamblador 2 pasos con python