You are on page 1of 4

LENGUAJE ENSAMBLADOR

El lenguaje ensamblador ofrece al programador la posibilidad de realizar tareas muy especficas que
sera muy difcil llevar a cabo en un lenguaje de alto nivel.
El conocimiento de lenguaje ensamblador permite una compresin de la arquitectura de la mquina
que ningn lenguaje de alto nivel puede ofrecer.
Desarrollar aplicaciones en lenguajes de alto nivel resulta mucho ms productivo que hacerlo en
ensamblador, pero este ltimo resuelto especialmente atractivo cuando hay que optimizar
determinadas rutinas que suponen un cuello de botella para el rendimiento del sistema.
Los programas residentes y las rutinas de servicio de interrupcin casi siempre se escriben en
ensamblador.
La carga inicial de un SO debe realizarse en ensamblador, pues hacerlo con un lenguaje de alto nivel
supondra usar instrucciones que en ese momento no pueden ser ejecutadas por la mquina.
CUNDO PROGRAMAR EN ENSAMBLADOR?
"Hay algunas situaciones en las cuales los profesionales pudieran elegir utilizar el lenguaje
ensamblador"
Interactuando directamente con el hardware, por ejemplo en drivers de dispositivo manejadores de
interrupcin.
Es requerida la optimizacin externa. Los programadores de juegos toman ventajas de las
habilidades de las caractersticas del hardware en los sistemas, permitiendo a los juegos correr ms
rpidamente. Tambin las grandes simulaciones cientficas requieren algoritmos altamente
optimizados.
Un sistema con severas limitaciones de recursos debe ser codificador a mano.
QU ES UN PROCESADOR?
El cerebro del ordenador es el procesador. Su funcin es ejecutar los programas almacenados en la
memoria principal tomando las instrucciones, examinndolas y ejecutndolas una tras otra. Para ello
el procesador realiza todas las operaciones aritmticas, lgicas y de control que son necesarias.
Los registros del procesador se emplean para controlar instrucciones en ejecucin, manejar
direccionamiento de memoria y proporcionar capacidad aritmtica.
Los registros del procesador tienen como misin fundamental: almacenar las posiciones de memoria
que van o sufrir repetidos manipulaciones, ya que los accesos a memoria son mucho ms lentos que
los accesos a los registros.
El 8086 dispone de 14 registros de 16 bits que se emplean para controlar la ejecucin de
instrucciones, direccionar la memoria y proporcionar capacidad aritmtica y lgica. Cada registro
puede almacenar datos o direcciones de memoria. Los registros son direccionales por medio de un
nombre.

Los diferentes registros del 8086 se clasifican en:

Registros de propsito general o de datos


Registros de segmento
Registro apuntador de instrucciones (IP)
Registros apuntadores (SP y BP)
Registros ndice (SI y DI)
Registros banderas, FLAGS o registro de estado (FL).

Instrucciones segn cada registro.

Registros de propsito general (AX, BX, CX, DX).


Registros Punteros y registros ndice (SP, BP, SI, DI).
Registro de segmento (CS, DS, SS, ES).
Registro de puntero de instrucciones y Registro de banderas, FLAGS o de estado FL (IP,
FLAGS o FL).
REGISTROS DE PROPSITO GENERAL

Registro AX, este registro es el acumulador principal, implicado en gran parte de las operaciones de
aritmticas y de E/S.
Registro BX, Recibe el nombre de registro base ya que es el nico registro de propsito general que
se usa como un ndice en el direccionamiento indexado. Se suele utilizar para clculos aritmticos.
Registro CX, es conocido como registro contador ya que puede contener un valor para controlar el
nmero de veces que se repite una cierta operacin.
Registro DX, se conoce como registro de datos. Algunas operaciones de E/S requieren su uso, y las
operaciones de multiplicacin y divisin con cifras grandes suponen que el DX y AX trabajando
juntos.

Los registros de propsito general se pueden direccionar como una palabra o como un byte. El byte
de la izquierda es la parte alta y el byte de la derecha es la parte baja.

