Programación en Lenguaje Ensamblador

-El Verdadero Lenguaje de las Máquinas-

¡Al fin un código en Ensamblador!

Es sorprendende como aún cuando no he mostrado una sola linea de código, hay gente que me dice que se programar. A continuación muestro un sencillo programa en ensamblador para Windows. Este humilde codigo viene incluido en los ejemplos del FASM en la carpeta “examples” y es excelente para aprender a programar porque es codigo puro. Es decir, no usa macros, estructuras complicadas, etc.

Lo único que hace este código es mostrar una caja de diálogo que dice Hola Mundo y que programar es muy fácil. Mas adelante revisaremos este código linea por linea. Pero sobre todo, este programa no fue hecho por mi, asi que cualquiera puede tener acceso a él si descarga la última versión del FASM. Para compilarlo hay que abrirlo con el compilador fasmw y oprimir F9.

----------------------------------------CORTE AQUI----------------------------------------------------

; Example of making 32-bit PE program as raw code and data

format PE GUI

entry start

section '.code' code readable executable

  start:

        push    0

        push    _caption

        push    _message

        push    0

        call    [MessageBoxA]

        push    0

        call    [ExitProcess]

section '.data' data readable writeable

  _caption db 'Win32 assembly program',0

  _message db 'Hello World!',0

section '.idata' import data readable writeable

  dd 0,0,0,RVA kernel_name,RVA kernel_table

  dd 0,0,0,RVA user_name,RVA user_table

  dd 0,0,0,0,0

  kernel_table:

    ExitProcess dd RVA _ExitProcess

    dd 0

  user_table:

    MessageBoxA dd RVA _MessageBoxA

    dd 0

  kernel_name db 'KERNEL32.DLL',0

  user_name db 'USER32.DLL',0

  _ExitProcess dw 0

    db 'ExitProcess',0

  _MessageBoxA dw 0

    db 'MessageBoxA',0

section '.reloc' fixups data readable discardable       ; needed for Win32s

----------------------------------------CORTE AQUI----------------------------------------------------

Bueno, al menos para los que buscan un código en ensamblador pueden estar satisfechos con esto. Comencemos por analizar las primeras lineas:

linea #1:

; Example of making 32-bit PE program as raw code and data

Para quienes no les alcanzo el dinero para estudiar inglés en una escuela de prestigio como el “Harm On Hole”,como a mi, lo que dice esa linea es: Ejemplo de como hacer un programa de 32 bits PE(Portable Executable) como código y datos puros. El punto y coma con el que comienza esta linea es el indicador de comentario. Todo lo que esté entre un punto y coma y el fin de la linea es ignorado por el compilador. Los comentarios son vitales para los programadores humanos porque les permiten controlar codigos de varios miles de lineas, o sea casi cualquier programa escrito en Ensamblador.

Linea #2:

Esta es una linea en blanco, al igual que los comentarios, las lineas en blanco son importantes para mantener un programa bajo control. Piensen en estas lineas como las barras que se colocan para separar la mercancía de los diferentes clientes cuando van a pagar a las cajas del HEB.

Linea #3:

format PE GUI

En esta linea le decimos al compilador que el ejecutable final es un PE (Portable Executable) que es el formato de los programas ejecutables de windows. Formato que por cierto está basado en el ejecutable de UNIX. Lo de GUI significa Graphic User Interface. Lo que significa, que usaremos ventanas, iconos, mouse, etc. Y no una pantalla negra con letras grises, para hacer uno de estos se cambia la palabra GUI por CONSOLE.

Bueno, ya fue demasiado esfuerzo intelectual para una sola sesión. En otras notas seguiré desmenuzando este código linea por linea. Para que se vayan dando una idea, los renglones que comienzan con la palabra “section” son indicadores de secciones. Un programa en Windows se divide en secciones con diferentes propiedades. Algunas contienen código ejecutable, datos, información para el sistema, etc. Debo advertirles que la sección donde dice ‘idata’ fue la que mas problemas me dio la primera vez que me tope con este código. Pero este archivo fue en su tiempo el que realmente me indicó el camino a seguir en esto del ensamblador para Windows.

Para quienes quieren aprender a programar les recomiendo que impriman este artículo, corten el código por la linea punteada y lo peguen en la pared en un lugar visible. Porque van a necesitarlo como referencia durante por lo menos un mes. Y para los que nada mas vienen por la botana y a ligar, les recomiendo que también lo peguen en su cuarto para impresionar a las visitas. Nada mas cámbienle los comentarios para que no queden como lamers. No sea que a quien quieran impresionar realmente sepa lo que la hoja dice.

About these ads

diciembre 23, 2008 - Posted by | Uncategorized | ,

3 comentarios »

  1. la paz sea contigo

    hasta que por fin pusiste un codigo en ensamblador
    oie tengo algunas dudas, he estado dando la vuelta en el mismo lugar(segmento de codigo) despues te digo sobre que es
    ok
    por el momento es todo

    oie no te dije entre a la secta
    El Libro de Urantia
    jaajjajjajja
    despues te digo
    see ya

    Comentario por Roberto Carlos | diciembre 24, 2008 | Responder

  2. RAMEN

    Comentario por Roberto Carlos | diciembre 24, 2008 | Responder

  3. aaaaaaaaa ke no sabes ke
    el malnacido de ese ser de la dimension desconocida
    mejor desarrollador de videojuegos me puso
    N/A
    si N/A
    como ves
    hare un complo con mi secta
    y lo destituire de su cargo
    jjajjaajjajaja
    ok see ya

    Comentario por Roberto Carlos | diciembre 24, 2008 | Responder


Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

Únete a otros 45 seguidores

A %d blogueros les gusta esto: