Beruflich Dokumente
Kultur Dokumente
ESTRUCTURA Y ORGANIZACIN DE UN
PROCESADOR
Fecha: 23/08/2016
INDICE
1.1 Importancia de la programacin en lenguaje ensamblador................................2
Bibliografa........................................................................................................ 18
capacidad de realizar tareas muy tcnicas que seran difciles, si no es que imposibles de
realizar en un lenguaje de alto nivel.
1. Funcin del PC
La funcin del PC consiste en seguir la pista de la instruccin por buscar (capturar) en el
siguiente ciclo de mquina, por lo tanto contiene la direccin de la siguiente instruccin
por ejecutar. El PC es modificado dentro del ciclo de bsqueda de la instruccin actual
mediante la suma de una constante. El nmero que se agrega al PC es la longitud de una
instruccin en palabras.
Por lo tanto, si una instruccin tiene una palabra de longitud se agrega 1 al PC, si una
instruccin tiene dos palabras de largo se agrega 2, y as sucesivamente.
2. Funcin de MAR
Registro de direcciones de la memoria (MAR): funciona como registro de enlace entre la
CPU y el canal de direcciones. Cuando se logra el acceso a la memoria la direccin es
colocada en el MAR por la unidad de control y ah permanece hasta que se completa la
transaccin. El nmero de bit que hay en el MAR es igual al del canal de direcciones.
La diferencia que existe entre el PC y el MAR es que durante el ciclo de ejecucin de una
instruccin, el PC y el MAR sirven al mismo fin. Sin embargo, muchas de las instrucciones
de la maquina hacen referencia a la memoria y operan con los datos que estn en ella.
Como la direccin de los datos suele ser diferente de la instruccin siguiente se necesita
el MAR.
3. Funcin de RD
Registro de datos: la funcin del RD consiste en proporcionar un rea de
almacenamiento temporal (memoria intermedia, acumulada o buffer) de datos que se
intercambian entre la PCU y la memoria. Los datos pueden ser instrucciones (obtenidos
en el ciclo de ejecucin) o datos del operando (obtenidos en el ciclo de ejecucin). Debido
a su conexin directa con el canal de datos el RD contiene el mismo nmero de bit que
dicho canal.
4. Funcin de IR
Registro de instrucciones (IR): es un registro que conserva el cdigo de operacin de la
instruccin en todo el ciclo de la mquina. El cdigo es empleado por la unidad de control
de la CPU para generar las seales apropiadas que controla le ejecucin de la
instruccin. La longitud del ER es la longitud en bit del cdigo de operacin.
5. Funcin de PSW
INT 10h (Servicios de video). Procedimientos que muestran rutinas que controlan la
posicin del cursor,
escriben texto a color, desplazan la pantalla y muestran grfi cos de video.
INT 16h (Servicios de teclado). Procedimientos que leen el teclado y comprueban su
estado.
INT 17h (Servicios de impresora). Procedimientos que inicializan, imprimen y
devuelven el estado de la
impresora.
INT 1Ah (Hora del da). Procedimiento que obtiene el nmero de pulsaciones del reloj
desde que se
encendi el equipo, o establece el contador a un nuevo valor.
INT 1Ch (Interrupcin de temporizador del usuario). Un procedimiento vaco que se
ejecuta 18.2 veces
por segundo.
INT 21h (Servicios de MS-DOS). Procedimientos que proporcionan entrada-salida,
manejo de archivos
Manejo de interrupciones
El BIOS y MS-DOS contienen manejadores de interrupciones que simplifican la
entrada/salida, as como las tareas bsicas del sistema. Vimos muchos de stos: las
rutinas INT 10h para la manipulacin del video, las rutinas INT 16h para el teclado, los
servicios INT 21h de MS-DOS, etctera. Pero una parte igualmente importante del
sistema operativo es su conjunto de manejadores de interrupciones, que responden a las
interrupciones del hardware. MS-DOS nos permite sustituir cualquiera de estas rutinas de
servicio con nuestras propias rutinas.
Tabla de vectores de interrupcin
La clave de la fl exibilidad de MS-DOS recae en la tabla de vectores
de interrupcin que se encuentra en los primeros 1024 bytes de RAM (ubicaciones 0:0 a
0:03FF). La tabla
16-2 contiene un corto ejemplo de entradas en la tabla de vectores. Cada entrada en la
tabla (conocida como
vector de interrupcin) es una direccin tipo segmento-desplazamiento de 32 bits, que
apunta a una de las
rutinas de servicio existentes.
En cualquier computadora dada, los valores de los vectores variarn debido a las distintas
versiones del BIOS y de MS-DOS. Cada vector de interrupcin corresponde a un nmero
de interrupcin. En la tabla, la direccin del manejador de INT 0 (divisin entre cero) es
02C1:5186h. Para obtener el desplazamiento de cualquier vector de interrupcin, se
multiplica su nmero de interrupcin por 4. Por ende, el desplazamiento del vector para
INT 9h es 9 * 4, o 0024 hexadecimal.
1) Un programa de aplicacin que contenga una instruccin INT podra producir una
llamada a la rutina, a lo cual se le conoce como interrupcin de software
2) una interrupcin de hardware ocurre cuando un dispositivo de hardware (puerto
asncrono, teclado, temporizador, etctera) enva una seal al chip Controlador de
interrupciones programable.
Interrupciones de hardware
Una interrupcin de hardware se genera mediante el Controlador de interrupciones
programable (PIC) Intel 8259, el cual indica a la CPU que debe suspender la ejecucin del
programa actual y ejecutar una rutina de servicio de interrupcin. Por ejemplo, un carcter
del teclado que espera en el puerto de entrada se perdera si la CPU no lo guarda, o los
caracteres recibidos del puerto serial se perderan si no fuera por una rutina controlada
por interrupciones, que los almacena en un bfer.
En ocasiones, los programas deben deshabilitar las interrupciones de hardware al realizar
operaciones delicadas en los registros de segmento y la pila. La instruccin CLI (borra
bandera de interrupcin) deshabilita las interrupciones, y la instruccin STI (establece
bandera de interrupcin) habilita las interrupciones.
1.5 Llamadas a servicios del sistema
Las llamadas son peticiones a ejecucin de rutinas y proporcionan la interfaz entre el
sistema operativo y un programa en ejecucin. Estas llamadas son instrucciones de
lenguaje ensamblador y se presentan en los manuales que emplean los programadores
de este lenguaje.
Las llamadas al sistema para ejecucin y el control de programas, usualmente incluyen un
conjunto completo de los servicios accesibles por la va del lenguajes de rdenes, tales
como: RUN, EXECUTE, ABORT y planificacin relacionada con el tiempo, adems los
usuarios con las llamadas del sistema pueden suspender, establecer o cambiar atributos
del tiempo de ejecucin de uno ms programas
Las llamadas del sistema para el gestor de recursos, proporcionan servicios para la
asignacin, reserva y reclamacin de los recursos del sistema. Por ejemplo, existen
llamadas del sistema para extender o reducir la cantidad de memoria poseda por el
programa que es llama. Las llamadas del sistema pueden asignar o reservar otros tipos
de objetos del sistema y despus destruir o devolver su custodia al sistema operativo.
Las llamadas al sistema se pueden agrupar en cinco categoras:
1. Control de proceso (Crear, cargar, ejecutar un proceso, obtener y establecer
atributos, esperar un suceso, liberar memoria, abortar y terminar proceso).
2. Manipulacin de archivos (Crear, abrir, leer, obtener y establecer atributos, cerrar y
eliminar archivos).
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.
Directo
El campo de operando en la instruccin contiene la direccin en memoria donde se
encuentra el operando.
Indirecto
El campo de operando contiene una direccin de memoria, en la que se encuentra la
direccin efectiva del operando.
Absoluto
El campo de operando contiene una direccin en memoria, en la que se encuentra la
instruccin.
De registro
De desplazamiento
Combina el modo directo e indirecto mediante registros
De 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 estudiados ms arriba.
Respecto a un registro base
Este modo de direccionamiento es muy usado por los ensambladores cuando se llaman a
las funciones (para acceder a los parmetros apilados en la pila, valga la redundancia).
Consiste, al igual que el indirecto a travs de registro, en calcular la EA (Effective Address)
como la suma del contenido del registro base y un cierto desplazamiento (u offset) que
siempre ser positivo. Esta tcnica permite cdigos reentrantes y acceder de forma fcil y
rpida a posiciones cercanas de memoria.
EA = RB+offset RB = registro base offset = desplazamiento -> RB se comporta como una
direccin de memoria a la que se le sumar el desplazamiento
Respecto a un registro ndice
Es similar al anterior, lo nico que es el contenido del registro ndice el que indica el
desplazamiento que se produce a partir de una direccin de memoria que se pasa
tambin 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 direccin de memoria:
EA = RI+DM RI = registro ndice DM = direccin de memoria -> RI se comporta como un
offset
=== Indexado respecto a una base === Se trata de una combinacin de los dos anteriores
y consiste en calcular la direccin efectiva como:
EA = RI+RB+DM
-> Las siglas significan lo mismo que en el caso anterior
Indexado con autoincremento/autodecremento
Es un modo de direccionamiento anlogo al indexado, explicado anteriormente.
La nica diferencia es que permite un incremento o decremento de la direccin final o el
registro ndice segn
los siguientes casos:
-> Indexado con autopreincremento: Incrementa el registro ndice primero (se incrementa
un valor, segn el tamao del objeto direccionado) y luego calcula la EA al igual que el
direccionamiento indexado.
Segmentado: La memoria se divide en porciones cuyos tamaos son variables. As, para
acceder a ellos se tiene una tabla de segmentos que contiene la direccin del comienzo y
del final de cada segmento en memoria.
Usar este tipo de direccionamiento tiene como ventajas que se puede definir segmentos
de tamao arbitrario. Por otro lado, esta misma ventaja, el fraccionamiento de memoria es
uno de sus problemas.
Ambos modos de direccionamiento facilitan la multiprogramacin gracias a la tcnica de la
memoria virtual que permite que un proceso no tenga que estar cargado ntegramente en
memoria, si no que se cargan distintas pginas del mismo (o segmentos). Si se intenta
cargar una pgina o segmento que no se encuentra en la memoria principal se produce
una excepcin de falta de pgina o segmento y se accede a la memoria para cargar la
informacin requerida en la memoria principal.
Direccionamiento absoluto vs Direccionamiento relativo
En esta seccin vamos a resaltar las diferencias de estos dos tcnicas de
direccionamiento y aclarar las ventajas y desventajas que cada una de ellas conlleva.
Direccionamiento absoluto: Consiste en direccionar una posicin de memoria de forma
directa, esto es, que la direccin hace referencia directamente a dicha posicin sin tener
que realizar clculos adicionales para la EA.
Direccionamiento relativo: Cuando para direccionar una posicin de memoria se hace
referencia a otra sobre la cual se especifica un incremento o decremento, es decir, se
requiere otro dato para el clculo de la direccin efectiva.
Generalmente se usan los direccionamientos relativos ya que, al ejecutar un cierto
programa se cumple la proximidad espacial y temporal, lo que implica que datos que ya
han sido usados o que se encuentran en posiciones cercanas al PC tendrn una alta
probabilidad de ser referenciados prximamente. Otras de las ventajas del
direccionamiento relativo es que permite los cdigos reentrantes y cambiar ciertas
direcciones sin tener que volver a compilar el programa. Es tambin til porque nunca se
sabe en qu posicin de memoria se cargar un determinado programa. Por ltimo
reduce el nmero de bits para especificar las direcciones y se facilita la referencia a datos
del programa a travs de los registros base.
Un monitor de pantalla de cristal lquido (LCD) digital directo recibe un flujo de bits
digitales directamente desde el controlador de video, y no requiere del barrido de
trama.
Bibliografa
http://lenguajes-e-interpretes.blogspot.mx/2012/11/importancia-del-lenguajeensamblador.html
http://es.slideshare.net/romo91/el-procesador-y-sus-registros-internos
http://lenguajesdeinterfaztec.blogspot.mx/2014/02/lenguajes-de-interfaz-unidad-i.html
http://canedo.itmazatlan.edu.mx/lenguajes-de-interfaz/1/1-4
http://leo-yac.wix.com/lenguaje-ensamblador#!llamadas-a-servicios-del-sistema/cst9
https://es.wikipedia.org/wiki/Modos_de_direccionamiento
http://docslide.com.br/documents/17-proceso-de-ensamblado-y-ligado.html
http://leo-yac.wix.com/lenguaje-ensamblador#!desplegado-de-mensaje-en-elmonitor/c1qsv