Siguiendo es nomenclatura, es posible referirse a cada uno de los dos bytes de orden alto o ms
significativo y byte de orden bajo o menos significativo, de cada uno de estos registros. Por ejemplo:
AH es el byte ms significativo del registro AX, mientras que el AL es el menos significativo.
Un segmento es un rea especial en un programa que inicia en un lmite de un prrafo, esto es una
localidad regularmente divisible entre 0 o hex.
Un segmento en modo real puede ser de hastak. Se puede tener cualquier nmero de segmentos,
para direccionar un segmento en particular basta cambiar la direccin en el segmento apropiado. Los
tres principales segmentos son: segmentos de cdigo, de datos y de la pila.
Los registros de segmento son registros de 16 bits que constituyen la implementacin fsica de la
arquitectura segmentada del 8086.

REGISTRO DE SEGMENTO
Registro CS. Registro de segmento de cdigo (Code Segment). Establece el rea de memoria donde
est el programa durante su ejecucin.
Registro DS. Registro Segmento de Datos (Data Segment). Especifica la zona donde los programas
leen y escriben sus datos.
Registro SS. Registro Segmento de Pila (Stack Segment). Permite la colocacin en memoria de una
pila, para almacenamiento temporal de direcciones y datos.
Registro ES. Registro Segmento Extra. Se suele utilizar en algunas operaciones con cadenas de
caracteres para direccionar la memoria.
REGISTRO APUNTADOR DE INSTRUCCIONES (IP).
Se trata de un registro de 16 bits que contiene el desplazamiento de la direccin de la siguiente
instruccin que se ejecutara. Est asociado con el registro CS en el sentido de que IP indica el
desplazamiento de la siguiente instruccin a ejecutar dentro del segmento de cdigo determinado
por CS.
Direccin del segmento de cdigo en CS: 25A40H
Desplazamiento dentro del segmento de cdigo en IP: 25A40H + 0412H = 25E52H
Direccin de la siguiente instruccin a ejecutar: 25E52H
REGISTRO APUNTADORES (SP Y BP)
Los registros apuntadores estn asociados al registro de segmento SS y permiten acceder a los
datos almacenados en la pila:
Registro SP: Proporciona un valor de desplazamiento que se refiere a la palabra actual que est
siendo procesada en la pila.
Registro BP: Facilita la referencia a los parmetros de las rutinas, los cuales son datos y direcciones
transmitidos va la pila.
REGISTROS NDICE (SI Y DI)
Los registros ndice se utilizan fundamentalmente en operaciones con cadenas y para
direccionamiento indexado:
Registro SI. Registro ndice fuente requerido en algunas operaciones con cadenas de caracteres.
Este registro est asociado con el registro DS.
Registro DI. Registro ndice destino requerido tambin en determinadas operaciones con cadenas de
caracteres. Est asociado al registro DS o ES.

REGISTRO DE BANDERAS FLAGS O REGISTRO ESTADO


Es un registro de 16 bits pero solo se utilizan nueve de ellos. Sirven para indicar el estado actual de
la maquina y el resultado del procesamiento. La mayor parte de las instrucciones de comparacin y
aritmticas modifican este registro, Algunas instrucciones pueden realizar pruebas sobre este
registro para determinar la accin siguiente.
Los bits 0,2,4,6,7 y 11 son indicadores de condicin que reflejan los resultados de las operaciones
del programa; los bits 8 al 10 son indicadores de control que, modificados por el programador, sirven
para controlar ciertos modos de procesamiento, y el resto no se utilizan.
OF. Bit de overFlow o desbordamiento. Indica desbordamiento de un bit de orden alto (mas a la
izquierda), despus de una operacin aritmtica.
DF bit de direccin designa la direccin creciente (0) o decreciente (1), en operaciones con cadenas
de caracteres.
IF bit de interrupcin indica que una interrupcin externa, como la entrada desde el teclado, sea
procesada o ignorada.
TF bit de trap o desvo. Procesa o ignora la interrupcin interna de trace (procesamiento paso o
paso).
SF bit de signo. Indica el valor del bit ms significativo del registro despus de una operacin
aritmtica o de desplazamiento.

ZF: Bit Cero. Se pone 1 si una operacin produce como resultado.


AF: Bit de Carry Auxiliar se pone a 1 si una operacin aritmtica produce un acarreo del bit 3 al 4. Se
usa para aritmtica especializada (ajuste BCD).
PF: Bit de paridad. Se activa si el resultado de una operacin tiene paridad par.
CF: Bit de Acarreo. Contiene el acarreo de una operacin aritmtica de desplazamiento de bits.

You might also like