Вы находитесь на странице: 1из 32

LENGUAJE ENSAMBLADOR

UNIDAD 1
ENSAMBLADOR
Qu es ensamblador y para qu sirve?

Cuando se empezaron a utilizar smbolos nemotcnicos, se
escribieron programas para traducir automticamente los
programas escritos en lenguaje ensamblador a lenguaje mquina.
A estos programas traductores se les llamo ensambladores.

La entrada para un ensamblador es un programa fuente escrito en
lenguaje ensamblador. La salida es un programa objeto, escrito en
lenguaje de mquina. El programa objeto incluye tambin la
informacin necesaria para que el cargador pueda preparar el
programa objeto para su ejecucin.

Para evitar confusiones, de aqu en adelante llamaremos lenguaje
ensamblador al conjunto de nemotcnicos y a las reglas para su
manejo. Al programa que traduce un programa objeto a partir de
un programa escrito en lenguaje ensamblador lo llamaremos
ensamblador.


ENSAMBLADOR
Motivos para utilizarlo.

Rapidez: Como el programador directamente selecciona las
instrucciones que se ejecutan en el programa, el programa final
queda mas optimizado que un programa generado por un
compilador.

Mayor control de la computadora: Un programa puede accesar
directamente cualquier componente y perifrico de la computadora.

Independencia del lenguaje: No depende de libreras o del lenguaje
mismo para realizar una tarea especfica. Lenguajes como el Basic
limitan al programador a lo que el lenguaje puede hacer.

La mayora de las computadoras pueden ensamblar: Los recursos
necesarios para ensamblar un programa son mucho menores que
los compiladores o interpretes. El ensamblador generalmente es
ms rpido ensamblando un programa que un compilador
generando un archivo ejecutable.

ENSAMBLADOR
Motivos para no utilizarlo.

Desafortunadamente, tambin existen motivos para no crear los programas con
ensamblador.

Dependencia del hardware: El cdigo se hace en extremo dependiente del
microprocesador, de los dispositivos, de los controladores, etc. Este punto ser
analizado con ms detenimiento en dependencias de hardware.

Mayor tiempo de codificacin: El nmero de lneas de un programa hecho en
ensamblador es mayor a uno hecho en un lenguaje de alto nivel (por ejemplo:
Funcin en C puede realizar varias decenas o centenas de instrucciones del
microprocesador).

Comprensin mas profunda de la computadora: Entender un lenguaje de alto nivel
es generalmente ms sencillo que el ensamblador. Comprender ensamblador
requiere conocimientos ms exactos sobre el funcionamiento interno de la
computadora.

Errores ms frecuentes en el programa: El evitar un error o encontrar alguno que
ya exista es difcil. Las herramientas para este caso (como el CodeView y el
TurboDebbuger) ayudan en gran medida a ver lo que esta ocurriendo en la
maquina, pero no localizan los errores.

ENSAMBLADOR
Entonces, Cundo utilizo ensamblador y
cundo no?
Depende del programa a desarrollar. Si el
programa debe controlar en gran medida los
componentes internos de la computadora o
debe ser lo suficientemente veloz, entonces es
recomendable utilizarlo. Si se requiere un
sistema grande y no se dispone de mucho
tiempo para entregarlo, entonces es mejor
juntar un lenguaje de alto nivel con
ensamblador (las funciones bsicas del
programa realizarlas en ensamblador, y el
programa en general codificarlo con el lenguaje
de alto nivel).


ENSAMBLADOR
Importancia del lenguaje ensamblador.

La importancia del lenguaje ensamblador radica
principalmente que se trabaja directamente con
el microprocesador; por lo cual se debe de
conocer el funcionamiento interno de este, tiene
la ventaja de que en el se puede realizar
cualquier tipo de programas que en los
lenguajes de alto nivel no lo pueden realizar.
Otro punto sera que los programas en
ensamblador ocupan menos espacio en
memoria.

ENSAMBLADOR
Ventajas del Lenguaje Ensamblador.

Velocidad .- Como trabaja directamente con el
microprocesador al ejecutar un programa, pues como este
lenguaje es el mas cercano a la mquina la computadora lo
procesa mas rpido.

Eficiencia de tamao.- Un programa en ensamblador no ocupa
mucho espacio en memoria porque no tiene que cargan
libreras y dems como son los lenguajes de alto nivel

