Está en la página 1de 41

TEMA:

Modos de Direccionamiento y Conjunto de


Instrucciones del Procesador Intel Core i7

ESTUDIANTES:
-Geovanny Campoverde
-Emilio Rodriguez

PROFESOR:
-Ing. Otto Parra
El presente documento nos dar a conocer los Mtodos de
Direccionamiento que realiza el Procesador (CPU) para el manejo de los
datos, adems del Conjunto de Operaciones del mismo, analizando
primeramente aspectos fundamentales de dicho Juego de Instrucciones
basado en el procesador x86, para finalmente contrastarlo con la ltima
generacin de procesadores como son los Intel, especficamente el
Procesador Intel Core i7.

Palabras Clave: Campos, Direccionamiento, Procesador, Operaciones,
Datos, Registros, Instrucciones de Datos, Operandos.
Como es ya de nuestro conocimiento el avance en el desarrollo de los
procesadores ha sido a pasos agigantados. Ao a ao nuevas tecnologas
se desarrollan lo que implica que la fabricacin de los procesadores tiene
que ser constante teniendo como exigencia principal la capacidad de
procesamiento de datos.

Cada vez las mejoras en la Computacin exigen un mayor manejo de
datos, para ello este artculo nos mostrara de una manera global como se
manejan los datos dentro del procesador, llegando as a conocer cada uno
de los Modos de Direccionamiento del Procesador.

Tambin se sabe que a partir del desarrollo del procesador x86 los nuevos
procesadores fueron fabricados en base al Conjunto de Instrucciones de
este, conocidas como primarias, es por eso que se analizar
principalmente el Conjunto de Instrucciones del x86 y posteriormente lo
que se ha aadido a los nuevos procesadores Intel Core i7.
Son las diferentes maneras de especificar en informtica un operando
dentro de una instruccin (lenguaje ensamblador). Cmo se especifican e
interpretan las direcciones de memoria segn las instrucciones.

Un modo de direccionamiento especifica la forma de calcular la direccin
de memoria efectiva de un operando mediante el uso de la informacin
contenida en registros y / o constantes, contenida dentro de una
instruccin de la mquina o en otra parte.
Los ordenadores utilizan tcnicas de direccionamiento con los siguientes
fines:
1 Dar versatilidad de programacin al usuario, proporcionando
facilidades tales como ndices, direccionamientos indirectos, etc., esta
versatilidad sirve para manejar estructuras de datos complejas como
vectores, matrices, etc.
2 Reducir el nmero de bits del campo de operando.

Es tal la importancia de los modos de direccionamiento que la potencia de una
maquina se mide tanto por su repertorio de instrucciones como por la variedad de
modos de direccionamiento que es capaz de admitir.

Implcito:
En este modo de direccionamiento no es necesario poner ninguna
direccin de forma explcita, ya que en el propio cdigo de operacin se
conoce la direccin del (de los) operando(s) al (a los) que se desea acceder
o con el (los) que se quiere operar.
Un ejemplo de este tipo de direccionamiento lo podemos encontrar en la
arquitectura de acumulador (AC) donde siempre hay un parmetro
implcito y este es el AC.
Finalizando y dejando este modo de direccionamiento generalizado para
las arquitecturas ms usuales, se remarca que tambin se puede encontrar
en la arquitectura con registros de propsito general, por ejemplo con
rdenes como set c, que pone a 1 el registro c (acarreo).


Inmediato:
En la instruccin est incluido directamente el operando.
En este modo el operando es especificado en la instruccin misma. En
otras palabras, una instruccin de modo inmediato tiene un campo de
operando en vez de un campo de direccin.

El campo del operando contiene el operando actual que se debe utilizar
en conjunto con la operacin especificada en la instruccin. Las
instrucciones de modo inmediato son tiles para inicializar los registros en
un valor constante.

Cuando el campo de direccin especifica un registro del procesador, la
instruccin se dice que est en el modo de registro.



Inmediato:



Fig. 1. Funcionamiento del Mtodo de Direccionamiento Inmediato

