Programación en Lenguaje Ensamblador

-El Verdadero Lenguaje de las Máquinas-

Encrucijada

De acuerdo, en este blog sobre lenguaje Ensamblador hemos llegado a un punto donde hay que decidir que camino tomar. Si bien hablamos de Ensamblador, casi todo este mes me la he pasado hablando sobre Windows. Esto lo hago por dos razones, la primera para no seguir alimentando al CPU Zombie conocido como 8086/8088 que como sabemos gusta de alimentarse cerebros de programadores ingenuos. La segunda es porque si alguien me va a dejar sin empleo prefiero mil veces que sea alguien que sepa mas Ensamblador que yo y no un lamer paquetero de esos que cagan la mayoría de las universidades cada semestre. Bueno, aquí es donde veremos que camino tomar:

Un camino es concentrarnos mas sobre como trabaja el Windows, ver temas como DLL, COM y DCOM, ActiveX, Sockets, DirectX y OpenGL completamente en Ensamblador.

El otro es ver con mayor detalle el conjunto de instrucciones de un CPU de Intel, sus modos de operación, registros internos y manejo de temas que tanto se prestan al Divismo como Memoria Virtual, Modo Protegido, programación de la tarjeta gráfica,etc. Les recuerdo que todo es cien por ciento en Ensamblador.

¡Y es justo aquí donde se ha de tomar una decisión salomónica! Pues el primer camino sería como llevármelos de excursión a la selva africana sin haberles enseñado nada sobre campismo. Imaginemos que les digo por ejemplo como obtener un SurfaceDescriptor en Direct3D y que en esa estructura existe un puntero a la memoria de video y que esta se debe de bloquear antes de escribir en ella. Por supuesto que no sabrían ni siquiera de lo que estoy hablando. Poco sería lo que podrían hacer con lo que vieran.

El segundo camino es tan malo como el otro, pues al menos hasta ahora no tenemos ni siquiera sabemos como desplegar resultados en la pantalla. Podríamos ver un código que sumara dos números en la pantalla y no tendríamos manera de ver el resultado. Sobra decir que para poder hacer esto forzosamente necesitamos de la API del sistema operativo, pues el Modo Protegido en que trabajan los modernos CPU no se llama así precisamente porque se cuide del SIDA, sino porque establece un estricto conjunto de reglas y protocolos que permiten que muchas aplicaciones convivan felices sin pisotearse unas a otras. Y aunque técnicamente es posible brincarse toda esa protección a lo único que nos llevaría sería a fastidiar el sistema entero. Pues en Windows no es tan sencillo como usar printf() o scanf(). Entonces, de todas formas necesitaríamos continuar con el Windows. Esto, por comparación sería como entrenar campismo en la sala de la casa, no tendríamos problemas pero nos perderíamos la emoción de ir a explorar.

Ahora que lo pienso detenidamente, supongo que lo mas sensato es aprender Ensamblador y sus intrincados algoritmos al mismo tiempo que nos abrimos paso por las API’s del sistema. Sería como aprender campismo directo en la selva. Es mas, revisando viejos códigos encontré un programa muy sencillo que desplegaba una ventana con dos cajas de texto en la que uno introducía dos números y un botón que los sumaba. A pesar de que suena como un programita muy simple requiere dominar una gran cantidad de conceptos interesantes tanto de la API de Windows como de Ensamblador puro. Dicho programa en su momento recibió el nombre de “Te lo Sumo” y para que vayan abriendo boca, aquí hay una lista de todo el jugo que le a sacar cuando acabe de analizarlo:

1.- Creación de ventanas de cualquier tamaño.

2.- Uso de ventanas con botones.

3.- Lectura y escritura en cajas de texto.

4.- Inicialización de una ventana.

5.- Como validar una entrada para que solo acepte números.

6.- Uso de instrucciones aritméticas en ensamblador.

7.- Manejo de funciones intercambiables

8.- Uso de saltos condicionales y comparaciones

9.- Registro EFLAGS para toma de decisiones.

10.- Y por supuesto, vamos a ver como sumar 2 enteros.

De momento esto es todo lo que se me ocurre, y la única razón por la que no lo subo ahora mismo es porque primero es demasiado grande como para caber en una entrada del Blog y porque está lleno de código ilegible, lenguaje ofensivo y grandes cantidades de código redundante. Pero tengan por seguro de que cuando acaben de sumar 2 números estarán mas cerca de dominar el Ensamblador.

Anuncios

enero 30, 2009 - Posted by | Uncategorized

Aún no hay comentarios.

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: