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

Introduccin al lenguaje ensamblador

Perspectiva histrica

Charles Babagge y su maquina analtica. En su diseo, la mquina constaba de


cinco unidades bsicas:

1) Unidad de entrada, para introducir datos e instrucciones;

2) Memoria, donde se almacenaban datos y resultados intermedios;

3) Unidad de control, para regular la secuencia de ejecucin de las operaciones;

4) Unidad Aritmtico-Lgica, que efecta las operaciones;

5) Unidad de salida, encargada de comunicar al exterior los resultados.

Perspectiva histrica

PRIMERA GENERACIN (1951 a 1958)


Las computadoras de la primera Generacin emplearon bulbos para procesar
informacin.

SEGUNDA GENERACIN (1959-1964)


Transistor Compatibilidad Limitada

TERCERA GENERACIN (1964-1971)


Circuitos Integrados, Compatibilidad con Equipo Mayor, Multiprogramacin,
Minicomputadora.

CUARTA GENERACIN (1971 a 1981)


Microprocesador , Chips de memoria, Microminiaturizacin

QUINTA GENERACIN Y LA INTELIGENCIA ARTIFICIAL (1982-?)

Perspectiva histrica

Perspectiva histrica

Surgen representaciones para las instrucciones de unos y ceros, llamadas


instrucciones mnemnicas que eran ms fciles de recordar (MOVE, LDA, ADD, etc.)

Un traductor es un mediador entre dos entidades: emisoras y receptoras, los


mediadores enmascaran la complejidad y heterogeneidad de los lenguajes.

Los primeros traductores que pasan las instrucciones mnemnicas a Binario


recibieron el nombre de ensambladores, y se convirtieron en el primer lenguaje de
los ordenadores.

Perspectiva histrica

Perspectiva histrica

Perspectiva histrica

Perspectiva histrica

Clasificacin de los lenguajes


de programacin

Clasificacin de los lenguajes de


programacin
LENGUAJE MQUINA
LENGUAJES DE BAJO NIVEL
LENGUAJES DE ALTO NIVEL

Clasificacin de los lenguajes de


programacin
LENGUAJE MQUINA
La computadora utiliza el alfabeto binario ( 0s y 1s, denominados bits).
Las instrucciones se dividen en dos partes: 1) Comando u operacin y 2)
Operando.
Ventajas: posibilidad de cargar sin necesidad de traduccin posterior (mayor
velocidad).
Desventajas: dificultad y lentitud en la codificacin. Poca fiabilidad. Gran
dificultad para verificar y poner a punto los programas. Los programas solo son
ejecutables en el mismo procesador (CPU).

Clasificacin de los lenguajes de


programacin
LENGUAJE MQUINA
Aritmticas / lgicas / desplazamiento.
Transferencia de datos.
Comparacin / condicional.
Saltos, llamadas a subrutinas.
De entrada / salida.

Lenguajes de bajo nivel

Se encuentran totalmente vinculados a la estructura del computador.

Estn diseados para sacar el mximo partido de las caractersticas fsicas del computador.

Caractersticas:

Dependencia absoluta de la arquitectura del computador.


Imposibilidad de transportar programas entre distintas mquinas, salvo que sean de la
misma familia o compatibles.
Instrucciones poco potentes.
Programas muy largos.
Cdigos de operacin, datos y referencias en binario.

Tipos:

Lenguaje ensamblador.

Clasificacin de los lenguajes de


programacin
LENGUAJE ENSAMBLADOR

El lenguaje ensamblador (o lenguaje de ensamble, assembly language) es la


representacin simblica de la codificacin binaria de un computador.

Existe una correspondencia biunvoca entre las instrucciones de mquina y las


instrucciones de un lenguaje ensamblador.

Cada instruccin ensamblador es una codificacin simblica de una instruccin de


mquina.

El lenguaje ensamblador debe ser traducido a lenguaje mquina para poder ser
interpretado y ejecutado directamente por el computador.

Hoy da los lenguajes ensambladores tienen sus aplicaciones mas reducidas en la


