Lenguaje Ensamblador Segunda Parte Unidad I
Lenguaje Ensamblador Segunda Parte Unidad I
Lenguaje Ensamblador Segunda Parte Unidad I
El microprocesador es un circuito integrado que contiene algunos o todos los elementos necesarios para conformar una
(o más) “unidad central de procesamiento” UCP, también conocido como CPU (por sus siglas en inglés: Central Process
Unit). En la actualidad este componente electrónico está compuesto por millones de transistores, integrados en una
misma placa de silicio.
Se debe distinguir entre el concepto de Procesador, que es un concepto de Hardware, con el concepto de CPU, que es
un concepto lógico. Una CPU puede estar soportada por uno o varios microprocesadores, y un microprocesador puede
soportar una o varias CPU.
1.- El microprocesador es la parte de la computadora diseñada para llevar acabo o ejecutar los programas.
2.- Ejecuta instrucciones que se le dan a la computadora a muy bajo nivel haciendo operaciones lógicas simples, como
sumar, restar, multiplicar y dividir.
3.- Viene siendo el cerebro de la computadora, el motor, el corazón de esta máquina.
Está conformado por los siguientes elementos: Memoria, Unidad Aritmética Lógica (ALU), Puertos de Entrada y Salida
(Buses), La Unidad de Control (UC) y un reloj que sincroniza su funcionamiento.
1.2.1.- BUSES.
Buses de comunicación en un circuito impreso. En Arquitectura de computadoras, el bus es un sistema digital que
transfiere datos entre los componentes de un computador o entre computadores. Están formados por cables o pistas
en un circuito impreso, dispositivos como resistencias y condensadores además de circuitos integrados.
La mayoría de los buses están basados en conductores metálicos por los cuales se trasmiten señales eléctricas que son
enviadas y recibidas con la ayuda de integrados que poseen una interfaz del bus dado y se encargan de manejar las
señales y entregarlas como datos útiles.
Todos los buses de computador tienen funciones especiales como las interrupciones y las DMA que permiten que un
dispositivo periférico acceda a una CPU o a la memoria usando el mínimo de recursos.
1.2.2.- REGISTROS.
Los registros del procesador se emplean para controlar instrucciones en ejecución, manejar direccionamiento de
memoria y proporcionar capacidad aritmética. Los registros son espacios físicos dentro del microprocesador con
capacidad de 4 bits hasta 64 bits dependiendo del microprocesador que se emplee. Los registros son direccionables por
medio de una viñeta, que es una dirección de memoria. Los bits, por conveniencia, se numeran de derecha a izquierda
(15, 14, 13…. 3, 2, 1, 0), los registros están divididos en seis grupos los cuales tienen un fin específico. Los registros se
dividen en:
Registros de segmento.
Registros de apuntadores de instrucciones.
Registros apuntadores.
Registros de propósitos generales.
Registro índice.
Registro de bandera.
REGISTRO CS.
El DOS almacena la dirección inicial del segmento de código de un programa en el registro CS. Para propósito de
programación normal, no se necesita referenciar el registro CS.
REGISTRO DS.
La dirección inicial de un segmento de datos de programa es almacenada en el registro DS. En términos sencillos, esta
dirección, más un valor de desplazamiento en una instrucción, genera una referencia a la localidad de un bytes
especifico en el segmento de datos.
REGISTRO SS.
El registro SS permite la colocación en memoria de una pila, para almacenamiento temporal de direcciones y datos. El
DOS almacena la dirección de inicio del segmento de pila de un programa en el registro SS.
REGISTRO ES.
Algunas operaciones con cadenas de caracteres (datos de caracteres) utilizan el registro esta de segmento para
manejar el direccionamiento de memoria. En este contexto, el registro ES esta asociado con el registro DI (índice). Un
programa que requiere el uso del registro ES puede inicializarlo con una dirección apropiada.
REGISTROS APUNTADORES.
Los registros apuntadores están asociados con el registro SS y permiten al procesador accesar datos en el segmento de
pila los registros apuntadores son dos:
EL REGISTRO SP.
El apuntador de pila IP de 16 bits está asociado con el registro SS y proporciona un valor de desplazamiento que se
refiere a la palabra actual que está siendo procesada en la pila.
EL REGISTRO BP.
El registro BP de 16 bits facilita la referencia de parámetros, los cuales son datos y direcciones transmitidos vía lápida.
REGISTROS AX.
El registro AX, el acumulador principal, es utilizado para operaciones que implican entrada/salida y la mayor parte de la
aritmética. Por ejemplo, las instrucciones para multiplicar, dividir y traducir suponen el uso del AX.
REGISTRO BX.
El BX es conocido como el registro base ya que es el único registro de propósitos generales que pueden ser unos índices
para direccionamiento indexado. También es común emplear al BX para cálculos.
REGISTRO CX.
El CX es conocido como el registro contador. Puede contener un valor para controlar el número de veces que un ciclo se
repite o un valor para corrimiento de bits, hacia la derecha o hacia la izquierda.
REGISTRO DX.
El DX es conocido como el registro de datos. Algunas operaciones de entrada/salida requieren su uso, y las operaciones
de multiplicación y división con cifras grandes suponen al DX y al AX trabajando juntos.
REGISTRO ÍNDICE.
REGISTRO SI.
El registro índice de 16 bits es requerido por algunas operaciones con cadenas (de caracteres). En este contexto, el SI
está asociado con el registro DS.
REGISTRO DI.
El registro índice destino también es requerido por algunas operaciones con cadenas de caracteres. En este contexto, el
Di está asociado con el registro ES.
REGISTRO DE BANDERA.
Los registros de banderas sirven parar indicar el estado actual de la maquina y el resultado del procesamiento, Cuando
algunas instrucciones piden comparaciones o cálculos aritméticos cambian el estado de las banderas.
BANDERA
Las banderas más comunes son las siguientes:
OF (Over flow flag, desbordamiento): Indica el desbordamiento de un bit de orden alto (mas a la izquierda) después de
una operación aritmética.
DF (Direction flag, Dirección): Designa la dirección hacia la izquierda o hacia la derecha para mover o comparar cadenas
de caracteres.
IF (Interruption flag, Interrupción): Indica que una interrupción externa, como la entrada desde el teclado sea
procesada o ignorada.
TF (Trap flag, Trampa): Examina el efecto de una instrucción sobre los registros y la memoria. Los programas
depuradores como DEBUG, activan esta bandera de manera que pueda avanzar en la ejecución de una sola
interrupción a un tiempo.
SF (Sign flag, Signo): Contiene el signo resultante de una operación aritmética (0=positivo y 1= negativo).
MODO IMPLICITO.
En este modo se especifican los operandos en forma implícita en la definición de la instrucción. Por ejemplo, la
instrucción "complementar acumulador" es una instrucción de modo implícito porque el operando en el registro de
acumulador está implícito en la definición de la instrucción. De hecho todas las instrucciones de referencia a registro
que utilizan un acumulador son instrucciones de modo implícito.
Las instrucciones de dirección cero en una computadora organizada con pila son instrucciones de modo implícito
porque está implícito que los operandos están en la parte superior de la pila.
MODO INMEDIATO.
En este modo se especifica el operando en la instrucción misma. En otras palabras, una instrucción de modo inmediato
tiene un campo operando, en lugar de un campo de dirección. Un campo de operando contiene el operando real que se
va a usar junto con la operación especificada en la instrucción. Las instrucciones de modo inmediato son útiles para
inicializar registros en un valor constante.
Se menciono antes que el campo de dirección de una instrucción puede especificar una palabra de memoria o un
registro de procesador. Cuando el campo de dirección especifica un registro de procesador se dice que la instrucción
esta en modo de registro.
MODO DE REGISTRO.