1. Republica Bolivariana de Venezuela
Ministerio del poder popular para la educación
Politécnico Santiago Mariño
Maracaibo Edo. Zulia
Microprocesadores
Cátedra: Microprocesadores
Integrantes:
José Urdaneta ci.: 22.056.680
Alfredo Saavedra ci.: 25.334.769
2. ESQUEMA
1) Registro de Instrucciones del Microprocesador
2) Modos de Direccionamiento
• Implícito
• Inmediato
• Directo
• Indirecto
• Absoluto
• De registro
• Indirecto mediante registros
• De desplazamiento
• De pila
• Relativo a un registro base
• Relativo a un registro índice
• Indexado respecto a una base
• Relativo al contador de programa
• Indexado con autoincremento/autodecremento
• Instrucción de salto con direccionamiento absoluto
• Instrucción de salto con direccionamiento relativo
3. 1) Registro de Instrucciones del Microprocesador
El registro de instrucción IR es un registro de la unidad de control del CPU en donde
se almacena la instrucción que se está ejecutando. En los procesadores simples cada
instrucción a ser ejecutada es cargada en el registro de la instrucción que la contiene
mientras se es decodificada, preparada y a la final ejecutada, un proceso que puede
tomar varios pasos. Los procesadores más complejos usan una tubería de registros de
instrucción donde cada etapa de la tubería hace parte del trabajo, decodificación,
preparación, o ejecución, y después pasa el resultado a la siguiente etapa para realizar
el siguiente paso hasta que la instrucción es procesada totalmente. Esto funciona
como una línea de ensamblaje en donde en cada etapa se hace un trabajo parcial, y
luego se pasa a la siguiente etapa para continuar con la fabricación del producto. Los
procesadores modernos pueden incluso hacer algunos de los pasos de fuera de orden
ya que la decodificación de varias instrucciones se hace en paralelo.
Los microprocesadores, las unidades centrales de procesamiento (CPU por sus
siglas en inglés de Central Processing Unit) de cualquier dispositivo informático,
realizan tareas básicas y avanzadas de procesamiento de información. Toman datos de
los programas de software en la forma de bits binarios (0 y 1) y los procesan de
acuerdo con los comandos proporcionados. Generan secuencias binarias de salida, que
se transforman en datos entendibles para los usuarios finales. Dentro de estos
microprocesadores existe un componente llamado registro de información, que
almacena temporalmente los valores de los datos a los que se accede con frecuencia
durante el proceso. Los registros, de importancia primordial dentro de la jerarquía de
memoria de la computadora, se utilizan para almacenar sólo los valores de los datos,
comandos, estados binarios y otras instrucciones que definen qué datos se procesan y
cómo.
Funciones
Los registros de datos principalmente funcionan como lugares de memoria
electrónica temporal de frecuente y fácil acceso a través de la CPU de una
computadora. Esta accesibilidad se debe a la ubicación de los registros dentro de los
microprocesadores. Como resultado de ello, la CPU puede acceder a ellos con mayor
rapidez que los módulos de memoria de acceso aleatorio (RAM por sus siglas en inglés
de Random Access Memory) y otros lugares de almacenamiento electrónicos como
memoria de sólo lectura (ROM por sus siglas en inglés de Read Only Memory) y
memoria flash. Un microprocesador normal contiene múltiples matrices de estos
registros y cada uno está fabricado para mantener sólo una pequeña cantidad de datos
binarios. Un registro en funcionamiento tiene una capacidad de memoria de 8, 16, 32
o 64 bits; estos valores dependen de la arquitectura del microprocesador.
4. Operaciones
Los registros en un microprocesador funcionan como datos en tiempo real que
llevan unidades de memoria electrónica. Esto significa que cuando un usuario da una
orden a una aplicación de software (a través de un clic del ratón o pulsando una tecla),
se traduce en una declaración binaria y se envía al microprocesador. Estas
declaraciones son recibidas por registros del microprocesador, que los mantienen
durante unos nanosegundos si el procesador ya está ocupado, y luego las envía a
petición del procesador. Estos registros también tienen los bits procesados en tiempo
real de datos cuando se transmitieron los bits de datos previamente procesados, así
como también mantienen las ubicaciones y los comandos asociados con los valores de
entrada o los datos procesados.
Categorías
Hay ocho categorías principales de los registros de datos integradas en las CPU.
Estos incluyen contadores de programa (PC), para almacenar los bits de dirección de
instrucción de datos actualmente procesado; registros de instrucción (IR), para el
almacenamiento de instrucciones binarias mientras están siendo procesados o
decodificados; acumuladores (CA), para el almacenamiento de resultados de cálculos
matemáticos por la unidad lógica aritmética de la CPU; dirección de registros de
memoria (MAR), para el almacenamiento de ubicaciones de dirección de los bits de
datos dentro de la memoria principal de una computadora; búfer de registros de
memoria (MBR), para almacenar y retener temporalmente los bits de datos entrantes
antes de reenviarlos al microprocesador, estado o bandera de registros (FR), para
mantener y actualizar los estados de funcionamiento de los microprocesadores;
registros condicionales (CR), para mantener los valores condicionales o lógicos de los
datos procesados y registros de propósito general (GPR), para almacenar
temporalmente los bits de datos generales o instrucciones.
Importancia
Los registros no sólo comparten la carga del procesador, sino que también le
proporción a instrucciones acerca de cómo se deben procesar los datos. Además, estos
registros proporcionan una importante ayuda a los microprocesadores en la tarea de
determinar dónde enviar los datos tras el procesamiento, y en qué disposición
almacenarlo en la memoria principal o dentro de un dispositivo de almacenamiento.
También, el número de registros integrados y operando dentro de un microprocesador
ayuda a definir su eficiencia operativa y capacidades de procesamiento de datos.
5. 2) Modos de Direccionamiento
Los llamados modos de direccionamiento son las diferentes maneras de especificar
en informática un operando dentro de una instrucción en lenguaje ensamblador. Un
modo de direccionamiento especifica la forma de calcular la dirección de memoria
efectiva de un operando mediante el uso de la información contenida en registros y / o
constantes, contenida dentro de una instrucción de la máquina o en otra parte.
Implícito:
En este modo de direccionamiento no es necesario poner ninguna dirección de
forma explícita, ya que en el propio código de operación se conoce la dirección del (de
los) operando(s) al (a los) que se desea acceder o con el (los) que se quiere operar.
Supongamos una arquitectura de pila, las operaciones aritméticas no requieren
direccionamiento explícito.
Inmediato:
En este modo el operando es especificado en la instrucción misma. En otras
palabras, una instrucción de modo inmediato tiene un campo de operando en vez de
un campo de dirección. El campo del operando contiene el operando actual que se
debe utilizar en conjunto con la operación especificada en la instrucción. Las
instrucciones de modo inmediato son útiles para inicializar los registros en un valor
constante. Cuando el campo de dirección especifica un registro del procesador, la
instrucción se dice que está en el modo de registro.
Directo:
El campo de operando en la instrucción contiene la dirección en memoria
donde se encuentra el operando. En este modo la dirección efectiva es igual a la parte
de dirección de la instrucción. El operando reside en la memoria y su dirección es dada
directamente por el campo de dirección de la instrucción. En una instrucción de tipo
ramificación el campo de dirección especifica la dirección de la rama actual.
Indirecto:
El campo de operando contiene una dirección de memoria, en la que se
encuentra la dirección efectiva del operando.
Absoluto:
El campo de operando contiene una dirección en memoria, en la que se
encuentra la instrucción. Y no se cancela.
De Registro:
Sirve para especificar operandos que están en registros. En este modo, los
operandos están en registros que residen dentro de la CPU
6. Indirecto Mediante Registros:
En este modo el campo de la dirección de la instrucción da la dirección en
donde la dirección efectiva se almacena en la memoria. El control localiza la
instrucción de la memoria y utiliza su parte de dirección para acceder a la memoria de
nuevo para leer una dirección efectiva. Unos pocos modos de direccionamiento
requieren que el campo de dirección de la instrucción sea sumado al control de un
registro especificado en el procesador.
De Desplazamiento:
Combina el modo directo e indirecto mediante registros
De Pila:
Se utiliza cuando el operando está en memoria y en la cabecera de la pila. Este
direccionamiento se basa en las estructuras denominadas Pila(tipo LIFO), las cuales
están marcados por el fondo de la pila y el puntero de pila (*SP), El puntero de pila
apunta a la última posición ocupada. Así, como puntero de direccionamiento usaremos
el SP. El desplazamiento más el valor del SP nos dará la dirección del objeto al que
queramos hacer referencia. En ocasiones, si no existe C. de desplazamiento solo se
trabajara con la cima de la pila.
Relativo a un Registro Base:
Consiste, al igual que el indirecto a través de registro, en calcular la dirección
efectiva (EA, effective address) como la suma del contenido del registro base y un
cierto desplazamiento (offset) que siempre será positivo. Esta técnica permite códigos
reentrantes y acceder de forma fácil y rápida a posiciones cercanas de memoria. Este
modo de direccionamiento es muy usado por los ensambladores cuando se llaman a
las funciones (para acceder a los parámetros almacenados en la pila).
Relativo a un Registro Indice:
Es similar al anterior, excepto que es el contenido del registro índice el que
indica el desplazamiento que se produce a partir de una dirección de memoria que se
pasa también como argumento a la orden que utiliza este modo de direccionamiento.
Aunque en esencia son dos modos equivalentes. La EA se calcula como la suma del
contenido del registro índice y una dirección de memoria
Indexado Respecto a una Base:
Se trata de una combinación de los dos anteriores y consiste en calcular la
dirección efectiva
Relativo al Contador de Programa:
Consiste en dirección una posición de memoria usando como registro base al
contador de programa (PC), el funcionamiento es análogo al direccionamiento
respecto a registro base con la salvedad de que, en este caso, el offset puede ser
también negativo.
7. Indexado con Autoincremento / Autodecremento:
Es un modo de direccionamiento análogo al indexado, La única diferencia es
que permite un incremento o decremento de la dirección final o el registro índice
según
los siguientes casos:
-> Indexado con autopreincremento: Incrementa el registro índice primero (se
incrementa un valor, según el tamaño del objeto direccionado) y luego calcula la EA al
igual que el direccionamiento indexado.
-> Indexado con autoposincremento: Calcula la dirección efectiva y después
incrementa esta.
-> Indexado con autopredecremento: Decrementa el registro índice y después calcula
la dirección efectiva.
-> Indexado con autoposdecremento: Calcula la dirección efectica y después
decrementa esta.
Instrucción de salto con direccionamiento absoluto:
Consiste en cargar en el PC el valor que se especifica en la orden de salto, p.e:
jmp 0xAB ----> Carga 0xAB en PC
Instrucción de salto con direccionamiento relativo:
Es parecida a la especificada anteriormente la diferencia es que el salto es
relativo al PC, pongamos un ejemplo:
Supongamos que PC vale = 0x0A, si nosotros interpretamos la instrucción jr
+03, saltaremos tres posiciones posteriores a PC (también podría ser -03 y serían
posiciones anteriores). Pero, ¡cuidado! si esa instrucción estaba en la posición 0x0A la
dirección de PC a incrementar será la inmediatamente posterior (ya que PC se
incrementa automáticamente después de leer la instrucción), por lo que quedaría:
PC = 0x0B ---> nuevo PC = 0x0B+0x03 = 0x0E, con lo que el PC quedaría como 0x0E.