programacin de aplicaciones y se centran en aplicaciones de tiempo real, control de
procesos y de dispositivos electrnicos, etc.

Proceso de traduccin
MIPS (siglas de Microprocessor
without Interlocked Pipeline Stages).
Microprocesadores de arquitectura
RISC desarrollados por MIPS
Technologies.
Ejemplo: Sistemas embebidos; en
dispositivos para Windows CE;
routers Cisco; y videoconsolas como
la Nintendo 64 o las Sony PlayStation,
PlayStation 2 y PlayStation Portable.

Proceso de traduccin

El Motorola 68000 (MC68000).

Clasificacin de los lenguajes de


programacin

Clasificacin de los lenguajes de


programacin
LENGUAJE ENSAMBLADOR

El lenguaje ensamblador (o lenguaje de ensamble, assembly language) es la


representacin simblica de la codificacin binaria de un computador.

Existe una correspondencia biunvoca entre las instrucciones de mquina y las


instrucciones de un lenguaje ensamblador.

Cada instruccin ensamblador es una codificacin simblica de una instruccin de


mquina.

El lenguaje ensamblador debe ser traducido a lenguaje mquina para poder ser
interpretado y ejecutado directamente por el computador.

Arquitectura 8086

Universidad Rafael Landivar


Microprogramacin
2do. Ciclo 2,012

Arquitectura 8086

Componentes bsicos
1. Oscilador de reloj: es el encargado de dar un ritmo de funcionamiento al procesador y a
toda la circuitera en general; por lo tanto, determina la cantidad de instrucciones que el
procesador puede ejecutar por segundo.
2. CPU: Es el microcircuito al cual entran las instrucciones de cdigo mquina y donde las
mismas son procesadas (ejecutadas).
3. Memoria: Est formada por una serie de chips donde se almacena toda la informacin del
sistema, lo cual incluye tanto al cdigo (instrucciones) como los datos de cualquier tipo.
4. Bus de datos: Es el bus por donde se mueve la informacin digital que circula por todo el
sistema (memoria, puertos...), desplazndose principalmente entre la memoria y la CPU, y
viceversa. Este bus es de 16 bits en el 8086 (8 bits en el 8088 y 32 bits en 80386 y
80486).
5. Bus de direcciones: Es el bus usado por la CPU para indicar a la memoria la posicin en
la que est la informacin a la que se quiere acceder (ya sea para leerla o para escribir en
ella). Una vez se haya accedido a esa posicin en la memoria, sta enviar su contenido a
travs del mencionado bus de datos. El bus de direcciones posee 20 bits de ancho de
banda, por lo que se pueden indicar 2^20 = 1.048.576 posiciones de memoria distintas.
6. Bus de control: Este bus es el encargado de indicar al sistema tanto el tipo de
informacin que circula por el bus de datos en cada momento, como de sincronizar las
seales que controlan el funcionamiento de la circuitera del sistema.

El microprocesador

El microprocesador (CPU, Central Process Unit) ejecuta los programas lleva a cabo
clculos, comparaciones numricas y transferencia de datos como respuesta a las
peticiones de los programas almacenados en memoria.
La unidad de control es la que
gobierna todo el funcionamiento
del ordenador.
La unidad de proceso (ALU) es
la que ejecuta las operaciones
aritmticas y lgicas.
Los registros son dispositivos de
un ordenador para el
almacenamiento temporal de
datos.

Los registros de la CPU


Se usan para contener los datos con que se est trabajando puesto que el acceso a los
registros es mucho ms rpido que los accesos a memoria. Se pueden realizar
operaciones aritmticas y lgicas, comparaciones, entre otras. Se pueden hacer estas
operaciones con todos los registros excepto los de segmento, el IP, y los flags.

Registros de Propsito General

Los registros de propsito general (de 16 bits) son:

Registro AX: El registro AX es el registro acumulador, es utilizado para operaciones que


implican entrada/salida, y multiplicacin y divisin (estas dos ltimas en conjunto con el
registro DX)