Ejemplo 1: MOV A, #17H
Directo:
El campo de operando en la instruccin contiene la direccin en memoria
donde se encuentra el operando.
En este modo la direccin efectiva es igual a la parte de direccin de la
instruccin. El operando reside en la memoria y su direccin es dada
directamente por el campo de direccin de la instruccin. En una
instruccin de tipo ramificacin el campo de direccin especifica la
direccin de la rama actual.
Con este tipo de direccionamiento, la direccin efectiva es contenida en la
misma instruccin, tal como los valores de datos inmediatos que son
contenidos en la instruccin. Un procesador de 16 bits suma la direccin
efectiva al contenido del segmento de datos previamente desplazado en 4
bits para producir la direccin fsica del operando.


Directo:
Fig. 2. Funcionamiento del Mtodo de Direccionamiento Directo

Ejemplo: MOV A, 17H
Indirecto:
El campo de operando contiene una direccin de memoria, en la que se
encuentra la direccin efectiva del operando.


Indirecto:

Fig. 3. Funcionamiento del Mtodo de Direccionamiento Indirecto
Ejemplo: MOV A,@17H
Fig. 3. Funcionamiento del Mtodo de Direccionamiento Indirecto

Ejemplo: MOV A,@17H

Absoluto:
El campo de operando contiene una direccin en memoria, en la que se
encuentra la instruccin.

De Registro:
Sirve para especificar Operandos que estn en registros.

De Registro:
Fig. 4. Funcionamiento del Mtodo de Direccionamiento De Registros

Ejemplo: MOV A, R0
Indirecto Mediante Registros:
El campo de operando de la instruccin contiene un identificador de
registro en el que se encuentra la direccin efectiva del operando.
En este modo el campo de la direccin de la instruccin da la direccin en
donde la direccin efectiva se almacena en la memoria. El control localiza
la instruccin de la memoria y utiliza su parte de direccin para accesar la
memoria de nuevo para leer una direccin efectiva. Unos pocos modos de
direccionamiento requieren que el campo de direccin de la instruccin
sea sumado al control de un registro especificado en el procesador.
La direccin efectiva en este modo se obtiene del siguiente clculo:

Dir. Efectiva = Dir. De la parte de la instruccin + Contenido del
registro del procesador

Indirecto Mediante Registros:

Fig. 5. Funcionamiento del Mtodo de Direccionamiento Indirecto
mediante Registros

Ejemplo: MOV A,@R0
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 estn marcados por el fondo de la pila y el puntero de
pila (*SP), El puntero de pila apunta a la ltima posicin ocupada. As,
como puntero de direccionamiento usaremos el SP. El desplazamiento
ms el valor del SP nos dar la direccin del objeto al que queramos hacer
referencia. En ocasiones, si no existe C. de desplazamiento solo se
trabajara con la cima de la pila. Este tipo de direccionamiento nos aporta
flexibilidad pero por el contrario, es mucho ms complejo que otros tipos
tratados anteriormente.
Indexado con Respecto a una Base:
En este modo el contenido de un registro ndice se suma a la parte de
direccin de la instruccin para obtener la direccin efectiva.
El registro ndice es un registro CPU especial que contiene un valor
ndice. Un campo de direccin de la instruccin define la direccin inicial
del arreglo de datos en la memoria.
Cada operando del arreglo se almacena en la memoria en relacin con la
direccin inicial.
La distancia entre la direccin inicial y la direccin del operando es el
valor del ndice almacenado en el registro de ndice. Cualquier operando
en el arreglo puede accesarse con la misma instruccin siempre y cuando
el registro ndice contenga el valor de ndice correcto. El registro ndice
puede incrementarse para facilitar el acceso a Operandos consecutivos.
Direccionamiento de Registro Base:
En este modo, el contenido de un registro base se suma a la parte de
direccin de la instruccin para obtener la direccin 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 ms que en la
manera en que se calculan. Se considera que un registro base contiene una
direccin base y que el campo de direccin de la instruccin proporciona
un desplazamiento en relacin con esta direccin base.
El modo de direccionamiento de registro base se utiliza en las
computadoras para facilitar la localizacin de los programas en memoria.
El Conjunto de Instrucciones tambin llamado Juego de Instrucciones
o ISA (del ingls Instruction Set Architecture, Arquitectura del
Conjunto de Instrucciones) es una especificacin que detalla las
instrucciones que un procesador de una computadora puede entender y
ejecutar, es decir el conjunto de todos los comandos implementados por
un diseo particular de un procesador. El trmino describe los aspectos
del procesador generalmente visibles a un programador, incluyendo los
tipos de datos nativos, las instrucciones, los registros, la arquitectura de
memoria y las interrupciones, entre otros aspectos.

