Programación en Lenguaje Ensamblador

-El Verdadero Lenguaje de las Máquinas-

Muchos caminos, un destino.

Desde que escribí “La temible sección de importaciones” no he hecho mas que recetarles notas que huelen a tarea escolar. Sin embargo, esas notas sobre números binarios, hexadecimales y posiciones de memoria son precisamente para entender detalles de PEDEMO.EXE. En realidad, lo visto sirve para casi cualquier tipo de tecnología que pueda manejar memoria basada en bytes. Ahora nos concentraremos mas en la tecnología de Intel. Y aquí es donde viene nuestro primer dilema moral.

¿32 o 64?

Como ya comenté en las primeras notas, el ensamblador que se imparte en la mayoría de las carreras de Ingeniería en Computación es de 16 bits. Como referencia. Un segmento de memoria de 16 bits puede medir cuando mucho 65536 bytes. Para manejar mas memoria era necesario hacer una gran cantidad de piruetas como el direccionamiento Segmento:offset, Conmutación de Bancos de memoria, granularidad. Manejadores de memoria extendida y expandida. Todo para manejar en el mejor de los casos uno o dos megabytes. Eso no es ni siquiera lo que mide una foto en la computación de nuestros días. Todo esto era del 8086, un procesador de Intel creado a finales de la década de 1970. Tales computadoras, junto con su programación en ensamblador es mejor mandarlas a la caja de los recuerdos junto con las Commodore 64 (computadoras de 8 bits cuyo procesador era el mismo que el de la consola Nintendo Entertainment System). Esta es una de las razones por las que el Ensamblador está tan desprestigiado en estos días. El problema ahora es elegir entre ensamblador de 32 o 64 bits.

Actualmente, he visto sistemas caseros basados en Windows Vista tanto de 32 como de 64 bits. Inclusive hay cierta compatibilidad entre ellos. Aunque la tecnología de 32 bits es mas antigua es también la mas difundida. Trataré de hacer este curso para que los programas corran por lo menos en un Pentium III. Aunque también veremos código para procesadores Core 2 Quad o cualquier otra cosa que se les ocurra a los de Intel.

De acuerdo. Antes de piensen que Intel me paga para que hable bien de ellos, quiero que quede claro que la mayor parte de las computadoras para civiles usan procesadores fabricados por Intel. Aunque existen procesadores fabricados por AMD con su propio conjunto de instrucciones de Ensamblador, sin embargo se pliegan ante el poder de Intel (a quienes cariñosamente se refieren como la Hammer Family o Familia Martillo) y la mayor parte del tiempo corren en modo de compatibilidad. Inclusive, durante muchos años, las computadoras fabricadas por Apple usaban procesadores de otras compañias como Motorola e IBM. Hoy por hoy, cayeron ante el Martillo y se replegaron. Hoy las Apple tienen en sus entrañas un CPU fabricado por Intel.

Durante mucho tiempo hubo una rivalidad entre Intel y Motorola, al grado en que en la década de los 80’s, Todos los modelos de CPU’s de Motorola comenzaban con los números 68…, mientras que todos los CPU de Intel terminaban en …86. Existen otros CPU’s en el mercado como los ARM de Samsung,(usado en el Game Boy Advance y los celulares mas avanzados) los Super H de Hitachi(Sega Dreamcast), Alpha y Mips(usados en estaciones de trabajo como las Silicon Graphics) e IBM. Cada una de estas familias tiene su propia manera de administrar la memoria y su propio conjunto de instrucciones. Lo único que comparten es el uso del sistema binario. Aunque en la manera de leerlos hay algunas diferencias.

Ya hablé demasiado, creo que mejor paso a otra nota. Lo siguiente que veremos es un concepto tan elemental que resulta dificil de explicar (los matemáticos llaman a esto un Axioma). Se trata de los registros del CPU.

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

No hay comentarios aún.

Deja un comentario