Introducción a la Organización del Ordenador Usando Ensamblador con un Raspberry Pi

[Introduction to Computer OrganizationARM Assembly Language Using the Raspberry Pi] (http://bob.cs.sonoma.edu/IntroCompOrg-RPi/frontmatter-1.html) es un libro electrónico y gratuito que nos enseña cómo funciona el hardware, a bajo nivel, de un ordenador desde el punto de vista del programador. Para ello, se basa en uno de nuestros “juguetes” favoritos: Raspberry Pi, con Raspbian y usando lenguaje ensamblador para la arquitectura de la CPU de dicho dispositivo: ARM. El objetivo del libro es que el lector llegue a entender como funciona un ordenador desde el nivel más bajo.
Leer más

Tutorial sobre ensamblador para ARM

Mientras la arquitectura x86/x64 es la reina del microprocesador para ordenadores personales, ARM la es para dispositivos móviles y de bajo consumo. El entender el sistema a bajo nivel no es quizás uno de los requisitos para un programador web, pero sí lo es para escritores de exploits, o conducir tareas de ingeniería inversa. En este caso, tener un buen control y entendimiento del lenguaje ensamblador es esencial. En Cyberhades ya hemos publicado varias entradas relacionadas con el aprendizaje y conocimiento sobre la arquitectura ARM.
Leer más

Aprende ensamblador dibujando pixeles

Aprender a jugandoes probablemente la mejor forma de aprender. Esto es aplicable, yo diría, que a cualquier materia. En este caso la idea es aprender ensamblador o más bien la “forma de pensar” cuando nos sentamos a escribir código en ensamblador, ya que dependiendo de la arquitectura dicho lenguaje varía, pero las formas y metodología es prácticamente la misma. En box-256.compodemos pasar un buen rato jugando con un sistema ficticio de 8bits, con 256 bytes de memoria, 16 colores y pantalla de 16x16.
Leer más

Introducción a la programación ensamblador para Amiga

Amiga, un viejo conocido de Cyberhades y amado incondicionalmente por el que escribe, fue un ordenador revolucionario a mediados/finales de los 80s, principalmente por el potencial gráfico y el sistema operativo AmigaOS. Desde Reaktor nos traen una entradamuy didáctica sobre como programar en ensamblador para dicho sistema. La entrada comienza con la preparación del sistema, en el que usa el emulador FS-UAE(por lo que no necesitas tener un Amiga físicamente), la ROM Kickstart 1.
Leer más

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 Capstonehemos 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

Introducción a la arquitectura y programación sobre ARM

Cada vez son más los dispositivos que salen al mercado con procesadores ARM. No sólo teléfonos móviles y tabletas, sino dispositivos embebidos y pequeños como Raspberry Pi, Beaglebone, etc también incorporan dicha arquitectura. Si estás interesado en aprender más sobre ARM, este tutorial está dividido en dos partes: Introduction to ARMy Efficient C for ARM. El índice de la primera parte: Introduction to ARM, es el siguiente:
Leer más

Conversor de códigos de operación a instrucciones ensamblador online

Hemos visto en otras ocasiones desensambladoresy ensambladoresonline que no permiten tanto escribir nuestro código como el subir un fichero binario y obtener el resultado. En este caso la herramienta de la que os hablo, por ahora, sólo nos permite escribir código en hexadecimal (opcodes - códigos de operación), y ésta la convierte a las instrucciones ensamblador a las que dichos códigos corresponden. La herramienta se llama CEnigmay usa el framework de desensamblado quizás más moderno, Capstone.
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.
Leer más

Simulador de ensamblador de 8 bits

Esta es otra pequeña joyita con la que me he topado y que a alguno le traerá buenos recuerdos del pasado. Simple 8-bit Assembler Simulatores pues eso, un simulador de ensamblador de 8 bits. Está basado en NASM, provee una sintaxis simplificada y emula el funcionamiento de un procesador x86. La CPU obviamente es de 8 bits y además disponemos de un mapa de memoria de 256 bytes, así como de 4 registros de propósito general.
Leer más