versiones ventajas sirve que para español desventajas caracteristicas linux assembly x86

ventajas - ¿Cuál es la mejor manera de aprender el ensamblaje x86 en una plataforma Linux?



ventajas y desventajas de linux (10)

No tengo conocimiento previo de la programación en ensamblador y me gustaría aprender a codificar el ensamblaje x86 en una plataforma Linux. Sin embargo, estoy teniendo dificultades para encontrar un buen recurso con el que enseñarme.

El libro del Arte de la Asamblea se ve bien, pero enseña HLA. No estoy interesado en tener que aprender de una manera, y volver a aprender todo de nuevo. También parece que las arquitecturas RISC tienen mejores recursos para el ensamblaje, pero desafortunadamente no tengo un procesador RISC para aprender. ¿Alguien tiene alguna sugerencia?


Aprendí el ensamblador x86 de un libro sobre el 8086 (del cual no recuerdo el nombre en este momento ... obviamente era bastante antiguo, y morado. Si estás realmente interesado, puedo desenterrarlo cuando llegue a casa) . Eso solo te enseñará cosas de 16 bits, para las cosas más avanzadas de 32 bits, leí algunos tutoriales en línea. Nunca he hecho 64 bits. Al menos al principio, el sistema operativo al que apuntas probablemente no importará, ya que eres de muy bajo nivel ... el BIOS es todo lo que realmente te importa. Si no tiene acceso a un sistema de prueba, un emulador es probablemente una buena opción, como han mencionado otros, pero también puede construir un 8088 o 8086 sin demasiados problemas con piezas discretas. Puede encontrar tutoriales y diagramas de circuitos en línea fácilmente. Debería costar menos de $ 50 y es una gran experiencia de aprendizaje; básicamente, estás construyendo una placa base desde cero.

Si no está demasiado apegado al ensamblaje x86 y desea aprender RISC, recomiendo los microcontroladores Microchip PIC. Puede recoger un kit de inicio por menos de $ 50 (el PICKit 1, que tengo, incluso funciona en Linux). Tienen una amplia documentación y muchos tutoriales de terceros dirigidos a los aficionados.


Aunque muchas personas que conozco en la escuela odiaban este libro, lo vincularé de todos modos:

http://www.amazon.com/Professional-Assembly-Language-Programmer/dp/0764579010

La razón principal por la que utilicé este libro es porque usa x86 en Linux con el ensamblador GNU. Ese último punto me ayudó porque tuve que usar ese ensamblador en el laboratorio de nuestra escuela, y si no lo sabe, la sintaxis es diferente de la sintaxis de Intel.

Además, solo agregaría que aprender cómo los lenguajes de alto nivel se compilan en lenguaje ensamblador realmente me ayudó a seguir adelante.


El arte de la programación del lenguaje ensamblador


El ensamblaje x86 es realmente un lenguaje intel, mejor aprendido con un chip intel y una plataforma Windows que hace DOS

Si tienes algo como WinXP solía haber un intérprete de DOS que mostraba a un usuario los conceptos básicos de asm y permitía a un usuario invertir un comando y modificar el código en tiempo real, luego ensamblar el código en un bloque que se podía ejecutar en el Interprete

Fue llamado el "intérprete Ketman"

Fue solo para DOS asm, pero fue bastante único porque te permite ver lo que sucede con todos los registros y banderas y permite que un individuo totalmente despistado pueda manejar la lógica


En realidad, hay dos partes para aprender la programación a nivel de ensamblaje: los conceptos básicos y luego las arquitecturas específicas. Si no ha tenido ninguna exposición a la programación de ASM, le recomiendo encarecidamente que primero obtenga los elementos básicos con una arquitectura simple y pequeña, incluso aunque probablemente no sea directamente aplicable a ningún hardware real. Si muchas personas apuntan a un recurso en particular como "El arte de ...", échele otro vistazo, utilícelo para conocer qué es una arquitectura, cómo usar las herramientas básicas (asm, depurador, desasimiento, etc.).

Una vez que estén fuera del camino, puede comenzar a buscar conjuntos de instrucciones más avanzados. La arquitectura x86 y el conjunto de instrucciones son bastante intrincados y hay muchas formas oscuras de torcer tu cerebro: aprende algo simple antes de abordarlo.


Encontré el lenguaje ensamblador paso a paso como un muy buen recurso. Tiene una sección en la parte posterior que apunta al montaje de Linux también.



Pruebe http://www.emu8086.com que es un emulador 8086 alojado en Windows con un ensamblador y depurador. Viene con un tutorial.



http://asm.sf.net tiene algún material sobre arquitecturas además de x86.

Si está interesado en arquitecturas RISC, puede ejecutar Linux en Qemu . Qemu emula varias arquitecturas RISC como PowerPC, ARM y MIPS. Es posible que pueda encontrar una imagen de disco duro Qemu lista para usar here .

Otra forma de experimentar con las arquitecturas RISC sería usar el simulador incorporado de gdb.