Programación en Lenguaje Ensamblador

-El Verdadero Lenguaje de las Máquinas-

De la Tierra a la Luna

–Windows… tenemos un problema–

lo que veo todos los dias

Hace no mucho tiempo se celebraron los 40 años de la llegada del ser humano a la luna. Este viaje siempre estuvo envuelto en la controversia tanto por su trasfondo político como por sus implicaciones religiosas. Sin embargo, la queja mas común era y sigue siendo sobre la utilidad práctica de dichos viajes. ¿Que hay de valor en la luna? No voy a entrar en detalles sobre esto porque este blog trata de la programacion en Ensamblador. Solo haré mención de que transportar materiales entre la tierra y la luna es exageradamente costoso. Como proporción, cada kilogramo de materia transportada le cuesta a la NASA el equivalente a ¡3.5 kilos de oro! Así que sea lo que encuentren ahí tiene que valer por lo menos 3.5 veces mas que el oro para que el viaje valga la pena. Lo mismo se aplica para los materiales que proceden de la Tierra. Por lo que se dice que si a mediano plazo se quiere hacer algo productivo en la Luna la única manera es utilizar los propios recursos existentes en dicho satélite.

¿Y que tiene que ver todo esto con programar en Ensamblador? Pues que lo que me ha pasado hasta ahora con Linux es exactamente eso, me está costando demasiado mover programas y archivos entre ambos sistemas. Asi que llegué a la conclusión de que mejor programo en Linux sin mas intervención directa del Windows que el hacerla de anfitrión de la máquina virtual. Asi que es mejor que me ponga a estudiar como funciona el maldito intérprete de comandos que hasta ahora es la única cosa mas o menos común a todas las extrañas y heterogeneas distribuciones de Linux con las que me he topado. Aunque al ver comandos como mkdir, y cd .. no dejo de acordarme del viejo MS-DOS.

¿Pero cual es el propósito de todo esto? ¿No sería mas sencillo quedarse a programar en Windows que es donde está la mayor ganancia y simplemente ignorar a los hippies de Linux? La respuesta es simple. Del modo que hay productos que solo pueden ser fabricados en el espacio hay muchas cosas que es mucho mas sencillo desarrollar en Linux, y no solo a nivel tecnológico, sino incluso legal. La verdad ya me estoy cansando de la gente de Micro$oft me niegue documentación y cuando al fin me la da no son mas que catálogos de sus productos disfrazados de “kits de desarrollo”. O esos permisos por lo que uno paga cientos de dolares tan solo para que le digan como llamar a una API prefabricada que de paso te amarra al lenguaje de programación que ellos quieren (y que por supuesto nunca es el Ensamblador).  Al menos en Linux puedo investigar a mayor profunididad sin tener que pagar ni exponerme a acciones legales por revertir código.

Adaptar un programa hecho en Ensamblador que funcione por igual en Windows y Linux no es demasiado dificil como lo demostró el autor del FASM, este compilador usa el mismo nucleo en todas sus versiones (Linux, Windows y Unix) y únicamente cambian los módulos que interactuan directamente con el sistema operativo de modo que solo hay que cambiar un par de instrucciones “Include” para tener un FASM para otra plataforma. Una especie muy refinada del mentado Polimorfismo que tanto mencionan las niñitas de la OOP. Y pensar que aún hay quien dice que el Ensamblador no es portable…

Aquí es donde se divide el asunto: Una parte es la aventura de explorar el Linux y la otra es seguir programando en Ensamblador para Windows. Mas adelante, y ya cuando haya establecido una “base” en el territorio de Linux, veré como mandar por los refuerzos y comunicar ambos, pero antes que eso, hay que hacer un desarrollo por ambas partes. Pues hasta ahora, he llegado a un punto donde no puedo seguir programando con un editor normal. El primer paso será arreglar este ligero inconveniente.

Anuncios

julio 21, 2009 - Posted by | Uncategorized | , ,

4 comentarios »

  1. ¿mkdir y cd? Comandos heredados de los primeros Unix y no son los únicos, por eso los usa DOS que no está ni remotamente cerca de ser tan viejo como Unix y los sigue usando cualquier intérprete de comandos en linux. (Por que hay varios, no solo uno como el pobre command.com de M$).

    Siempre interesantes tus artículos, me sacan como mínimo una sonrisa en algún momento. :D

    Saludos!

    Comentario por malditonerd | julio 22, 2009 | Responder

  2. Es cierto Cartman, dejate de jaladas, e instala Linux en una maquina aparte y empieza a programar, que eso es lo tuyo.

    mov [Cartman],100 ;Te ganaste unos puntos extras

    Saludos!

    Comentario por El Julio | julio 23, 2009 | Responder

    • Eso de instalar el linux aparte lo hice hace alla por el 2006 y no logre nada. En cambio, virtualizando linux en una laptop al menos puedo llevar ambos sistemas a casi todas partes en lugar de estar cargando 2 maquinas.
      Por cierto, para sumar 100 puntos extras la instruccion mas bien seria:

      add [Cartman], dword 100

      porque con el mov, solo escribes 100 en [Cartman] en lugar de sumarselos.

      Comentario por asm86 | julio 23, 2009 | Responder

  3. Jajaja, de todos modos tenias CERO puntos, ya le di un reset a tu variable.

    Pues ya esta, crea tus programas en tu laptop y correlos en la maquina que le instalaste Linux en el 2006.Puedes crear una pequeña red o algun medio que te facilite el traspaso del archivo.

    Una opción es utilizar particiones y arrancar tu laptop con el sistema operativo que necesites, y asi pasar de un sistema operativo a otro.

    No se, solo es una idea,mi vieja Pentium III cargaba los dos sistema muy bien y podia compartir archivos de un sistema a otro.

    Saludos.

    Comentario por El Julio | julio 23, 2009 | Responder


Responder

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

A %d blogueros les gusta esto: