Sei sulla pagina 1di 8

Escuela de Ingenieras Industriales (Badajoz)

Universidad de Extremadura



Programacin en Lenguaje Ensamblador
para el Procesador MC68000


Estructura de los Microprocesadores
(2 I.T.I. Electrnico)




Jos Ignacio Surez Marcelo
Escuela de Ingenieras Industriales (Badajoz) - UEx Estructura de los Microprocesadores
Introduccin a la Programacin en Ensamblador

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 mnemotcnicos
1
(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.
Programacin en Lenguaje Ensamblador para el Microprocesador MC68000 1

Escuela de Ingenieras Industriales (Badajoz) - UEx Estructura de los Microprocesadores
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.

4. Programa Montador de Enlaces
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
EJECUTABLE
CDIGO
OBJETO

LINKADOR ENSAMBLADOR
CDIGO
FUENTE
n
CDIGO
FUENTE
2
CDIGO
FUENTE
1
Programacin en Lenguaje Ensamblador para el Microprocesador MC68000 2

Escuela de Ingenieras Industriales (Badajoz) - UEx Estructura de los Microprocesadores
El ensamblador 68000 (IDE68K)

1. Caractersticas Generales
Es un ensamblador cruzado.
El cdigo fuente debe estar escrito en cdigo ASCII.

Las lneas del programa o sentencias estn divididas en tres campos:
[Etiqueta] [Cdigo[Operando(s) ]] [Comentario]

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.
Reglas para la definicin de etiquetas:
Cadena de caracteres de cualquier longitud, aunque slo los 15 primeros son significativos.
Puede ser cualquier cdigo ASCII mayor de 32 (espacio), salvo: + - 1 & ! | ^ < > ( ).
El primer carcter no puede ser un nmero ni los smbolos $, ni %.
Maysculas y minsculas se consideran caracteres diferentes.
Tienen que estar en la primera columna de texto, salvo que terminen con el carcter : ( dos
puntos), en cuyo caso, s puede haber espacios delante de ellas.

Ejemplos de etiquetas vlidas Ejemplos de etiquetas no vlidas
Esto_es_una_etiqueta 1LB12 (empieza por nmero)
LAZO1 LAZO&1 (contiene carcter ilegal)
SALTO:
Bucle_n1
bucle_n1

Programacin en Lenguaje Ensamblador para el Microprocesador MC68000 3

Escuela de Ingenieras Industriales (Badajoz) - UEx Estructura de los Microprocesadores
Campo de Cdigos:
En el campo de cdigos pueden aparecer:
Instrucciones: las pertenecientes al juego de instrucciones del ensamblador.
Directivas del Ensamblador: son cdigos mnemnicos que actan sobre el programa ensamblador y
que, por tanto, no tienen traduccin al cdigo mquina.
Reglas para la definicin 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.
No se hace distincin entre maysculas o minsculas.
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:
Dir. Relativo al PC con desplazamiento:
Dsp(PC) o Etiqueta Relativa
Dir. Relativo al PC con ndice (Dm) y desplazamiento (dsp):
Dsp(PC,Dm.X) o Etiqueta Relativa(PC,Dm.X )
Si para una instruccin determinada no usamos el tamao de operando adecuado, el ensamblador
nos dar un mensaje de error.
El ensamblador reconoce al puntero de pila, A7, como SP (Stack Pointer).
Si utilizamos un direccionamiento inmediato tendremos que usar el carcter # (almohadilla).
Adems, si el dato es:
Programacin en Lenguaje Ensamblador para el Microprocesador MC68000 4

Escuela de Ingenieras Industriales (Badajoz) - UEx Estructura de los Microprocesadores
binario, usaremos %.
hexadecimal, el carcter $.
decimal, no ser necesario ningn prefijo (excepto #).
cdigo ASCII, se utilizarn comillas simples. Por ejemplo: #'A'
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:
Divisin entera de enteros: /
Desplazamiento lgico a derecha: >
Desplazamiento lgico a izquierda: <
Signo: +
Negacin: !
Parntesis sin lmites de nivel: ( )

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 (*).
El uso de comentarios es fundamental para la buena interpretacin de un programa en ensamblador, su
depuracin y el entendimiento de dicho programa por una persona distinta a quien lo program.
Programacin en Lenguaje Ensamblador para el Microprocesador MC68000 5

Escuela de Ingenieras Industriales (Badajoz) - UEx Estructura de los Microprocesadores
2. Directivas del ensamblador
nicamente vamos a ver las directivas ms importantes y son las siguientes:

Directiva ORG: (program ORiGing)
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.

Directiva DC: (Define Constant data)
Define constantes. Se usa para crear datos constantes en memoria, por ejemplo, tablas, texto y nmeros. Su
sintaxis es la siguiente:
[Etiqueta] DC[.B] [.W] [.L] [Operando1] [, Operando2] [, ...]
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.
Si no se incluye ningn operando, entonces se reserva e inicializa a cero.
La etiqueta tiene asignada la direccin del primer dato almacenado.
Ejemplos:

ETIQ DC.B 10, 5, 7
MEMORIA
2N 2N+1

ETIQ 10 5
7



ETIQ1 DC.B A, B
DC.W $2A34
ETIQ2 DC.L
MEMORIA
2N 2N+1

ETIQ1 A B
$2A $34
ETIQ2 $00 $00
$00 $00



Programacin en Lenguaje Ensamblador para el Microprocesador MC68000 6

Escuela de Ingenieras Industriales (Badajoz) - UEx Estructura de los Microprocesadores
Directiva DS: (Define Storage)
Define una zona de variables. Esta directiva es usada para reservar memoria para propsitos especficos. Su
sintaxis es la siguiente:
[Etiqueta] DS[.B] [.W] [.L] longitud
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

ETIQ $00 $00
$00 $00
$00 $00


Directiva EQU: (EQUal)
Iguala. Define un valor simblico (el definido en el campo de Etiqueta) cuyo valor es el del campo
expresin. Su sintaxis es la siguiente:
Etiqueta EQU expresin
Asigna el valor de expresin a etiqueta.
Ejemplos:
num EQU $32A0
dir EQU (dir1+dir2)/2

Directiva END: (END of source code)
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:
END [punto de entrada]
Se puede especificar un parmetro opcional, el punto de entrada (entry point), es decir, la direccin de inicio del
programa.
Programacin en Lenguaje Ensamblador para el Microprocesador MC68000 8

Potrebbero piacerti anche