Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Universidad de Extremadura
1. Lenguaje Mquina
El lenguaje que utiliza y entiende un procesador digital est formado exclusivamente por unos y ceros
(transistores trabajando en corte/saturacin a alta velocidad). Los datos y las instrucciones son un conjunto de unos y
de ceros almacenados en memoria. Por tanto, el procesador slo entiende programas escritos con unos y ceros. Este
idioma que es capaz de entender el procesador recibe el nombre de lenguaje mquina.
2. Lenguaje Ensamblador
Sera una tarea muy engorrosa y tediosa para los programadores escribir el cdigo correspondiente al
programa usando unos y ceros, es decir, usando el lenguaje mquina. Adems, se podran cometer muchos errores.
Los programas escritos en lenguaje mquina seran difciles de entender y de depurar. En lugar de ello, los
fabricantes de procesadores facilitan al programador las instrucciones escritas en un lenguaje cercano a la mquina,
pero ms fcilmente entendible por el ser humano, que recibe el nombre de lenguaje ensamblador. Este lenguaje usa
valores simblicos, en lugar de binarios, llamados nemnicos, es decir, cdigos mnemotcnicos1 (fciles de
memorizar) que identifican su funcionalidad, (por ejemplo, MOVE representa una instruccin de movimiento de
datos). El lenguaje ensamblador conserva las principales ventajas del lenguaje mquina, ya que, cada instruccin en
ensamblador se corresponde con una instruccin en lenguaje mquina. Adems, el lenguaje ensamblador presenta
ciertas ventajas adicionales, como por ejemplo, que se pueden definir zonas de memoria y sus contenidos, se pueden
utilizar comentarios, macros, etc. de tal forma que se ayude a estructurar el programa y a la comprensin del mismo.
3. Programa Ensamblador
La traduccin del cdigo mnemnico o lenguaje ensamblador al cdigo mquina se realiza con ayuda de un
ordenador sobre el que corre un software llamado programa ensamblador.2 El cdigo que corresponde al programa
escrito en lenguaje ensamblador y que va a ser traducido a lenguaje mquina recibe el nombre de cdigo fuente. Y el
cdigo en lenguaje mquina generado por el programa ensamblador recibe el nombre de cdigo objeto.
1
La Real Academia de la Lengua Espaola define mnemotcnico como perteneciente o relativo a la mnemotecnia y mnemotecnia como
procedimiento de asociacin mental para facilitar el recuerdo de algo.
2
Conviene advertir que la palabra ensamblador, que se utiliza tanto para denominar al lenguaje de programacin como al programa que lo
traduce, tiene dos acepciones diferentes que no deben ser confundidas.
Cuando el ordenador que se utiliza para el ensamblado es el mismo o tiene el mismo procesador que el
sistema en el que se va a ejecutar el cdigo mquina resultante, se dice que el programa ensamblador utilizado es un
autoensamblador. Pero, si el procesador destino es diferente al procesador del ordenador donde corre el programa
ensamblador, entonces se habla de un ensamblador cruzado (cross assembler). En estas prcticas se emplea un
ensamblador cruzado de 68000 ya que el ordenador que soporta al programa ensamblador corre en un ordenador
personal compatible IBM (plataforma Intel o AMD) y el procesador destino es un MC68000 de Motorola.
En general, el cdigo objeto producido por el programa ensamblador, aunque est en cdigo mquina,
todava no es directamente ejecutable en el procesador. Esto es debido a que el fichero con el cdigo objeto incluye
informacin adicional que ser empleada por otro programa llamado montador de enlaces. El montador de enlaces
utiliza esta informacin para organizar el cdigo mquina procedente de uno o varios cdigos objeto, con el fin de
generar un programa ejecutable.
El programador, por tanto, en lugar de generar un programa muy extenso, puede optar por dividirlo varios
mdulos ms pequeos, de tamao razonable, de forma que el programa completo tenga una mayor facilidad de
comprensin y depuracin. Adems, con esta forma de trabajo se pueden insertar otros mdulos, llamados
bibliotecas (en ingls, libraries), desarrollados para otras aplicaciones, ya depurados y probados, con lo cual se
reduce el tiempo de desarrollo. En muchas ocasiones es el propio fabricante del procesador quien facilita dichas
bibliotecas.
CDIGO
FUENTE
1
CDIGO
CDIGO CDIGO
FUENTE ENSAMBLADOR LINKADOR
OBJETO EJECUTABLE
2
CDIGO
FUENTE
n
1. Caractersticas Generales
Es un ensamblador cruzado.
El cdigo fuente debe estar escrito en cdigo ASCII.
Campo de Etiquetas:
La etiqueta es un nombre inventado por el programador que sirve para definir posiciones de memoria
especficas o valores constantes. Liberan al programador de recordar datos numricos, posiciones de memoria, etc.
Cadena de caracteres de cualquier longitud, aunque slo los 15 primeros son significativos.
Puede ser cualquier cdigo ASCII mayor de 32 (espacio), salvo: + - 1 & ! | ^ < > ( ).
Tienen que estar en la primera columna de texto, salvo que terminen con el carcter : ( dos
Campo de Cdigos:
El campo de cdigo debe estar separado del margen izquierdo con, al menos, un espacio
(normalmente se usa una tabulacin).
Pueden ser todos los mnemnicos del juego de instrucciones as como las directivas del
ensamblador.
Los sufijos utilizados para indicar el tamao de los datos son: .B (byte), .W (palabra) y .L (doble
palabra).
Para la instruccin BRA, donde el salto puede ser de 8 16 bits, se usan los sufijos .S (short) y .L
(long), respectivamente. A pesar de esto, se recomienda no usar este sufijo, ya que el programa
ensamblador se encarga de seleccionar el tipo de salto que mejor se adapte a cada caso.
Operandos:
Dentro del campo de cdigos puede aparecer el campo de operandos, donde se ubicarn los
operandos que utilicen las instrucciones o las directivas del ensamblador. La sintaxis, cuando son
operandos de instrucciones, es la ya vista en los modos de direccionamiento. Existen variantes en los
direccionamientos relativos al PC:
binario, usaremos %.
hexadecimal, el carcter $.
Los operandos tambin pueden ser representados mediante etiquetas. Por ejemplo:
move.b #valor,D0
Se pueden utilizar expresiones aritmticas y lgicas para definir el valor numrico de un operando.
Las operaciones permitidas son:
O lgica (OR): |
O exclusiva (XOR): ^
Y lgica: &
Suma de enteros: +
Resta de enteros:
Signo: +
Negacin: !
Campo de Comentarios:
Este campo debe estar separado del anterior por, al menos, un espacio.
En el caso de sentencias que nicamente contengan comentarios, el primer carcter puede ser un punto y
coma (;), y en este caso, tiene que coincidir con la primera columna, o tambin puede ser un asterisco (*).
Indica al ensamblador la posicin de memoria inicial a partir de la cual debe situar el cdigo que se genere
detrs de esta directiva. Por ejemplo: ORG $25000.
Define constantes. Se usa para crear datos constantes en memoria, por ejemplo, tablas, texto y nmeros. Su
sintaxis es la siguiente:
Reserva e inicializa una o varias posiciones consecutivas de memoria del tamao indicado (bytes, palabras
o dobles palabras) cuyos valores vienen indicados por los operandos. Si no se indica nada se supone .W. Si es
necesario los datos numricos son truncados para adaptarse al tamao indicado. Se pueden generar hasta 256 bytes
con una simple directiva DC.
Ejemplos:
ETIQ1 DC.B A, B
DC.W $2A34
ETIQ DC.B 10, 5, 7
ETIQ2 DC.L
MEMORIA
MEMORIA
2N 2N+1
2N 2N+1
ETIQ
ETIQ1 A B
10
7 5
$2A $34
ETIQ2 $00 $00
$00 $00
Define una zona de variables. Esta directiva es usada para reservar memoria para propsitos especficos. Su
sintaxis es la siguiente:
Reserva en memoria tantas posiciones como indique longitud del tamao definido por el sufijo de la
etiqueta (bytes, palabras o dobles palabras), y los inicializa a cero. Si no se indica nada se supone .W.
Ejemplo:
ETIQ DS.W 3
MEMORIA
2N 2N+1
Iguala. Define un valor simblico (el definido en el campo de Etiqueta) cuyo valor es el del campo
expresin. Su sintaxis es la siguiente:
Ejemplos:
Final del cdigo fuente. Indica al programa ensamblador dnde termina el programa. Todo lo que se escriba
detrs de esta directiva no ser ensamblado. Si no se encuentra se ensambla todo. Su sintaxis es la siguiente:
Se puede especificar un parmetro opcional, el punto de entrada (entry point), es decir, la direccin de inicio del
programa.