You Are Browsing ‘Programación’ Category

Aprender a programar un Terminator y a Bender de Futurama (o también como aprender a programar un MOS 6502)

by cybercaronte - on Ene 5th 2017 - No Comments

 

https://farm1.staticflickr.com/766/32125758245_2280c0cedb.jpg 

Link

Con el auge de la IA ya sabemos que Skynet está cerca y con ella los famosos Terminator. Como todos sabéis los Terminator están programados con este procesador así que es el momento perfecto para aprender a programar un MOS 6502 y así poder re-programarlo y convertirlo en un Roomba. También nos puede ayudar a programar a nuestro querido Bender de Futurama como podéis ver en la imagen que encabeza este post.

Ahora en serio, la primera pregunta que podemos hacernos es ¿por qué tendría que aprender a programar ensamblador con el microprocesador MOS 6502?. Primero, porque programar siempre es divertido 😉 y mucho más si es en ensamblador. Segundo, porque muchos ordenadores y video consolas clásicas fueron diseñadas utilizando este microprocesador como CPU, por ejemplo: BBC Micro, Atari 2600, Commodore 64, nuestro querido Apple II e incluso la famosa NES. Por otro lado este lenguaje ensamblador también es un buen comienzo para aprender a programar microprocesadores más potentes y además es perfecto para entender el funcionamiento en uno de los niveles más bajos de un ordenador (después del ensamblador sólo te queda el código máquina).

Este fantástico artículo está dividido en los siguientes apartados:

Además puedes practicar directamente en el página web ya que utiliza un simulador de 6502

Le he estado echando un vistazo y si tienes una base mínima de programación, llegarás a entenderlo y programarlo en una tarde (incluso como puedes observar en la lista de apartados, al final crearás un pequeño juego).

Enlace original:

https://skilldrick.github.io/easy6502/

Entradas relacionadas:

Definiendo estructuras de datos desconocidas

by tuxotron - on Dic 22nd 2016 - No Comments


kaitai_srtuct.png

Cuando tenemos que enfrentarnos a ficheros binarios del tipo ELF, PE, etc, o cualquier otro tipo de fichero cuya estructura es conocida, es “relativamente fácil” extraer mucha información sobre los mismos. Cuando tenemos que lidiar con ficheros o simplemente datos binarios (paquetes de datos de red, datos en memoria, etc) cuya estructura es desconocida, es prácticamente imposible extraer información útil, a menos que le demos forma a los datos de forma que tenga sentido.

Una herramienta que está teniendo bastante atracción últimamente en esta área es Kaitai Struct. Ésta, según su propia definición es un lenguaje declarativo usado para describir estructuras de datos binario, paquetes de red, etc. El proyecto es Open Source, e incluyo un compilador (más bien transpilador), visualizador y algunos ejemplos.

La definición de un formato específico se expresa en el lenguaje Kaitai Struct (se usa la extensión de fichero .ksy). Éste después es “transpilado” (vaya palabra más fea) por withksc  en código fuente de alguno de los lenguajes soportado: C++/STL, C#, Java, JavaScript, Perl, PHP, Python o Ruby, (más en el futuro).

Si todo esto es nuevo para ti, en Avatao tienes un pequeño curso introductorio con varios retos a resolver.

En el wiki del proyecto también tienes algunos tutoriales. Para empezar deberías mirarte la documentación oficial.

También tienes la posibilidad de jugar con esta herramienta online.

Entradas relacionadas: