Programación en Lenguaje Ensamblador

-El Verdadero Lenguaje de las Máquinas-

MOV AX, @DATA

Este diá hablaré de mis primeras experiencias con el Ensamblador. Hace ya años, cuando aún me quedaba algo de fe en la educación universitaria, llevé una clase de ensamblador con un maestro tan ignorante pero tan ignorante en la materia que hasta resultaba divertido verlo dar clase, tal personaje, que si me lo piden en los comentarios publico su nombre y foto, pretendía como ya dije dar la clase de ensamblador.

Veamos algunos antecedentes, esa clase la llevé mas o menos en el 2000 y la tecnología que veíamos era… ¡Adivinaron! ¡De 16 bits!. Y para colmo usaba una copia pirata y obsoleta del Borland Turbo Assembler que si bien fue muy bueno en su tiempo, apenas era capaz(el compilador, no el maestro) de generar código para 286. El segmento de código, invariablemente iniciaba con estas dos instrucciones:

MOV AX,@DATA

MOV DS, AX

Estas dos instrucciones eran por lo demás misteriosas, pues nadie sabía realmente que hacían.Ni siquiera el maestro, quien se limitaba a contestar con mirada de perdonavidas que si no poníamos esas lineas el programa no funcionaría. Algún tiempo después me enteré que lo que hacía esta rutina era guardar en el registro de segmento DS, la posición del segmento de datos. Es verdaderamente triste que por culpa de maestros ignorantes se desprestigie la programación en ensamblador. Opino que hay que dejarle la programación de 16 bits a los fanáticos de los emuladores y enseñar a programar a los estudiantes en sistemas de 32/64 bits, o por lo menos de algún CPU que se pueda encontrar fuera de los museos. Por cierto, me dijeros que en el plan de estudios actual de esa universidad (con minúscula) ya no se imparte la materia de Ensamblador. Esto en realidad es bueno porque ya no seguirán desprestigiándolo. Lo triste es que esto se repite en casi todas las universidades latinoamericanas se repite la misma historia, (aún en esa en que uno paga 8000 dólares americanos por semestre) lo mejor que uno puede encontrar es un lugar en donde, aunque no sepan nada de Ensamblador, por lo menos no lo odien.

Esta es una advertencia para los quinceañeros que piensan estudiar una carrera de ingeniería en computación. No esperen que en ninguna universidad les enseñen a programar, y en algunas puede que ni siquiera se los permitan. Y el ensamblador es definitivamente un arma prohibida. Estudia una carrera universitaria si es lo que te pide tu familia y sociedad; pero si realmente quieres programar te advierto que estarás solo. Al menos consulta este blog de cuando en cuando para saber un poco sobre lo que nunca verás en las aulas.

En realidad no se de donde viene tanto odio contra el Ensamblador. Quiero pensar que por la mala fama que le han dado maestros mal preparados que enseñan código obsoleto o porque es tan dificil dominarlo que es virtualmente imposible formar un grupo de desarrollo para un proyecto mas o menos grande. O podría ser porque es el arma de elección de diversos tipos de criminales tecnológicos como los crackers que rompen la protección contra copias de material comercial. Hay quienes dicen que porque no es portable, aunque la mayoría de las computadoras para civiles usan procesador Intel o compatibles. De lo único que estoy seguro es que ningún otro lenguaje de programación me da la velocidad, control y eficiencia que me da el ensamblador, que es lo mas cercano que un mortal puede acercarse a una computadora sin programar en código máquina. Realmente vale la pena aprender ensamblador si uno quiere obtener el máximo poder de una computadora, aunque eso signifique no encontrar empleo, al menos no en el pais en el que vivo. A veces me siento triste por eso, aunque prefiero pasar hambre haciendo lo que quiero que emborrachándome con el dinero ganado haciendo un trabajo que no quiero hacer. De nuevo va una advertencia para los quinceañeros: Aprendan todo lo que puedan antes de llegar a los últimos semestres de Ingeniería en Computación, pues a menos que su meta sea ser DBA’s de 150 kilos, van a vivir con una tremenda frustración. Para quien no recuerde lo que es un DBA, es un DataBase Administrator o Administrador de Bases de Datos. Que es a lo mas que un profesional de la computación puede llegar en latinoamérica. Porque una vez que te conviertas en un DBA, no importa que tantas ganas de programar tengas, llegarás a tu casa cansado, harto de ver todo el día una computadora y te dormirás viendo la televisión mientras te preguntas porqué no pudiste hacer todo aquello con lo que soñabas cuando entraste a la carrera de Computación. Espero que tengas suficiente alcohol para resistirlo.

Anuncios

enero 12, 2009 - Posted by | Uncategorized | , , ,

12 comentarios »

  1. El lenguaje ensamblador en muy bueno y estoy orgulloso de decir que aun en mi uni lo imparten y el maestro en verdad sabe lo que hace y no solo sabe lo que hace si no que también lo explica muy bien.

    Comentario por Toño | junio 19, 2012 | Responder

    • Interesante, como se llama tu escuela?

      Comentario por b1ackpig | junio 21, 2012 | Responder

  2. Al fin se que significa!, gracias

    Comentario por Daniela | noviembre 13, 2012 | Responder

  3. Me pasa lo mismo mi hermano,, el maestro que me imparte la clase es un pendejo,,, nunca nos a in spirado ni mostrado el potencial del ensamblador, solo quiere que copiemos el codigo de programas estupidos,,, de su proyector

    Comentario por libertadpensar | noviembre 28, 2012 | Responder

  4. y que es el @DATA

    Comentario por dRAGON | diciembre 5, 2012 | Responder

    • Es la posicion de memoria del inicio del segmento de datos. Otras etiquetas que nadia usa son @text (code) @BSS (datos sin inicializar) @BES (datos sin inicializar que se leen desde el final) Para fines practicos es solo un numero

      Comentario por asm86 | diciembre 5, 2012 | Responder

      • tu si rifas

        Comentario por una persona que quiere ir al grano | enero 26, 2015

  5. Tengas todos un cordial saludo, soy estudiante universitario (Universidad Continental) de Perú de la cuidad de Huancayo aqui todavia se dicta el curso y de hecho tenemos ciertas complicaciones para lograr entender el lenguaje ensamblador, siendo el profesor nivel intermedio, ni bueno ni malo.
    (voy en la tercera clase).
    si alguien podria aportarme algo, sobre todo cosas basicas le estare muy agradecido.

    Comentario por frank | septiembre 26, 2014 | Responder

  6. NO me interesa tu vida solo la función

    Comentario por una persona que quiere ir al grano | enero 26, 2015 | Responder

  7. Lenguaje ensamblador, también lo imparten en mi universidad, se da en el segundo cuatrimestre junto con java en POO

    Comentario por Ivan | marzo 31, 2016 | Responder

  8. Hola, yo también comparto tu frustración, cuando llevé la clase mi maestra de programación era muy mala, pero aprendí por mi cuenta. Una vez incluso fue a preguntarle por qué un programa que nos había dado no funcionaba, después de 1 hora me dijo que no había funcionado y que “lo iba a revisar”, cuando aprendí por mi cuenta descubrí de dónde se copió el código, ¡pero lo copió mal! jaja por eso no jalaba.

    Para ser justo con mi universidad, decían que el otro profesor si se la rifaba, pero en el z80, no intel. La mayor parte de lo que sé también lo he aprendido por mi cuenta, pero sí diría que un 30% lo he aprendido de mis maestros (sin incluir la maestra mencionada evidentemente). Siempre procuraba meter clase con los mejores profesores aunque no fuera tan fácil sacar buena calificación, a veces no se podía si se traslapaban las clases.

    Mi proyecto final fue el programa de las torres de hanoi con interfaz gráfica, un programa que aún disfruto jugar de vez en cuando, en turbo asm. Por cierto, quien sabe asm puede ganar mucho dinero encontrando exploits y haciendo ingeniería inversa (que puede ser algo legal también cuando se trata de análisis de malware) y ganan igual o más que un DBA y probablemente es más feliz. Quien no aprecie la importancia de asm, simplemente no tiene suficiente conocimiento.

    Comentario por David B | junio 25, 2016 | 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: