- Introducción
- Componentes básicos de un sistema
- La unidad de proceso central
- Componentes de la unidad de proceso central
- Ejecución de instrucciones
- La unidad de control
- Unidad aritmética y lógica
- La memoria
- Arquitectura de sistemas 80×86
Introducción
¿Por qué usar ensamblador?
Las razones para APRENDER ensamblador no son las mismas, en gen- eral, que las razones para USAR ensamblador.
Una de las malas razones para querer usar ensamblador es porque se piensa que ejecutará mucho más rápido que una secuencia en particular de un lenguaje de propósito general como Pascal, Fortran, C o hasta BA- SIC compilado. Aunque esto en general es verdadero, el tiempo y recursos invertidos en el desarrollo pueden al final no valer la pena con respecto a la ganacia de velocidad obtenida.
Por otro lado, los lenguajes de alto nivel tienden a aislar al usuario de la máquina, en lo que radica su fuerza y su debilidad. La gran mayoría de los lenguajes moderno de alto nivel proveen mecanismos para escribir secuencias en ensamblador, aunque algunos de forma torpe (PEEK y POKE de BASIC). Esto crea complicaciones en la implementación y en el seguimiento y mantenimiento de programas elaborados de esta forma.
Algunas veces el sistema o lenguaje hace muy poco por nosotros; por ejemplo, con el adaptador asíncrono, el sistema provee mecanismos que quedan cortos de nuestra espectativa y deben ser irremediablemente mejorados o pagar las consecuencias en una comunicación de alto nivel (redes, interfaces, etc.).
Otras veces el sistema o lenguaje hace demasiado por nosotros; por ejemplo en el control de las teclas que conforman un teclado, donde previamente se han definido todas las secuencias que se generan al presionar una tecla.
Otras más, se hace el trabajo exacto pero de una forma ineficiente no aceptable a ciertas aplicaciones, como en el caso del manejador de la pantalla que normalmente usan los canales oficiales para comunicarse con la electrónica que controla los dispositivos externos.
Es en estas ocaciones donde el ensamblador actúa con su mayor fortaleza: el control total de todos los elementos que conforman el sistema. Una parte crítica de un sistema es la más suceptible de optimizarse vía programación en ensamblador. No deseamos hacer esto en términos de eficiencia de programación si se puede evitar con algún truco del lenguaje de alto nivel o alguna otra argucia; pero existen numerosos casos en los que se cae constantemente en la necesidad de hacerlo.La razón por la cual el ensamblador es entonces mejor que un lenguaje de alto nivel, es la misma por la que Pascal es mucho mejor para escribir un programa de nómina que Ensamblador: es mucho más fácil de mantener y programar. Debemos dejar que los lenguajes de alto nivel hagan lo que saben hacer mejor y reconocer las ocaciones en las que debemos ensuciarnos las manos con ensamblador.
Las razones para aprenderlo caen en la categoría de una formación completa e integral en las áreas de cómputo de forma tal que se pueda decidir como jefe de proyecto o programador, en qué casos es mejor utilizar una herramienta y en qué otros utilizar otra. Como profesionista, se debe ser capaz de identificar una buena codificación de una mala en ensamblador y poder sugerir caminos alternativos para las implementaciones de una solución genérica apropiada al problema que se trata de resolver.
Dividimos el aprendizaje del ensablador en fases o pasos que sugerimos seguir al pie de la letra:
Fase 1 Conocer las herramientas de trabajo para crear aplicaciones en ensamblador.
Fase 2 Conocer la arquitectura de la máquina en la que se pretende realizar la programación.
Fase 3 Conocer las instrucciones del lenguaje ensamblador de la máquina específica en la que se aplicará.
Fase 4 Conjuntar todos los elementos anteriores en programas de aplicación que realicen cosas prácticas o útiles desde nuestro punto de vista.
Fase 5 Actualizarse constantemente.
En todo lo anterior aplicamos una palabra clave: Selección. Hay que ser selectivo en lo que se aprende y tener la capacidad de juzgar de antemano qué nos puede servir o no antes de emplear el esfuerzo y tiempo en aprenderlo aunque siempre se debe tener en cuenta que las necesidades, tecnologías y tendencias cambian constantemente el la computación, por lo menos a lo que el presente y futuro cercano nos concierne.
Trataremos de cumplir a lo largo de este libro la palabra selectividad y de llenar todos los objetivos planteados en esta introducción.
Emiliano Llano Díaz Septiembre 1995
Capítulo 1
Componentes Básicos de un Sistema
Si examinamos las microcomputadoras actuales, vemos que aunque hay diferencias en el tamaño físico de los componentes, de los sistemas y en- tre distintos tipos de computadoras (mini computadoras, macrocomputadoras y computadoras personales o microcomputadoras), la arquitectura empleada en todos los casos es muy similar. Esto se debe al hecho de que las computadoras usan lógica binaria (de unos y ceros) y emplean el sistema binario en casi todos sus componentes, lo que exige un cierto tipo de estrategia para resolver los problemas derivados de esta selección.
Figura 1.1 Los componenetes de una computadora.
Como se muestra en la figura 1.1, tenemos cinco partes principales de un sistema de cómputo que se encuentran de una forma u otra en todo sistema actual:
Página siguiente |