Compilador interactivo de C/C++

Cuando haces ingeniería inversa a un binario (del cual no dispones del código fuente), no es sólo importante tener conocimientos de ensamblador, la pila, montículo (heap), registros, etc sino también es importante conocer los pequeños trucos y patrones que usa el compilador/es a la hora de generar el código binario. ¿Cómo se traduce una instrucción if? ¿y un switch? ¿bucles? ¿operaciones con punteros? ¿arrays? ¿construtores/destructores en C++? ¿Intel, ARM? etc
Leer más

Aprende ensamblador de una manera fácil y segura

Para aprender a programar en ensamblador y sentir el hardware un poco más cerca, nada mejor que empezar con una arquitectura sencilla, con pocas instrucciones y simple. El proyecto YASP es un entorno de desarrollo de ensamblador totalmente funcional basado en la web, es decir, todo lo que necesitas es un navegador para poder usarlo. YASP provee de un ensamblador real, emulador y depurador, además de simulador de hardware sencillo.
Leer más

Introducción al ensamblador del 6502

Hace un tiempo publicamos una entrada con el mismo título que esta, donde os hablamos sobre un tutorial sobre la programación en ensamblador del microprocesador 6502. La razón de está entrada es que Jorge Acereda ha hecho una traducción íntegra de dicho tutorial en nuestra lengua. Si el inglés se interpuso entonces en tu camino, ya no tienes excusa para aprender un poco de ensamblador y 6502
Leer más

Disponible el código fuente de la mítica demo "Second Reality" de Future Crew + análisis del mismo

Antes de empezar, vamos a deleitarnos otra vez con la mejor demostración gráfica de todos los tiempos: httpv://youtu.be/rFv7mHTf0nA Second Reality fue una "demo" programada por Future Crew para la demoparty Assembly 93. Después de ganarla pasó a la posteridad por su gran calidad en la programación de efectos gráficos (no falta ni uno) y de la música. Pues los chicos de Future Crew han celebrado su 20 aniversario de la forma que más nos gusta a los geek como nosotros, publicando el código fuente original de la demo que puedes descargar aquí (el código se publicó el 30 de Julio de este mismo año.
Leer más

Microhistorias: la pantalla de la muerte (kill screen) de otro juego clásico, Galaga, y como superarla

Galaga, foto Wikipedia La mayoría de juegos clásicos arcade tienen su propia kill screen. Normalmente aparece cuando hemos llegado a un nivel 255 y pasamos al 256, dando en casi todos los casos errores del tipo overflow con resultados inesperados y muy curiosos. En CyberHades ya hemos hablado de algunas como la del mítico Pac-Man y Donkey Kong. Pero lo mejor es que hay gente muy geek que no se ha conformado con llegar a estas pantallas y ver qué ocurre, también han encontrado soluciones a nivel de código (la mayoría modificando el emulador MAME) para poder superarlas.
Leer más

Introducción a la programación en ensamblador x64 (PDF)

Si te ha costado casi toda una vida aprender más o menos a programar en ensamblador para x86 ;) (como es mi caso), ahora tienes que ir preparándote para programar en x64. Es imprescindible aprenderlo si sueles programar y quieres sacar el máximo partido a esta arquitectura (por ejemplo insertar parte de tu código en ensamblador x64 en tus programas). También es útil si tienes que hacer debugging o desensamblar programas.
Leer más

Desarrolla tu propio sistema operativo para Raspberry Pi

Para aquellos que os interese la programación sistemas operativos, nada mejor que empezar sobre una plataforma sencilla y por su sencillez y precio nada como un Raspberry Pi. En este link de la Universidad de Cambridge podemos encontrar un curso de como crear un sistema operativo simple sobre un Raspberry Pi usando lenguaje ensamblador. Aunque para el curso no se necesitan conocimientos previos sobre sistemas operativos, a bajo nivel o incluso conocimientos de ensamblador, sí que se aconseja el menor tener conocimientos sobre programación.
Leer más

Introducción al ensamblador del 6502

Los que sigáis el blog desde hace algún tiempo ya sabréis que nos gusta la programación retro, es decir, programación de tecnología antigua y obsoleta que ya no se usa, pero que en su día fueron joyas. El motivo de esta entrada es la de hablaros sobre este tutorial de introducción al lenguaje ensamblador del microprocesador MOS 6502, chip que incluía sistemas como el Atari 2600, Commodore 64 o la consola NES entre otros.
Leer más

El nuevo juego del creador de Minecraft se basa en la programación en ensamblador

Pues sí, el juego llamado 0x10^c (elevado a "c") y se desarrolla en un universo de Ciencia Ficción donde un error en un ordenador hace hibernar en 1988 a toda la Humanidad hasta trillones de años en el futuro, cuando el Universo casi está desapareciendo. Tendrá batallas estelares contra la IA o incluso otros jugadores, etc, pero lo mejor es que todo el juego gira alrededor de un ordenador de 16 bits llamado DCPU-16 (el único sistema que había en 1988).
Leer más

Introducción a la programación ensamblador en Android

Ya todos sabemos que el lenguaje de programación es Java. Luego Google liberó lo que le llaman las NDK (Native Development kit), un conjunto de herramientas y librerías que te permiten tener un poco más de control sobre tus aplicaciones. En este caso programamos en C o C++ y entre medio hemos visto también la posibilidad de programar usando lenguajes de script como Lua, Python, PHP, etc. En esta entrada podemos ver un tutorial compuesto por varias partes, en estos momentos 8, donde nos guían desde los más básico como preparar nuestro entorno hasta la ejecución de código ensamblador en Android usando las anteriormente mencionadas NDK, pasando una ligera introducción al ensamblador de micros ARM.
Leer más