ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Ensamblador


Enviado por   •  24 de Mayo de 2012  •  10.108 Palabras (41 Páginas)  •  482 Visitas

Página 1 de 41

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

en ensamblador produciría un programa en lenguaje máquina que ocuparía n palabras.

La razón por la que se usa el lenguaje ensamblador en lugar de programar el lenguaje

máquina (octal o hexadecimal) consiste en que es mucho más fácil programar en

ensamblador. Es muy diferente usar nombres y direcciones simbólicas que hacerlo en

binario u octal. La mayoría de la gente puede recordar que las abreviaturas para la adición,

la sustracción, la multiplicación y la división son ADD, SUB, MUL y DIV, pero pocos pueden

recordar que las instrucciones máquina (para la PDP-ll) son 24576..57344,28672 y 29184.

El programador en lenguaje ensamblador sólo tiene que recordar los nombres simbólicos...

ADD, SUB, MUL, DIV, ya que el ensamblador los traduce a las instrucciones máquina. Por el

contrario, el programador en lenguaje máquina debe recordar, o consultar constantemente,

los valores numéricos.

Los mismos comentarios se aplican a las direcciones. El programador en lenguaje

ensamblador puede dar nombres simbólicos a las posiciones de memoria y dejarle al

ensamblador la tarea de suministrar los valores numéricos correctos. El programador en

lenguaje máquina debe trabajar siempre con los valores numéricos de las direcciones. En

consecuencia, nadie programa hoy día en lenguaje máquina, aunque se hacía hace años,

antes de que se inventaran los ensambladores.

Los lenguajes ensambladores tienen otra propiedad, además de la Correspondencia

uno a uno entre las sentencias en ensamblador y las instrucciones máquina, que los

distinguen de los lenguajes de alto nivel. El programador en

...

Descargar como (para miembros actualizados) txt (67 Kb)
Leer 40 páginas más »
Disponible sólo en Clubensayos.com