Flexibilidad .- Es flexible porque todo lo que puede hacerse
con una mquina, puede hacerse en el lenguaje ensamblador
de esta mquina; los lenguajes de alto nivel tienen en una u
otra forma limitantes para explotar al mximo los recursos de
la mquina. O sea que en lenguaje ensamblador se pueden
hacer tareas especficas que en un lenguaje de alto nivel no
se pueden llevar acabo porque tienen ciertas limitantes que
no se lo permite.

ENSAMBLADOR
Desventajas del Lenguaje Ensamblador.

Tiempo de programacin .- Como es un lenguaje de bajo nivel requiere ms
instrucciones para realizar el mismo proceso, en comparacin con un lenguaje de
alto nivel. Por otro lado, requiere de ms cuidado por parte del programador, pues
es propenso a que los errores de lgica se reflejen ms fuertemente en la
ejecucin.

Programas fuentes grandes .- Por las mismas razones que aumenta el tiempo,
crecen los programas fuentes; simplemente requerimos ms instrucciones
primitivas para describir procesos equivalentes. Esto es una desventaja porque
dificulta el mantenimiento de los programas, y nuevamente reduce la productividad
de los programadores.

Peligro de afectar recursos inesperadamente .- Que todo error que podamos
cometer, o todo riesgo que podamos tener, podemos afectar los recursos de la
mquina, programar en este lenguaje lo ms comn que pueda pasar es que la
mquina se bloquee o se reinicialice. Porque con este lenguaje es perfectamente
posible (y sencillo) realizar secuencias de instrucciones invlidas, que normalmente
no aparecen al usar un lenguaje de alto nivel.

Falta de portabilidad.- Porque para cada mquina existe un lenguaje ensamblador;
por ello, evidentemente no es una seleccin apropiada de lenguaje cuando
deseamos codificar en una mquina y luego llevar los programas a otros sistemas
operativos o modelos de computadoras.

ENSAMBLADOR
Uso y aplicacin del lenguaje ensamblador.

El uso del lenguaje ensamblador no es para la gente comn y corriente,
sino para profesionistas en el rea de computacin que estn obligados
a conocer este lenguaje, ya que proporciona una serie de caractersticas
que no se pueden encontrar en los lenguajes de alto nivel. Algunas de
estas caractersticas son:

Se puede acceder a cualquier localidad de la memoria RAM sin
ninguna restriccin.
Se pueden programar virus, debido a que se tiene un acceso total a
casi todo el hardware de la computadora va interrupciones de
software.
Se pueden programar Drivers de cualquier dispositivo.
Se puede acceder directamente a los registros internos del CPU.
Se puede acceder directamente a los dispositivos de entrada y/o
salida.
Los programas objeto generados a tras del ensamblador son mas
veloces que los generados en cualquier otro lenguaje, debido a que
una instruccin en ensamblador corresponde a una instruccin en
lenguaje mquina.

ENSAMBLADOR
El lenguaje ensamblador se utiliza para las
siguientes aplicaciones:

Sistemas embebidos: impresoras, cmaras,
autos, juguetes, etc.
Industria y manufactura: adquisicin datos y
control, eg robots.
Transporte y aeronutica: barcos, aviones,
sondas espaciales, etc.
Graficacin, multimedia, cine y videojuegos.
Procesamiento de seales, voz e imgenes.
Armamento y defensa.

ENSAMBLADOR
Uso y aplicacin del lenguaje ensamblador.

El uso del lenguaje ensamblador no es para la gente comn y corriente,
sino para profesionistas en el rea de computacin que estn obligados
a conocer este lenguaje, ya que proporciona una serie de caractersticas
que no se pueden encontrar en los lenguajes de alto nivel. Algunas de
estas caractersticas son:

Se puede acceder a cualquier localidad de la memoria RAM sin
ninguna restriccin.
Se pueden programar virus, debido a que se tiene un acceso total a
casi todo el hardware de la computadora va interrupciones de
software.
Se pueden programar Drivers de cualquier dispositivo.
Se puede acceder directamente a los registros internos del CPU.
Se puede acceder directamente a los dispositivos de entrada y/o
salida.
Los programas objeto generados a tras del ensamblador son mas
veloces que los generados en cualquier otro lenguaje, debido a que
una instruccin en ensamblador corresponde a una instruccin en
lenguaje mquina.

Alto nivel
Mediano
nivel
Bajo nivel
Maquina
Cobol
Pascal
Basic
Java
C
BCPL
Ensamblador
001110011010100
Los lenguajes de bajo nivel son mas
fciles de utilizar que los lenguajes
mquina, pero, al igual que ellos,
dependen de la mquina en
particular. El lenguaje de bajo nivel
por excelencia es el ensamblador.
Las instrucciones en lenguaje
ensamblador son instrucciones
conocidas como nemotcnicos.

Por ejemplo, nemotcnicos tpicos de operaciones
aritmticas son: en ingls, ADD, SUB, DIV, etc.; en
espaol, SUM, RES, DIV,etc. Una instruccin tpica de
suma sera:
ADD M, N, P


Esta instruccin podra significar sumar el nmero
contenido en la posicin de memoria M al nmero
almacenado en la posicin de memoria N y situar el
resultado en la posicin de memoria P.

Evidentemente es mucho ms sencillo recordar la
instruccin anterior con un nemotcnico que su
equivalente en cdigo mquina.
0110 1001 1010 1011

Un programa escrito en lenguaje
ensamblador no puede ser ejecutado
directamente por la computadora en
esto se diferencia esencialmente del
lenguaje mquina, sino que requiere
una fase de traduccin al lenguaje
mquina.
El programa original escrito en
lenguaje ensamblador se denomina
programa fuente y el programa
traducido en lenguaje mquina se
conoce como programa objeto, ya
directamente entendible por la
computadora.
El traductor de programas fuente a
objeto es un programa llamado
ensamblador, existente en casi todos
los computadores.
MICROPROCESADOR
El microprocesador o simplemente
procesador, es el circuito integrado
central y ms complejo de una
computadora

El procesador es un circuito
integrado constituido por millones de
componentes electrnicos integrados.
Su arquitectura interna consta de las
siguientes partes

Unidad de control
Unidad Aritmtica lgica
Registros Internos
Buses internos
Interrupciones
Arquitectura Interna del
microprocesador
Secuencia de acciones
1. Se inicia en una posicin de memoria definida
2. Se lee el dato de esa posicin y se manda al
control
3. La unidad de control decodifica la instruccin
y la ejecuta en seales adecuadas
4. Se incrementa el contador del programa
(registro que indica a que posicin se debe
dirigir)
5. Se repite proceso desde el punto 2, hasta
recibir unas seal del exterior

Arquitectura del
microprocesador
ALU
Circutito digital que realiza
operaciones artimeticas y logicas

Unidad de control
Cerebro del microprocesador, genera
seales de control interno y externo.
Recibe cdigos los cuales decodifica y
ejecuta.

Los cdigos pueden ser:
1. Operaciones aritmtico lgicas
2. Cargar o leer datos
3. Saltos o interrupciones
Regsitros internos
Posiciones de memoria con utilidad general o especifica.
Tipos:
1. Registros de datos: operaciones aritmticas lgicas y
manipulacin de datos
2. Registros de Direcciones : para acceder a posiciones de
memoria
- Contador de programa: leer o escribir datos de
programa
- Puntero de pila: Recuperar y guardar datos de uso
interno
- ndices: para acceder a posiciones de memoria en
forma relativa
3. Registro de estado: para informacin especifica

Interrupciones
Utilizadas para interrumpir la
secuencia del programa.
Buses Internos
Caminos de comunicacin que conectan dos
o mas dispositivos o acceder a diferentes
partes del circuito

1. Bus de direccin: para seleccionar
posicin de memoria para leer o escribir
datos
2. Bus de datos: transmitir datos
El microprocesador se dividen por el
numero de bits que conforman el dato
4, 8 , 16, 32, 46 bits
3. Bus de control: para sincronizar
actividades y transacciones con los
perifricos del sistema
CLASIFICACION DEL
MICROPROCESADOR
Una forma es en funcin de las instrucciones que
son capaces de ejecutar.
Microprocesadores con tecnologa CISC y RISC

CISC (Complex Instructions Set Computer):
Interpreta y ejecuta un gran numero de
instrucciones, lo cual los hace lentos

RISC ( Reduced Instructios Set Computer):
Interpreta y ejecuta solo instrucciones reducidas,
son mas rpidos que los CISC
Von Neumann
Es una de las arquitecturas mas primitivas, cuando se
invento los programas eran muy pequeos y los costos
de memoria eran muy altos. En esta estructura, tanto
datos como programa son guardados en la misma
memoria y accesados en el mismo bus.
Cada instruccin es leda de memoria, decodificada y
ejecutada.
Durante el estado de decodificacin algunos operadores
son ledos de la misma memoria.
Las computadoras Von Neumann son llamadas tambin
computadoras de almacenamiento de programas,
porque los programas son guardados en ROM, la cual no
se cambia durante el tiempo de ejecucin.