Lenguaje Ensamblador Segunda Parte Unidad I

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 5

1.2.- EL MICROPROCESADOR.

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.

Ing. Leonardo Ramírez L. - ITSEldorado


REGISTROS DE SEGMENTO.
Un registro de segmento se utiliza para alinear en un límite de párrafo o dicho de otra forma codifica la dirección de
inicio de cada segmento y su dirección en un registro de segmento supone cuatro bits 0 a su derecha.
Un registro de segmento tiene 16 bits de longitud y facilita un área de memoria para direccionamientos conocidos
como el segmento actual. Los registros de segmento son:
 Registro CS
 Registro DS
 Registro SS
 Registro ES
 Registro FS y GS
 Registro CS.

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.

REGISTRO APUNTADOR DE INSTRUCCIONES (IP).


El registro apuntador de instrucciones (IP) de 16 bits contiene el desplazamiento de dirección de la siguiente instrucción
que se ejecuta. El registro IP está asociado con el registro CS en el sentido de que el IP indica la instrucción actual
dentro del segmento de código que se está ejecutando actualmente.

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 DE PROPÓSITOS GENERALES.


Los registros de propósitos generales AX, BX, CX y DX son los caballos de batalla o las herramientas del sistema. Son los
únicos en el sentido de que se puede direccionarlos como una palabra o como una parte de un byte. El último byte de
la izquierda es la parte “alta”, y el último byte de la derecha es la parte “baja” por ejemplo, el registro CX consta de una

Ing. Leonardo Ramírez L. - ITSEldorado


parte CH (alta) y una parte CL (baja), y usted puede referirse a cualquier parte por si nombre. Las instrucciones
siguientes mueven ceros a los registros CX, CH y CL respectivamente.
Mov CX, 00
Mov CH, 00
Mov CL, 00

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).

Ing. Leonardo Ramírez L. - ITSEldorado


ZF (Zero flag, Zero).: Indica el resultado de una operación aritmética o de comparación (0= resultado diferente de cero
y 1=resultado igual a cero).
AF (Auxiliary carry flag, Acarreo auxiliar): Contiene un acarreo externo del bit 3 en un dato de 8 bits, para aritmética
especializada
PF (Parity flag, Paridad): Indica paridad par o impar de una operación en datos de ocho bits de bajo orden (mas a la
derecha).
CF (Carry flag, Acarreo): Contiene el acarreo de orden más alto (mas a la izquierda) después de una operación
aritmética; también lleva el contenido del último bit en una operación de corrimiento o rotación.

1.2.3.- MODOS DE DIRECCIONAMIENTO.


El campo de operación de una instrucción especifica la operación que se va a ejecutar. Esta operación debe realizarse
sobre algunos datos almacenados en registros de computadora o en palabras de memoria. La manera en que eligen los
operandos durante la ejecución del programa depende del modo de direccionamiento de la instrucción. El modo de
direccionamiento especifica una regla para interpretar o modificar el campo de dirección de la instrucción antes de que
se haga la referencia real al operando. Las computadoras utilizan técnicas de modo de direccionamiento para acomodar
una o las dos siguientes consideraciones:
1.- Proporcionar al usuario versatilidad de programación al ofrecer facilidades como apuntadores a memoria,
contadores para control de ciclo, indexación de datos y reubicación de datos.
2.- Reducir la cantidad de bits en el campo de direccionamiento de la instrucción.
Para comprender los diferentes modos de direccionamiento que se presentaran en esta sección, es imperativo
entender el ciclo de operación básico de la computadora. La unidad de control de una computadora está diseñada para
recorrer un ciclo de instrucciones que se divide en tres fases principales:
1. Búsqueda de la instrucción de la memoria.
2. Decodificar la instrucción.
3. Ejecutar la instrucción.
Hay un registro en la computadora llamado contador de programa o PC, que lleva un registro de las instrucciones del
programa almacenado en la memoria. Pc contiene la dirección de la siguiente instrucción que se va a ejecutar y se
incrementa cada vez que se recupera una instrucción de la memoria. La decodificación realizada en el paso 2 determina
la operación que se va a ejecutar, el modo de direccionamiento de la instrucción y la posición de los operandos.
Después la computadora ejecuta la instrucción y regresa al paso 1 para hacer la búsqueda de la siguiente instrucción en
secuencia.
Aunque la mayoría de los modos de direccionamiento modifican el campo de dirección de la instrucción, hay dos
modos que no necesitan el campo de dirección. Son los modos implícito e inmediato.

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.

