Ensamblador
Enviado por arthureh • 24 de Mayo de 2012 • 10.108 Palabras (41 Páginas) • 458 Visitas
APUNTES DE CATEDRA
CARRERA: LICENCIATURA EN ANALISIS DE SISTEMAS –
INGENIERIA EN SISTEMAS
Cátedra: Procesamiento De Datos I
Profesor: Lic. Marcelo Martinez
AÑO: 2003
EL NIVEL DEL LENGUAJE ENSAMBLADOR
En los capítulos 4, 5 y 6 estudiamos tres niveles, los cuales están presentes en la
mayoría de las computadoras actuales. Este capítulo trata fundamentalmente de un cuarto
nivel que también está presente en casi todas las computadoras modernas: el nivel del
lenguaje ensamblador. Dicho nivel difiere considerablemente de los niveles de
microprogramación, de máquina convencional y del sistema operativo, debido a que se
implementa por traducción y no por interpretación.
Los programas que convierten un programa escrito de un lenguaje a otro lenguaje
distinto se llaman traductores. El lenguaje en que está escrito el programa original se llama
lenguaje fuente y al que se convierte se llama lenguaje objeto. Ambos lenguajes, el fuente
y el objeto, definen niveles. Si contáramos con un procesador que ejecutara directamente
los programas escritos en el lenguaje fuente, no habría ninguna necesidad de traducirlos al
lenguaje objeto.
La traducción se usa cuando se dispone de un procesador ( lo mismo da que sea físico
o un intérprete) para el lenguaje objeto, y no se cuenta con uno para el fuente. Si la
traducción se hace correctamente, la ejecución del programa traducido dará exactamente
los mismos resultados que daría la ejecución del programa fuente si dispusiéramos de un
procesador para él. Por tanto podemos fabricar un nuevo nivel, en el que no hay
procesador, si traducimos primero los programas escritos para dicho nivel a un nivel objeto
y luego ejecutamos los programas resultantes.
Es importante darse cuenta de la diferencia entre la traducción, por un lado, y la
interpretación por otro. En la traducción, el programa original, escrito en lenguaje fuente,
no se ejecuta directamente. Lo que se hace es convertirlo en un programa equivalente,
llamado programa objeto o módulo objeto, que se ejecuta después de que se ha terminado
la traducción. En la traducción hay dos pasos bien definidos:
1. Generación de un programa equivalente en lenguaje objeto.
2. Ejecución del nuevo programa que se ha generado.
Estos dos pasos no tienen lugar simultáneamente; el segundo no comienza hasta que
el primero ha terminado. En la interpretación, en cambio, hay sólo un paso: la ejecución del
programa fuente original. No se genera primero un programa equivalente. La interpretación
tiene la ventaja de que el programa suele ser más pequeño y de mayor flexibilidad, pero la
traducción suele producir programas más rápidos.
Cuando se está ejecutando el programa objeto, sólo hay tres niveles en acción: el de
microprogramación, el de máquina convencional y el de máquina del sistema operativo. Por
tanto, en tiempo de ejecución, sólo pueden encontrarse en la memoria de la computadora
tres programas: el programa objeto del usuario, el sistema operativo y el microprograma.
Toda traza del programa fuente original se ha desvanecido. Así, el número de niveles
presentes en tiempo de ejecución puede diferir del número de ellos presentes antes de la
traducción. Es importante recalcar que, aunque nosotros definamos un nivel por las
instrucciones y construcciones lingüísticas que tienen a su disposición los programadores (y
no por el método de implementación), otros autores hacen una mayor distinción entre
niveles realizados por intérpretes en tiempo de ejecución y niveles realizados por
traducción.
255
INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
Los traductores se pueden dividir a grandes rasgos en dos grupos, según la relación
que haya entre el lenguaje fuente y el objeto. Cuando el lenguaje fuente es, en esencia, una
representación simbólica de un lenguaje numérico de máquina, el traductor se llama
ensamblador y el lenguaje fuente se llama lenguaje ensamblador. Cuando el lenguaje
fuente es un lenguaje de alto nivel como el C o Pascal, y el lenguaje objeto es un lenguaje
de máquina numérico o una representación simbólica de uno de ellos, el traductor se llama
compilador.
¿Qué es un lenguaje ensamblador?
Un lenguaje ensamblador puro es aquel en que cada sentencia produce exactamente
una instrucción máquina. En otras palabras, hay una correspondencia biunívoca entre las
instrucciones de máquina y las sentencias del programa en ensamblador. Si cada línea de
un programa en ensamblador contuviera una sentencia ensamblador y si cada palabra de
máquina contuviera una instrucción de máquina, entonces un programa de n líneas escrito
...