Como o Mega Assembler não trabalha com arquivos TXT mas sim com um formato próprio, estudei um pouco esse formato e fiz um script em Python para converter o arquivo em assembly no formato TXT para o formato do arquivo do Mega Assembler.
O script é bem básico, mas funcionou bem nos testes que fiz.
Algumas coisas que precisam ser observadas na hora de gerar o arquivo no PC é se lembrar das caracteristicas do Mega Assembler, como o tamanho máximos dos labels (6 bytes) e a restrição de uso de alguns caracters como o "_" (underline).
Segue abaixo o script.
# -*- coding: cp1252 -*-
#
# TXT2SIMPLE
# converte arquivos Assembly em formato texto para
# arquivo compativel com o Simple Assembly.
# Daniel Jose Viana - Janeiro de 2012
# v0.01 - versao basica 11/jan/2012
#
from struct import *
from string import *
#caminho e nome do arquivo
path='c:\\Documents and Settings\\Danjovic\\Desktop\\'
file='NunJ2C.asm'
f=open(path+file,'rb')
tamanho=0
for line in f:
lline=line.strip() #remove terminador de linha
tamanho=tamanho+len(lline)+3 #2 bytes do numero da linha mais um byte do final de linha
print "Tamanho do arquivo:",tamanho
o=open(path+file+'.as','wb')
o.write('\xFE\x01\x00'+pack('<h',tamanho)+'\xFF\xFF'),
linha=0
incremento=10
f.seek(0) # reset posicao do arquivo
for line in f:
lline=line.strip() # remove terminador de linha
linha=linha+incremento # incrementa contador
print linha,lline #
o.write(pack('<h',linha)), # escreve numero da linha
o.write (lline), # escreve linha
o.write('\x00'), # escreve terminador (zero)
o.close() # fecha arquivos
f.close()
Nenhum comentário:
Postar um comentário