Primeros pasos
Diciembre 4, 2006
Ya tenemos bastante claro como funciona gtk y glade, como manejar árboles y todo eso. Además hemos descubierto un widget llamado gtksourceview que nos ahorrará algo de trabajo, es una caja de texto que colorea automáticamente un lenguaje determinado.
He programado la clase memoria, que simula una memoria (obvio) y la clase registros, que simula todos los registros internos del procesador, no sólo el banco de registros, sino también el PC, los flags, la instrucción actual…, hacerlo de esta manera soluciona algunos problemas que habíamos encontrado y hace más sencilla la programación.
Al módulo para cambiar entre bases numéricas he añadido dos funciones para pasar de decimal a complemento a 2 y viceversa. He pensado que es más sencillo llevar a cabo las operaciones internas pasando a decimal y operando que creando funciones que realicen operaciones binarias en complemento a 2. No sólo de cara a la máquina rudimentaria (el procesador que estamos implementando en primer lugar), sino sobretodo de cara a procesadores más complejos y con más operaciones.
También he programado un depurador de código de máquina rudimentaria y un ensamblador, ya que no encontramos ninguno libre disponible.
El depurador por ahora más que depurador es un chequeador de sintaxis, funciona básicamente con expresiones regulares, tan sólo avisa de unos pocos errores, pero la mayoría de veces lanza la excepción InstruccionNoReconocida, e indica la línea en la que se ha producido el error. Con el tiempo le iré añadiendo más funcionalidad.
El ensamblador no funciona con expresiones regulares, eso lo hace más eficiente, pero no se si vale la pena, porque el código queda mucho más ofuscado, tal vez lo rehaga más adelante con expresiones regulares, y si la diferencia de tiempos no es mucha usaré la segunda opción.
Tanto en el depurador como en el ensamblador no funcionan todavía los macros, pero es cuestión de poco tiempo que los haga funcionar.
Y por ahora eso es todo, hasta la próxima.
Jaime Cabot.
Entry Filed under: Uncategorized. .
3 Comments Add your own
Leave a Comment
Some HTML allowed:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>
Trackback this post | Subscribe to the comments via RSS Feed
1.
coli | Diciembre 5, 2006 at 3:29 pm
Saludos chicos. Por lo que veo vais a usar una tecnologia muy similar a la que vamos a usar nosotros en waltz. Python y PyGTK. Es muy interesante vuestro proyecto. Yo he chupado ensamblador de SPARC y de intel y SPARC me gusto bastante. Animo con el proyecto.
2.
itsistemas | Diciembre 25, 2006 at 12:35 pm
oye veo q sabeis bastante de ensablador me podriais ayudar a programar una funcion de SPARC q pasase de binario a decimal por favor
Si veo q alguien me responde mis dudas luego iran encaminadas al eGtk y al glade pero para eiffel asi q animos suerte con el proyecto
3.
jcabot | Diciembre 26, 2006 at 12:14 pm
El único ensamblador que conozco es el del procesador que estamos emulando (MR), que es muy sencillo. No tengo ni idea de SPARC, lo siento