El conjunto de instrucciones se emplea a veces para distinguir este
conjunto de caractersticas de la micro-arquitectura, que son los
elementos y tcnicas que se emplean para implementar el conjunto de
instrucciones. Entre estos elementos se encuentras las microinstrucciones
y los sistemas de cach.

Procesadores con diferentes diseos internos pueden compartir un
conjunto de instrucciones; por ejemplo el Intel Pentium y AMD Athlon
implementan versiones casi idnticas del conjunto de instrucciones x86,
aunque tienen diseos internos completamente opuestos.

Las Caractersticas principales en general de un Conjunto de Instrucciones
son:
Completo: Que se pueda realizar en un tiempo finito cualquier tarea
ejecutable con un ordenador (computable o decidible).
Eficiente: Que permita alta velocidad de clculo sin exigir una elevada
complejidad en su UC y ALU y sin consumir excesivos recursos
(memoria), es decir, debe cumplir su tarea en un tiempo razonable
minimizando el uso de los recursos.
Autos contenidos: Esto es, que contengan en s mismas toda la
informacin necesaria para ejecutarse.
Independientes: Que no dependan de la ejecucin de alguna otra
instruccin.
Adems se puede decir que para que un conjunto de instrucciones sea
completo solo se necesitan cuatro instrucciones:
Escritura
Mover a la izquierda una posicin y leer
Mover a la derecha una posicin y leer
Parar
Con este conjunto no se puede conseguir la eficiencia del repertorio de
instrucciones por lo que en la prctica el conjunto suele ser ms amplio en
aras de conseguir un mejor rendimiento, tanto en uso de recursos como
en consumo de tiempo.
Bsicamente el Conjunto de Instrucciones se basa en dos aspectos
fundamentales:

Densidad de Cdigo: Es una caracterstica fundamental pues muchos de los
programas en la actualidad tienen instrucciones muy complejas lo cual
hace que el manejo de los procesos necesite cada vez un procesador ms
eficaz, el cual pueda procesar los datos de una manera rpida, directa y sin
retardos.

Numero de Operandos: El nmero de Operandos se refiere a como los datos
se van procesando durante la ejecucin de una instruccin.

El formato de la instrucciones es un conjunto de especificaciones que
indican como debe ser interpretado el patrn de bits de una instruccin
de mquina para logra su ejecucin dentro del computador.
El formato de la instruccin nos indica cual es el cdigo de operacin y
cules son los Operandos que la instruccin especfica, tanto explcita
como implcitamente.

Transferencia de Datos: Copian datos de un origen a un destino, sin
modificar el origen y normalmente sin afectar a los flags o indicadores de
condicin. Pueden transferir palabras, fracciones de palabras (bytes, media
palabra) o bloques completos de n bytes o palabras.
TABLA I
EJEMPLOS DE TRANSFERENCIA DE DATOS
Instrucciones Aritmticas: Son efectuadas por la ALU y suelen cambiar los
flags o indicadores de condicin.
TABLA II
EJEMPLOS DE INSTRUCCIONES ARITMETICAS
Instrucciones Lgicas: Realizan operaciones booleanas "bit a bit" entre dos
Operandos. Como las aritmticas tambin modifican los flags.
TABLA III
EJEMPLOS DE INSTRUCCIONES LOGICAS
Instrucciones Comparacin: Suelen preceder a una instruccin de bifurcacin
condicional y modifican los flags. No hay que pensar que las instrucciones
de salto condicional dependen de este repertorio, ya que lo nico que hace
el salto condicional es consultar los flags y salta si precede, pero no
depende de ninguna instruccin de comparacin. (De hecho cualquier
operacin aritmtica realizada anteriormente a un salto condicional puede
provocar que este "salte").
TABLA IV
EJEMPLOS DE INSTRUCCIONES COMPARACION
Control de Flujo de Programa: Permiten modificar la secuencia normal de
ejecucin de un programa, puede hacerse por salto condicional relativo o
absoluto.
Se clasifican en cuatro grupos:
GRUPO ACCION
Salto Incondicional Salta sin comprobar ninguna condicin.
Salto Condicional Salta si la condicin se cumple.

Llamada a Subrutinas Invoca la ejecucin de funciones anteriormente definidas.

Gestin de las
Interrupciones

