1. MODULO II: ORGANIZACIÓN Y DISEÑO BÁSICO DE COMPUTADORAS.
La organización de la computadora se define mediante sus registros internos, la estructura de
temporización y control, y el conjunto de instrucciones que utiliza.
La organización interna de un sistema digital está definida por la secuencia de microoperaciones que
ejecuta sobre los datos almacenados en sus registros. La computadora digital de propósito general puede
ejecutar varias microoperaciones y, además, puede recibir instrucciones acerca de la secuencia específica
de operaciones que debe realizar. El usuario de una computadora puede controlar el proceso mediante un
programa. Un programa es un conjunto de instrucciones que especifican las operaciones, operandos y la
secuencia mediante la cual tiene que ocurrir el procesamiento.
Una instrucción de computadora es un código binario que especifica una secuencia de microoperaciones
para la computadora. Los códigos de instrucciones y los datos se almacenan en la memoria.
Los módulos digitales se definen mejor por los registros que contienen y las operaciones que realizan
sobre los datos que almacenan. Las operaciones que se ejecutan sobre los datos almacenados en los
registros se llaman microoperaciones. Una microoperación es una operación básica realizada sobre la
información almacenada en uno o mas registros. El resultado de la operación puede sustituir la información
binaria anterior de un registro o puede transferirse a otro.
Algunos ejemplos de microoperaciones son desplazar, contar, borrar y cargar. Al aplicar estas
microoperaciones sobre algunos de los registros podemos tener los siguientes ejemplos: a) un contador
con carga paralela puede realizar las microoperaciones de incremento y carga; b) un registro de
desplazamiento bidireccional puede realizar las microoperaciones de desplazamiento a la derecha y a la
izquierda.
Una microoperación es una operación elemental efectuada con los datos almacenados en los registros.
Las microoperaciones que se encuentran con mayor frecuencia en las computadoras digitales se clasifican
en cuatro categorías:
1. Microoperaciones de transferencia de registros: transfieren información binaria de un registro a otro.
Este tipo de microoperación no cambia el contenido de la información cuando la información binaria pasa
del registro fuente al registro destino. Los otros tres tipos de microoperaciones cambian el contenido de la
información durante la transferencia.
2. Microoperaciones aritméticas: ejecutan operaciones aritméticas sobre datos numéricos almacenados
en los registros.
Las microoperaciones aritméticas básicas son suma, resta, incremento, decremento y corrimiento
2. 3. Microoperaciones lógicas: ejecutan operaciones de manipulación de bits sobre datos no numéricos
almacenados en registros.
Especifican operaciones binarias para arreglos de bits almacenados en registros. Estas operaciones
consideran cada bit de registro en forma separada y los tratan corno variables binarias.
4. Microoperaciones de corrimiento: ejecutan operaciones de corrimiento sobre los datos almacenados
en los registros.
Se usan para la transferencia serial de datos. También se utilizan junto con operaciones aritméticas,
lógicas y de procesamiento de datos. El contenido de un registro puede correrse a la izquierda o a la
derecha. Al mismo tiempo que se recorren los bits, el primer flip-flop recibe su información binaria de la
entrada serial. Durante una operación de corrimiento a la izquierda la entrada serial recorre un bit a la
posición de la extrema derecha. Durante una operación de corrimiento a la derecha la entrada serial
transfiere un bit a la posición de la extrema izquierda. La información transferida mediante la entrada serial
determina el tipo de corrimiento. Existen tres tipos de corrimientos: lógico, circular y aritmético.
3. CÓDIGOS DE INSTRUCCIÓN REGISTROS DE COMPUTADORA CICLO DE INSTRUCCIÓN INTERRUPCIONES
Definición Un códigode instrucciónesun
grupode bitsque instruye ala
computadorasobre cómo
ejecutarunaoperación
específica.
Un registrode computadoraes escierta
informaciónguardadaparaluego
ejecutarse másrápidoyes una
pequeñaunidadde almacenamiento
destinadaacontenerciertotipode
datos.Puede estarenla propia
memoriacentral oen unidadesde
memoriade accesorápido.
Un ciclo de instrucciónesel períodoque tarda la
unidadcentral de proceso(CPU) enejecutaruna
instrucciónde lenguaje máquina.
Una interrupciónesunasuspensióntemporal de la
ejecuciónde unproceso, parapasar a ejecutaruna
subrutinade serviciode interrupción,lacual,porlo
general,noformaparte del programa,sinoque pertenece
al sistemaoperativooal BIOS.Una vezfinalizadadicha
subrutina,se reanudalaejecucióndel programa.
Detalles
importantes
SUS PARTES
La parte más básica de un
código de instrucción es su
parte de operación.
El código de operación de una
instrucción es un grupo de bits
que define operaciones como
sumar, restar, multiplicar,
desplazar y complementar.
El número de bits requerido
para el código de operación de
una instrucción depende de la
cantidad total de operaciones
disponiblesenlacomputadora.
LISTA DE REGISTROS
DR: (Registro de datos) Contiene
el operando en la memoria.
AR: (Registro de dirección)
Contiene la dirección para la
memoria.
AC: (Acumulador) Contiene el
registro del procesador.
IR: (Registro de instrucción)
Contiene el código de instrucción.
PC: (Contador de programa)
Contiene el código de la siguiente
instrucción.
TR: (Registro temporal) Contiene
datos temporales.
INPR: (Registro de entrada)
Contiene el carácter de entrada.
OUPR: (Registro de salida)
Contiene el carácter de salida.
FASES
1. Buscar la instrucción en la memoria
principal
Se coloca el valor del contador de programa
sobre el bus de direcciones. Entonces la CPU
pasa la instrucción de la memoria principal a
través del bus de datos al Registro de Datos
de Memoria (MDR). A continuación el valor
del MDR es colocado en el Registro de
Instrucción Actual (CIR), un circuito que
guarda la instrucción temporalmente de
manera que pueda ser decodificada y
ejecutada.
2. Decodificar la instrucción
El decodificador de instrucción interpreta e
implementa la instrucción. El registro de
instrucción (IR) mantiene la instrucción en
curso mientras el contador de programa (PC,
program counter) guarda la dirección de
memoria de la siguiente instrucción a ser
ejecutada.
También se lee la dirección efectiva de la
memoria principal si la instrucción tiene una
dirección indirecta, y se recogen los datos
requeridos de la memoria principal para ser
procesados y colocados en los registros de
TIPOS
Interrupciones de hardware.
Estas son asíncronas a la ejecución del procesador, es
decir, se pueden producir en cualquier momento
independientemente de lo que esté haciendo el CPU en
ese momento. Las causas que las producen son
externas al procesador y a menudo suelen estar ligadas
con los distintos dispositivos de entrada o salida.
Excepciones.
Son aquellas que se producen de forma síncrona a la
ejecución del procesador y por tanto podrían predecirse
si se analiza con detenimiento la traza del programa
que en ese momento estaba siendo ejecutado en la
CPU. Normalmente son causadas al realizarse
operaciones no permitidas tales como la división entre
0, el desbordamiento, el acceso a una posición de
memoria no permitida, etc.
Interrupciones por software.
Las interrupciones por software son aquellas generadas
por un programa en ejecución. Para generarlas, existen
distintas instrucciones en el código máquina que
permiten al programador producir una interrupción, las
cuales suelen tener nemotécnicos tales como INT
4. datos.
3. Ejecutar la instrucción
A partir del registro de instrucción, los datos
que forman la instrucción son decodificados
por la unidad de control. Ésta interpreta la
información como una secuencia de señales
de control que son enviadas a las unidades
funcionales relevantes de la CPU para
realizar la operación requerida por la
instrucción poder terminarla y seguir asi.
4. Almacenar o guardar resultados
El resultado generado por la operación es
almacenado en la memoria principal o
enviado a un dispositivo de salida……..
dependiendo de la instrucción. Basándose en
los resultados de la operación, el contador de
programa se incrementa para apuntar a la
siguiente instrucción o se actualiza con una
dirección diferente donde la próxima
instrucción será recogida.
FUNCIONAMIENTO
1. Terminar la ejecución de la instrucción máquina en
curso.
2. Salvar el estado del procesador (valores de registros
y flags) y el valor del contador de programa, IP, en la
pila, de manera que en la CPU, al terminar el proceso
de interrupción, pueda seguir ejecutando el programa a
partir de la última instrucción.
3. La CPU salta a la dirección donde está almacenada
la rutina de servicio de interrupción (Interrupt Service
Routine, o abreviado ISR) y ejecuta esa rutina que
tiene como objetivo atender al dispositivo que generó
la interrupción.
4. Una vez que la rutina de la interrupción termina, el
procesador restaura el estado que había guardado en la
pila en el paso 2 y retorna al programa que se estaba
usando anteriormente.
Fuentesde consultaportema
1 y 2 http://arquidecomp.galeon.com/unidad02.htm
3
4. https://es.wikipedia.org/wiki/Interrupci%C3%B3n
Programar enEnsamblador
TUTORIAL http://www.solodrivers.com/manuales/programacion_ensamblador
EDITOR