Registro BX: El registro BX es el registro base, y es el nico registro de propsito general


que puede ser un ndice para direccionamiento indexado

Registro CX: El registro CX es conocido como el registro contador. Puede contener un


valor para controlar el nmero de veces que un ciclo se repite o un valor para corrimiento
de bits

Registro DX: El registro DX es el registro de datos. En algunas operaciones se indica


mediante este registro el nmero de puerto de entrada/salida, y en las operaciones de
multiplicacin y divisin de 16 bits se utiliza junto con el acumulador AX

Cada uno de ellos se divide en dos registros de 8 bits, llamados AH y AL, BH y BL, CH y
CL, y, DH y DL, H significando Hight (alto) y L significando Low (bajo), indicando la parte
alta o la parte baja del registro correspondiente de 16 bits (ver esquema). Un programa
poda usar tanto los registros de 16 bits como los registros de 8 bits.

Registros ndice

Los registros SI y DI estn disponibles para direccionamiento indexado y para operaciones


de cadenas de caracteres.

Registro SI: El registro ndice fuente de 16 bits es requerido por algunas operaciones con
cadenas de caracteres. El SI est asociado con el segmento DS.

Registro DI: El registro ndice destino tambin es requerido por algunas operaciones con
cadenas de caracteres. El DI est asociado con el segmento ES.

Registros de banderas

Es un registro de 16 bits, de los cuales nueve sirven para indicar el estado actual de la
mquina y el resultado del procesamiento. Muchas instrucciones aritmticas y de
comparacin cambian el estado de las banderas y apoyndose en ellas se pueden tomar
decisiones para determinar la accin subsecuente.

Los bits de las banderas son las siguientes:

OF (overflow, desbordamiento): Indica desbordamiento del bit de mayor orden despus


de una operacin aritmtica de nmeros con signo (1=existe overflow; 0=no existe
overflow). Para operaciones sin signo, no se toma en cuenta esta bandera.

DF (direccin): Controla la seleccin de incremento o decremento de los registros SI y DI


en las operaciones con cadenas de caracteres (1=decremento automtico; 0=incremento).
La bandera DF se controla con las instrucciones STD y CLD.

IF (interrupcin): Controla el disparo de las interrupciones (1=habilita las interrupciones;


0=deshabilita las interrupciones). La interrupcin no enmascarable es la nica que no
puede ser bloqueada por esta bandera. El estado de la bandera IF se controla con las
instrucciones STI y CLI.

Registros de banderas

TF (trampa): Permite la operacin del procesador en modo de depuracin (paso a paso)

SF (signo): Contiene el signo resultante de una operacin aritmtica (0=positivo;


1=negativo).

ZF (cero): Indica el resultado de una operacin aritmtica o de comparacin (0=resultado


diferente de cero; 1=resultado igual a cero).

AF (acarreo auxiliar): Contiene el acarreo del bit 3. Esta bandera se prueba con las
instrucciones DAA y DAS para ajustar el valor de AL despus de una suma o resta BCD.

PF (paridad): Indica si el nmero de bits 1, del byte menos significativos de una


operacin, es par (0=nmero de bits 1 es impar; 1=nmero de bits 1 es par).

CF (acarreo): Contiene el acarreo del bit de mayor orden despus de una operacin
aritmtica; tambin almacena el contenido del ltimo bit en una operacin de
desplazamiento o de rotacin.

Registros de segmento

Definen reas de 64 Kb dentro del espacio de direcciones de 1 Mb del 8086. Estas reas
pueden solaparse total o parcialmente. No es posible acceder a una posicin de memoria
no definida por algn segmento: si es preciso, habr de moverse alguno.

Registro CS: El DOS almacena la direccin inicial del segmento de cdigo de un


programa en el registro CS. Esta direccin de segmento, ms un valor de desplazamiento
en el registro apuntador de instruccin (IP), indica la direccin de una instruccin que es
buscada para su ejecucin. Para propsitos de programacin normal, no se necesita
referenciar el registro CS.

