Destripando una instrucción en lenguaje ensamblador X86

La función más importante en un desensamblador es la conversión o recomposición de las instrucciones en lenguaje ensamblador a partir de los códigos de operacion (OP / operation code). En la arquitectura X86, a diferencia de otras, la longitud en bytes de una instrucción, varía dependiendo de la instrucción en sí y de los operandos sobre las que ésta actúa. Últimamente, gracias en entre otros a proyectos como Capstone hemos visto el lanzamiento de desensambladores de todo tipo, así como la migración o adaptación de desensambladores previamente existentes a este motor.
Leer más

Vídeo tutoriales sobre introducción a la programación en ensamblador

Aquí tenéis una buena colección de vídeos muy cortos y específicos sobre programación en ensamblador x86 (Windows). Son tutoriales de iniciación muy instructivos. Tratan desde instalación del entorno que necesitas para seguir los ejemplos, conceptos básicos, pero indispensables en el entorno ensamblador, hasta ejemplos específicos de diferentes instrucciones. El autor de los vídeos Rasim Muratovic, usa como base para los mismos el libro Assembly Language for x86 Processors. Introduction to Assembly Programming Language Assembly 1 - Installing MASM32 SDK Assembly 2 - Integer Constants Assembly 3 - Integer Expressions Assembly 4 - Real Number Constants Assembly 5 - Character Constants Assembly 6 - String Constants Assembly 7 - Reserved Words Assembly 8 - Identifiers Assembly 9 - Directives Assembly 10 - Directives - Part 2 - Defining Segments Assembly 11 - Instructions - Part 1 - Labels Assembly 12 - Instructions - Part 2 - Instructions Mnemonic Assembly 13 - Instructions - Part 3 - Operands Assembly 14 - Instructions - Part 4 - Comments Assembly 15 - Installing emu8086 and Printing Hello World!
Leer más

Assembly, arte digital en su estado más puro

No, en esta entrada no vamos a hablar del lenguaje de programación ensamblador, sino de en evento que se celebra cada año y reúne a un número importante de geeks, entusiastas, jugadores, programadores, etc. Este evento llamado Assembly se lleva celebrando desde el año 1992. En este evento se celebran varios tipos de competiciones y actividades. Por ejemplo tenemos competiciones de juegos (eSports), a nivel profesional y amateur: Professional tournaments
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

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

Introducción a ensamblador, videotutorial

Una vez más en SecurityTube podemos encontrar otra buena colección de vídeos, esta vez sobre una introducción al ensamblador. Assembly Primer For Hackers (Part 1) System Organization Assembly Primer For Hackers (Part 2) Virtual Memory Organization Assembly Primer For Hackers (Part 3) Gdb Usage Primer Assembly Primer For Hackers (Part 4) Hello World Assembly Primer For Hackers (Part 5) Data Types Assembly Primer For Hackers (Part 6) Moving Data Assembly Primer For Hackers (Part 7) Working With Strings Assembly Primer For Hackers (Part 8 ) Unconditional Branching Assembly Primer For Hackers (Part 9) Conditional Branching Assembly Primer For Hackers (Part 10) Functions Assembly Primer For Hackers (Part 11) Functions Stack
Leer más

Tabla de instrucciones ensamblador del Intel 80x86

Esto no es más que un PDF (aquí en inglés) muy bien organizado con las instrucciones de ensamblador del 80x86, los registros generales y los bits de estado o bandera (flag). Página original.
Leer más

ARobots

ARobots es un juego de batalla entre robots que se desarrolla en un área de 1 km cuadrado. No, no usas joystick, pad o ratón. Tu jugador tienes que programarlo en ensamblador 8086. El juego acepta hasta 6 robots en una misma batalla. Los robots van perdiendo vida o incrementando el daño cada vez que hay una colisión o cuando un misil explota a menos de 40 metros del mismo.
Leer más

La demo "1995", una de las últimas joyas de la demoscene

Ya que NOP ha publicado el video de la fantástica demo "Second Reality" de Future Crew, voy a retomar un poco el tema de la demoscene. Que tiempos aquellos por 1995, momento cumbre cuando grupos como Iguana o Future Crew llenaban de obras de arte todas las party y las bbs. He leido en PixFans un análisis de una demo bastante reciente, 2006, del grupo Kewlers que se presentó al evento más famoso de las demos, la Assembly (que por cierto continúa).
Leer más