Anda di halaman 1dari 2

5.2. Lenguaje Ensamblador.

Lenguaje ensamblador. Los traductores se pueden dividir a grandes rasgos en dos grupos, segn la relacin que haya entre el lenguaje fuente y el objeto. Cuando el lenguaje fuente es, en esencia, una representacin simblica de un lenguaje numrico de mquina, 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 mquina numrico o una representacin simblica de uno de ellos, el traductor se llama compilador. Qu es el lenguaje ensamblador? Un lenguaje ensamblador puro es aquel en que cada sentencia produce exactamente una instruccin mquina. En otras palabras, hay una correspondencia biunvoca entre las instrucciones de mquina y las sentencias del programa en ensamblador. Si cada lnea de un programa en ensamblador contuviera una sentencia ensamblador y si cada palabra de mquina contuviera una instruccin de mquina, entonces un programa de n lneas escrito en ensamblador producira un programa en lenguaje de mquina que ocupara n palabras. La razn por la que se usa el lenguaje ensamblador en lugar de programar el lenguaje mquina (octal o hexadecimal) consiste en que es mucho ms fcil programar en ensamblador. Es muy diferente usar nombres y direcciones simblicas que hacerlo en binario u octal. La mayora de la gente puede recordar que las abreviaturas para la adicin, la sustraccin, la multiplicacin y la divisin son ADD, SUB, MUL y DIV, pero pocos pueden recordar que las instrucciones mquina son 24576, 57344, 28672 y 29184. El programador en lenguaje ensamblador slo tiene que recordar los nombres simblicos ADD, SUB, MUL, DIV, ya que el ensamblador los traduce a las instrucciones mquina. Por el contrario, el programador en lenguaje mquina debe recordar, o consultar constantemente, los valores numricos. En cuanto a las direcciones, el programador en lenguaje ensamblador puede dar nombres simblicos a las posiciones de memoria y dejarle al ensamblador la tarea de suministrar los valores numricos correctos. El programador en lenguaje mquina debe trabajar siempre con los valores numricos de las direcciones. En

consecuencia, nadie programa hoy en da en lenguaje mquina, aunque se hacia hace aos, antes de que se inventaran los ensambladores. Los lenguajes ensambladores tienen otra propiedad, adems de la correspondencia uno a uno entre las sentencias en ensamblador y las instrucciones mquina, que los distngue de los lenguajes de alto nivel. El programador en ensamblador tiene acceso a todos los recursos e instrucciones de la mquina a la que se aplica, pero no el programador en un lenguaje de alto nivel. Por ejemplo si la mquina tiene un indicador de desbordamiento, el programador en lenguaje ensamblador puede examinarlo; uno en Pascal no puede hacerlo directamente. Es decir, que todo lo que puede hacerse en lenguaje mquina puede hacerse tambin en lenguaje ensamblador, pero muchas instrucciones, registros y otras cosas por el estilo no estn disponibles para que el programador en lenguaje de alto nivel las use. Los lenguajes para la programacin de sistemas suelen ser un hbrido entre ambos tipos, con la sintaxis de un lenguaje de alto nivel pero con las posibilidades de acceso a la mquina de un lenguaje ensamblador. Una diferencia final, consiste en que un programa en legaje ensamblador slo puede correr en una familia de mquinas, mientras que un programa escrito en lenguaje de alto nivel puede, en potencia, correr en muchas mquinas. La habilidad de poder mover software de una mquina a otra, resulta de gran importancia prctica para muchas aplicaciones.

Anda mungkin juga menyukai