Registro DS: La direccin inicial de un segmento de datos de programa es almacenada


en el registro DS. Esta direccin, ms un valor de desplazamiento en una instruccin,
genera una referencia a la localidad de un byte especfico en el segmento de datos.

Registros de segmento

Registro SS: El registro SS permite la colocacin en memoria de una pila, para


almacenamiento temporal de direcciones y datos. El DOS almacena la direccin de inicio
del segmento de pila de un programa en el registro SS. Esta direccin de segmento, ms
un valor de desplazamiento en el registro del apuntador de la pila (SP), indica la palabra
actual en la pila que est siendo direccionada. Para propsitos de programacin normal,
no se necesita referenciar el registro SS.

Los registros SP (apuntador de pila) y BP (apuntador base) estn asociados con el registro
SS y permiten al sistema acceder a datos en el segmento de la pila.
Registro BP: El apuntador base de 16 bits facilita la referencia de parmetros dentro
de la pila.
Registro SP: El apuntador de pila de 16 bits est asociado con el segmento SS y
proporciona un valor de desplazamiento que se refiere a la palabra actual que est
siendo procesada en la pila. El sistema maneja de manera automtica este registro,
aunque el programa puede hacer ciertas manipulaciones con l.

Registro ES: Algunas operaciones con cadenas de caracteres utilizan el registro extra de
segmento para manejar el direccionamiento de memoria. El registro ES est asociado con
el registro DI (ndice). Un programa que requiere el uso del registro ES puede inicializarlo
con una direccin de segmento apropiada.

Registros apuntador de
instrucciones

El registro IP de 16 bits contiene el desplazamiento de direccin de la siguiente instruccin


que se ejecuta. El IP est asociado con el registro CS en el sentido de que el IP indica la
instruccin actual dentro del segmento de cdigo que se est ejecutando actualmente en
la memoria.

ALU

La unidad aritmtico-lgica es el segundo principal componente de la unidad central de


proceso. Se encarga de realizar las operaciones aritmticas y lgicas con los datos que
recibe, siguiendo rdenes de la unidad de control.

Las operaciones que realiza la ALU se pueden agrupar en las siguientes categoras:
Operaciones aritmticas, tales como suma, resta, multiplicacin y divisin.
Operaciones de lgica binaria, tales como and, or, xor, not
Operaciones de desplazamientos y rotaciones.
Operaciones de transformacin de operandos, tales como extensin de signo,
transformacin a otro formato de numeracin, etc.

Arquitectura 8086

Divisin de la memoria

Universidad Rafael Landivar


Microprogramacin
2do. Ciclo 2,012

La memoria en un 8086/8088

La memoria RAM de un ordenador es utilizada para almacenar programas o datos con los
que el procesador trabaja. Todos los ordenadores necesitan memoria para almacenar
programas e informacin, as como para cargar y ejecutar los programas.

Direccionamiento de la memoria

Dado que el 8086/8088 tiene una longitud de palabra de direcciones de 20-bits es posible
direccionar hasta 1.048.576 (= 2^20) localidades distintas de memoria, es decir, podemos
almacenar hasta 1Mbyte de informacin.

Tericamente slo se podra acceder hasta el byte nmero 65.535 (216, el nmero mayor
posible de 16 bits) contando a partir del inicio, que es el byte 0.

La memoria en un 8086/8088

La memoria RAM de un ordenador es utilizada para almacenar programas o datos con los
que el procesador trabaja. Todos los ordenadores necesitan memoria para almacenar
programas e informacin, as como para cargar y ejecutar los programas.

Direccionamiento de la memoria

Dado que el 8086/8088 tiene una longitud de palabra de direcciones de 20-bits es posible
direccionar hasta 1.048.576 (= 2^20) localidades distintas de memoria, es decir, podemos
almacenar hasta 1Mbyte de informacin.

Tericamente slo se podra acceder hasta el byte nmero 65.535 (216, el nmero mayor
posible de 16 bits) contando a partir del inicio, que es el byte 0.

Вам также может понравиться