Se usan para llamar a las rutinas de servicio de interrupcin y
esto se puede hacer por hardware o bien por software.
Necesita una instruccin similar a return para retornar al
contexto anterior pero restableciendo el estado de la mquina,
para no afectar a la aplicacin a la cual se interrumpi (iret).

Instrucciones de Desplazamiento: Pueden ser aritmtico o lgico y pueden
incluir o no rotaciones. Pueden ser de izquierda a derecha.
TABLA V
EJEMPLOS DE INSTRUCCIONES DE DESPLAZAMIENTO
Instrucciones de Bits: Comprueban un bit del operando y su valor lo reflejan
en el indicador de cero. Pueden poner un bit a 0 o complementarlo.
TABLA VI
EJEMPLOS DE INSTRUCCIONES DE BITS
Entrada/Salida: Son instrucciones de transferencia salvo que el
origen/destino de dicho flujo es un puerto de un dispositivo de E/S.
Estas instrucciones pueden darse mediante dos alternativas:
E/S "mapeada" en memoria: Los perifricos tienen direcciones asignadas de
la MP por lo que no se necesitan instrucciones especiales y las
operaciones se realizan con las ya vistas, como son: load, store y move.

E/S independiente: Necesitan unas instrucciones especiales para indicarle al
procesador que nos estamos refiriendo al mapa de direcciones de E/S, ya
que este mapa y el mapa de memoria son disjuntos.
Entrada/Salida:
TABLA VII
EJEMPLOS DE INSTRUCCIONES DE ENTRADA/SALIDA
Control y Miscelneas: Se usan como semforos, esto es, se declara una
variable entera que tendr el valor 0 si el recurso esta libre y 1 si est
siendo utilizado, de manera que si un procesador comprueba y el
semforo est en 1 tendr que esperar hasta que este cambie a 0.
TABLA VIII
EJEMPLOS DE INSTRUCCIONES MISCELANEAS
Streaming SIMD Extensions (SSE) es un conjunto de
instrucciones SIMD (nica Instruccin, Mltiples Datos) aadidas en el
ao 1999 al procesador Pentium III, como extensin a la arquitectura
x86 como respuesta a la tecnologa 3DNow! que AMD tena
implementada aos atrs.
La versin 4.2 de las extensiones de vector de Intel SSE trae de regreso al
futuro el x86 ISA atrs con la adicin de nuevas instrucciones de
manipulacin de cadenas. Pero la cadena de instrucciones del nuevo SSE
4.2 est destinada a acelerar el procesamiento de XML, lo que las
convierte en perfectas para la Web y aplicaciones futuras basadas en
XML.
SSE 4.2 tambin incluye una instruccin CRC que acelera el
almacenamiento y las aplicaciones de red, as como una instruccin
POPCNT til para una variedad de tareas de patrn
especificado. Adems, para ofrecer mejor soporte a las aplicaciones multi-
hilo, Intel ha reducido la latencia de los hilos de las primitivas de
sincronizacin.

En el frente de virtualizacin, acelera las transiciones y tiene algunas
mejoras sustanciales, en su sistema de memoria virtual que reduce en gran
medida el nmero de esas transiciones requeridas por el Hypervisor.
Como se ha podido constatar, los modos de direccionamiento, y el
conjunto de operaciones, es lo que define actualmente a un procesador en
el mercado, y a medida que ms se actualicen y se logre entender su
verdadera utilidad, implementando nuevas formas de uso, podremos tener
mucha ms potencia y capacidad de procesamiento para los
computadores. Consecuentemente con esto, tendremos un avance
tecnolgico en todas las esferas de una sociedad que actualmente est
regida casi completamente por el uso de los ordenadores.
http://www.fdi.ucm.es/profesor/jjruz/WEB2/Temas/EC2.pdf
http://es.wikipedia.org/wiki/Conjunto_de_instrucciones
http://www.alegsa.com.ar/Dic/conjunto%20de%20instrucciones.php
http://atc.ugr.es/docencia/udigital/04.html
http://infomicros.wordpress.com/2008/08/12/intelcorei7/
http://teleformacion.edu.aytolacoruna.es/PASCAL/document/flujo.htm
http://www.terra.es/personal/fremiro/modos_de_direccionamiento.htm
http://dac.escet.urjc.es/~lrincon/uned/etc1/ModosDireccionamiento.pdf
http://moisesrbb.tripod.com/m_direct.html
http://es.wikipedia.org/wiki/Modos_de_direccionamiento

También podría gustarte