LENGUAJE ENSAMBLADOR
 

Antes de nada, os voy a contar por qué me parece interesante esto del Lenguaje ensamblador. Abajo podreis encontrar el acceso a los tutoriales.

 
  1. Aplicaciones en la Ingenieria del Software
  2. Aplicaciones en la Ingeniería inversa
  3. ¿Ensamblador para DOS o o para WINDOWS?

 

Hay ciertas situaciones en las que el lenguaje ensamblador muy útil:

CUANDO HAY IMPLICADOS GRÁFICOS >> Si un programa está  dibujando una imagen en la pantalla, tiene que trabajar muy rápido, o la espera seríaa intolerable. Si los objetos de la imagen se tienen que mover por la pantalla, el programa tiene que ser lo suficientemente rápido coma para hacer que el movimiento parezca normal.

CUANDO ES NECESARIO TOMAR MUCHAS DECISIONES O 'PENSAR' MUCHO >> Esto es a menudo necesario en programas de juegos complejos, tales como las damas o el ajedrez. El programa tiene que intentar y comprobar muchas posibilidades y decidir un movimiento que sea razonable.

IMPOSIBILIDAD DE IMPLEMENTAR MEDIANTE LENGUAJES DE ALTO NIVEL >> Existen ciertas aplicaciones que son imposibles, en realidad serían mucho más complejas de implementar, como la construcción de drivers para periféricos, o las famosas interrupciones del sistema operativo. El driver es el encargado de manipular un dispositivo, es decir, decirle como tiene que ejecutar una instrucción que le han suministrado. Las interrupciones de software ( ya que existen de hardware ), como preliminar, se podría decir que son 'instrucciones enlatadas', le hacen más fácil la vida al programador. Sobre todo son utilizadas para el control de la pantalla y su mayor utilidad el manejo de archivos.

El lenguaje ensamblador es el equivalente informático de una transmisión de cambio manual. Le da al programador mayor control sobre el ordenador a costa de algo más de trabajo, mayor detalle y menos comodidad.

TENEMOS UNA ASIGNATURA EN LA CARRERA...>> Pos nada que aparte del MC6800 algunas veces hace falta en la carrera, hacer algunos programitas para la familia 80x86

Bueno bueno, la mayoría de la gente que echeis un vistacillo a lo que viene después, lo hace por la "cara oculta de la fuerza", es decir si quieres aprender a crackear programas, hackear sistemas, hacer virus, etc; en la mayoría de estas aplicaciones interviene en menor o mayor medida el lenguaje ensamblador.

¡¡¡¡NOTA!!!!! ESTO NO QUIERE DECIR QUE VOY A EXPLICAROS COMO CRACKEAR COSILLAS, HACER VIRUS POR AQUÍ, HACKEAR SISTEMAS POR ALLÁ, PARA ESO TIENES ALGUNAS PÁGINAS QUE TE EXPLICARÁN MUCHO MEJOR QUE YO, COMO FUNCIONAN ESTOS ASUNTILLOS.

He querido destacar la diferencia entre estos dos tipos. En sí mismo se usan las mismas instrucciones, lo que pasa es que el estilo de programación es diferente. En el ensamblador para DOS las aplicaciones corren en formato CONSOLA, i.e sin ventanitas ni botoncitos, lo que equivale a decir que usamos las APIS de DOS.

En el ensamblador para WINDOWS, se crean aplicaciones de manera que estas se intercomuniquen con el sistema operativo a través de mensajes, etc. y usamos por tanto las famosas APIS de WINDOWS. Además aquí si usamos ventanitas y botoncitos, y todas las cosillas esas.

Como final quiero resaltar, que los siguientes tutoriales muestran la programación en Lenguaje Ensamblador para DOS. De todas maneras todo lo que aprendais aquí, os servirá como base para el ensamblador para WINDOWS ya que prácticamente son pocos cambios. También quiero destacar, que yo hace poco menos de un año que aprendí el lenguaje ensamblador, y que por tanto los siguientes tutoriales no reemplazan a otras guías que han escrito programadores expertos en el tema ( nuMIT or, Iczellion, etc. ), sin embargo, creo que hay información suficiente y ordenada de manera que sus vayais enterando de que va el tema.

La mayoría de la información la he recopilado de algunos libros que os detallaré para que los hojeis si queréis mayor información:

GUIA DEL PROGRAMADOR PARA EL IBM PC Y PS/2
Peter Norton yRichard Wilton
ED: ANAYA
Madrid, 1991

NUEVA GUIA DEL PROGRAMADOR EN ENSAMBLADOR PARA IBM PC,XT,AT
Peter Norton y John Socha
ED. ANAYA
Madrid,1991

PC INTERNO 5
Michael Tischer y Bruno Jennich
ED. MARCOMBO
Barcelona, 1996

También en la página de intel podeís encontrar mucha información, yo he usado los manuales:

Pentium(R) Processor Family Developer's Manual.pdf

Intel Architecture Software Developer's Manual Volume 1 : Basic Architecture.pdf

Intel Architecture Software Developer's Manual Volume 2: Instruction Set Reference Manual.pdf

Intel Architecture Software Developer’s Manual Volume 3: System Programming.pdf

 

 

IR AL INDICE DE LOS TUTORIALES
DISCLAIMER: No me hago responsable del uso indebido de los tutoriales o los códigos que haya en las siguientes páginas, éstos sólo son explicativos; además aunque los ejemplos los haya comprobado personalmente ( a no ser que se indique lo contrario), tampoco me hago responsable de los efectos que produzcan los códigos en tu ordenador