Ing. Leonardo Ramírez L. - ITSEldorado


En este modo, los operandos están en registros que residen dentro de la CPU. Se selecciona el registro particular de un
campo de registro en la instrucción. Un campo k bits puede especificar cualquiera de 2 a la k registros.

MODO INDIRECTO POR REGISTRO.


En este modo la instrucción especifica un registro en la CPU cuyo contenido proporciona la dirección del operando en la
memoria. En otras palabras, el registro seleccionado contiene la dirección del operando en lugar del operando mismo.
Antes de utilizar una instrucción de modo indirecto por registro, el programador debe asegurarse de que la dirección de
memoria del operando está colocada en el registro del procesador con una instrucción previa. Entonces una referencia
al registro es equivalente a especificar una dirección de memoria. La ventaja de una instrucción de modo de registro
indirecto es que el campo de dirección de la instrucción utiliza menos bits para seleccionar un registro de los que
necesitaría para especificar una dirección de memoria en forma directa.

MODO DE DIRECCIONAMIENTO DIRECTO.


En este modo la dirección efectiva es igual a la parte de dirección de la instrucción. El operando reside en memoria y su
dirección la proporciona en forma directa el campo de dirección de la instrucción. En una instrucción de tipo brinco el
campo de dirección especifica la dirección de transferencia de control del programa real.

MODO DE DIRECCIONAMIENTO INDIRECTO.


En este modo, el campo de dirección de la instrucción proporciona la dirección en que se almacena la dirección efectiva
en la memoria. El control recupera la instrucción de la memoria y utiliza su parte de dirección para accesar la memoria
una vez más con el fin de leer la dirección efectiva.
Unos cuantos modos de direccionamiento requieren que el campo de dirección de la instrucción se sume al contenido
de un registro específico en la CPU. En estos modos la dirección efectiva se obtiene del cálculo siguiente:
Dirección efectiva = Parte de la instrucción + El contenido de registro CPU.
EL registro de CPU utilizado en el cálculo puede ser el contador de programa, un registro de índice o un registro base.
En cualquier caso tenemos un modo de direccionamiento diferente que se utiliza para una aplicación distinta.

MODO DE DIRECCIONAMIENTO INDEXADO.


En este modo el contenido de un registro índice se suma a la parte de dirección de la instrucción para obtener la
dirección efectiva. El registro índice es un registro CPU especial que contiene un valor índice. Un campo de dirección de
la instrucción define la dirección inicial del arreglo de datos en la memoria. Cada operando del arreglo se almacena en
la memoria en relación con la dirección inicial.
La distancia entre la dirección inicial y la dirección del operando es el valor del índice almacenado en el registro de
índice. Cualquier operando en el arreglo puede accesarse con la misma instrucción siempre y cuando el registro índice
contenga el valor de índice correcto. El registro índice puede incrementarse para facilitar el acceso a operandos
consecutivos.
Algunas computadoras dedican un registro de CPU para que funcione exclusivamente como un registro índice. De
manera implícita este registro participa cuando se utiliza una instrucción de modo índice. En las computadoras con
muchos registros de procesador, cualquiera de los registros de la CPU pueden contener el número de índice. En tal
caso, el registro debe estar especificado en forma explícita en un campo de registro dentro del formato de instrucción.

MODO DE DIRECCIONAMIENTO DE REGISTRO BASE.


En este modo, el contenido de un registro base se suma a la parte de dirección de la instrucción para obtener la
dirección efectiva. Esto es similar al modo de direccionamiento indexado, excepto en que el registro se denomina ahora
registro base, en lugar de registro índice. La diferencia entre los dos modos está en la manera en que se usan más que
en la manera en que se calculan. Se considera que un registro base contiene una dirección base y que el campo de
dirección de la instrucción proporciona un desplazamiento en relación con esta dirección base. El modo de
direccionamiento de registro base se utiliza en las computadoras para facilitar la localización de los programas en
memoria.

Ing. Leonardo Ramírez L. - ITSEldorado

También podría gustarte