2010-11-18 17 views
10

Solo por el placer de hacerlo, me he interesado por el aprendizaje del ensamblaje. El problema es que no puedo encontrar un buen punto de partida ...Quiero aprender a ensamblar, confundido acerca de dónde empezar

Parece que hay muchos ensambladores disponibles (FASM, NASM, YASM, MASM) pero cada uno tiene su propia sintaxis, comandos y características. FASM parece ser el más conveniente, ya que puede compilar ejecutables sin un enlazador, pero no he podido encontrar ningún tutorial para comenzar. Todos los ejemplos de "Hello World" que he visto son de 16 o 32 bits, pero me estoy ejecutando en Windows de 64 bits, por lo que ninguno de ellos funciona. Los ejemplos de Windows incluidos con FASM funcionan, pero no busco entrar en la programación de Windows desde el principio, quiero comprender lo básico primero.

¿Alguien puede indicarme la dirección correcta?

+3

Si quiere comprender lo básico primero, ¿consideraría hacer algunos dispositivos simples con un microprocesador basado en PIC o AVR? Utilizarías un conjunto de instrucciones mucho más simple y probablemente podrías recoger las cosas más rápido. –

+2

@Jonathon: Paradójicamente, su simplicidad puede hacer que sea más difícil de aprender a usar. Por ejemplo, sin una instrucción de multiplicar o dividir, necesita escribir una rutina (algo no trivial) para manejar eso. –

Respuesta

2

Los ejemplos de 32 bits deberían funcionar aunque su sistema operativo host sea de 64 bits.

Además de eso es la diferencia entre un 32 y un Hello World 64 bits sólo 2 personajes:

include 'win64ax.inc' 

vs

include 'win32ax.inc' 
3

No soy experto en el montaje, pero es algo esencial, al menos familiarizado con, en informática. En una clase de ingeniería informática utilizamos SPIM de James Laurus, un simulador de arquitectura MIPS para Windows. Creo que es un buen punto de partida. Puede encontrar una hoja de referencia de MIPS a través de la búsqueda en Google, así como algunos tutoriales.

El montaje es genial porque es esencialmente el lenguaje de la máquina. ¡Feliz hacking!

+1

El ensamblaje MIPS es simplemente más simple y fácil de aprender que x86, por lo que es un muy buen lugar para comenzar. – Crashworks

+1

El ensamblaje MIPS es esencialmente obsoleto. Si quieres algo agradable y no te importa que sea obsoleto, aprende el lenguaje ensamblador de PDP-11. –

+1

MIPS está un poco más cerca del estilo de RISC utilizado por los procesadores modernos, y hay mejores simuladores y herramientas de enseñanza para él que para (digamos) PPC. Aprendí en Sparc primero, y sí, es obsoleto, pero las habilidades se transfirieron lo suficientemente bien que pude recoger MIPS un día después (cuando todavía estábamos vendiendo productos electrónicos de consumo con MIPS en ellos). – Crashworks

1

Es aburrido aprender ensamblador sin ningún objetivo.

¿Podría recomendarle que compre cualquier kit de robot? Como sé, los robots RoboSavvy son administrados por assmeblers/C .. Otros pueden tener solo DSL.

http://robosavvy.com/site/

P. S. Aprendí assembler cuando necesitaba hacer trampa en los juegos. Pero hoy elegiría kits de robots.

+0

Lo que quiere decir es "Personalmente, creo que es aburrido aprender a ensamblar sin ningún objetivo". –

5

Si desea aprender a leer ensamblados, le recomiendo aprender a usar WInDbg o IDA Pro como depurador principal. Aprender no solo qué hacen las instrucciones, sino cómo un compilador de C++ traduce idiomáticamente su código fuente al ensamblado le ayudará aprender mucho mejor que si estás haciendo 100% Ejemplos de montaje artificiales

2

Ésta es la mejor introducción x86 ASM que he encontrado:

http://www.drpaulcarter.com/pcasm/

Hay una versión en PDF de su libro en esa página . Comienza desde lo básico y avanza. Obtuve todo el conocimiento ASM fundamental que necesitaba solo con este libro (creación de marco de pila, convenciones de llamadas, interoperabilidad c, solo para nombrar un par).

0

Si eres un gran maestro y quieres aprender el ensamblaje mejor para obtener el conocimiento ASM primero. En segundo lugar, intente aprender la lógica básica detrás de cada código. 3. disfruta el idioma cuando intentes averiguar si estás interesado, de lo contrario déjalo.

Cuestiones relacionadas