unidad de control, alu
DESCRIPTION
Componentes de la CPUTRANSCRIPT
2.1.2 Unidad Aritmética y Lógica (ALU)
La Unidad Aritmética y Lógica, ALU tiene dos modos de operación: el Modo
Aritmético y el Modo Lógico. En el Modo Aritmético ejecuta operaciones aritméticas
tales como sumas y restas. Estas operaciones pueden ser extendidas para incluir
multiplicación, división y exponenciación. En el Modo Lógico ejecuta operaciones
lógicas tales como AND, OR o XOR (OR exclusivo). Estas operaciones permiten que
la ALU controle el flujo y manipulación del contenido de los registros así como
otras operaciones lógicas. En la Figura 2.5 se muestra la estructura de una ALU..
En dicha figura podemos ver sus elementos constitutivos básicos. La ALU
se comunica con el exterior (en nuestro caso con el resto de los elementos que
compondrán el CPU), mediante un bus denominado bus de datos, compuesto por nt
líneas.
Figura 2. 5 Estructura de una ALU básica.
Circuito combinacional.
El circuito combinacional es el que se encarga de realizar propiamente las
operaciones con los datos. En la estructura de la Figura 2.5, este circuito presenta dos
entradas, procedentes de los registros REN1 y REN2. El contenido de estos registros estará
siempre presente en las entradas del circuito combinacional. Este circuito tiene unas
entradas de órdenes (a la derecha en la Figura 2.5), para indicarle el tipo de operación que
se desea realizar con los datos de entrada.
A continuación enumeramos las órdenes más típicas:
SUM: Cuando se activa, el circuito combinacional presenta a su salida la suma
aritmética de las cantidades presentes en sus entradas.
RES: Cuando se activa, el circuito combinacional realiza la diferencia aritmética de
las cantidades presentes en sus entradas..
MUL: Cuando se activa, el circuito combinacional realiza la multiplicación aritmética
de las cantidades presentes a sus entradas.
INC: Cuando se activa, el circuito combinacional incrementa en una unidad el
contenido de una de sus entradas (predeterminada).
DEC: Cuando se activa, el circuito combinacional decrementa en una cantidad el
contenido de una de sus dos entradas (predeterminada).
NOT: Cuando se activa, el circuito combinacional invierte los bits del número binario
presente en una de sus dos entradas.
AND: Cuando se activa, el circuito combinacional presenta a su salida el producto
lógico de los números binarios presentes en sus entradas.
OR: Cuando se activa, el circuito combinacional presenta a su salida la suma lógica
de los números binarios presentes en sus entradas.
ORX: Cuando se activa, el circuito combinacional realiza la suma lógica exclusiva de
sus dos entradas, presentando el resultado a la salida.
PAS1: Cuando se activa, el circuito combinacional presenta a su salida el contenido
del registro REN1.
PAS2: Cuando se activa, el circuito combinacional presenta a su salida el contenido
del registro REN2.
Lógicamente, sólo una de esas órdenes a la ALU puede estar activa en cada
instante.
Registro de entrada.
En la Figura 2.5, REN1 y REN2 se encarga de almacenar los dos operandos de entrada al
circuito combinacional. El registro REN1 posee una orden de escritura, etiquetada con
ERE1, que sirve para escribir en él lo que exista en el bus de datos. El registro REN2 posee,
por el contrario, dos órdenes de escritura, etiquetadas con ERE2, para escribir el
contenido del bus de datos, y ERA2, para realizar una transferencia entre el registro
acumulador y REN2.
Registro acumulador
El registro acumulador sirve como registro de almacenamiento de los resultados de
las operaciones de la ALU. Su conexión al registro de entrada REN2 será de utilidad en
operaciones que impliquen encadenamiento de resultados. Presenta una orden de
escritura, etiqueta con ERAC, y una orden de lectura, etiquetada con LRAC, que sirve para
comunicar su contenido al registro REN2, o para depositar su contenido en el bus de
datos.
Registro de estado.
Este registro es un elemento de gran importancia en el funcionamiento interno de
la computadora, ya que gracias a este elemento las computadoras poseen esa capacidad
de “decisión inteligente”.
Este registro, aunque se considerará como una unidad, está formado por un
conjunto de flip-flops (biestables), denominado indicadores o flags, accesibles por
separado. Cada uno de estos flip-flops señala una determinada condición sobre el último
valor que ha sido escrito en el acumulador.
Operaciones en la ALU
La operación de una ALU se entiende mejor si es separada en sus partes aritmética
y lógica. Procederemos primero explicando la operación de un circuito aritmético típico
que realiza ocho micro-operaciones aritméticas. Un segundo circuito se mostrará para
implementar cuatro micro-operaciones lógicas. Finalmente, los dos circuitos se
combinarán para formar una unidad aritmética lógica.
Circuito aritmético.
El sumador paralelo binario, es un circuito aritmético que suma dos números
binarios. Las micro-operaciones aritméticas adicionales pueden obtenerse aumentado el
sumador paralelo con ciertos circuitos lógicos de selección. La Figura 2.6 muestra las
micro-operaciones aritméticas obtenidas cuando un conjunto de entradas a un sumador
paralelo se controla externamente. La suma aritmética simple se logra cuando un
conjunto de entradas recibe un número binario A, el otro conjunto de entradas recibe un
número B, y el acarreo de entrada C1 se mantiene en 0. Este caso se muestra en la Figura
2.6 (a), en donde la salida del circuito designado por F produce la micro-operación add
(suma) F = A + B. Haciendo el acarreo de entrada C1 = 1 como en la Figura 2.6 (b), es
posible sumar 1 a la suma para producir una salida F = A + B + 1.
Pueden obtenerse diferentes micro-operaciones aritméticas controlando los datos
que entran a las entradas en B como se identifica en los otros seis diagramas de la Figura
2.6. Complementando todos los bits de la entrada B se obtiene una micro-operación F = A
+ B, que es la suma de A más el complemento a 1 de B. Sumando 1 a esta suma y
haciendo el acarreo de entrada C1 = 1, obtenemos F = A + B + 1, el cual produce la suma
de A más el complemento a 2 de B. Esto es equivalente a la operación resta F = A - B.
Seguidamente, consideremos forzar todos los 0 en los terminales de B del sumador
paralelo. Puesto que B es ahora 0, la suma producida en la salida se vuelve F = A, que se
transfiere la entrada A en la salida F. Sumando 1 a través del acarreo de entrada C 1 como
se muestra en la Figura 2.6 (f), obtenemos F = A + 1, que es la micro-operación
incremento. La condición ilustrada en la Figura 2.6 (g) inserta todos los 1 en los terminales
B del sumador paralelo. Un número binario con todos los 1 representa el complemento a
2 de la unidad. Considere, por ejemplo, un sumador paralelo de 4 bits. El complemento a
2 del número binario 0001 es 1111. Sumando un número A al complemento a 2 de la
unidad produce una salida F = A + el complemento a 2 de 1 = A - 1, que es la micro-
operación de decremento.
Una etapa de un circuito aritmético que proporciona las micro-operaciones
enumeradas antes se muestra en la Figura 2.7. El circuito sumador complemento
representa un estado del sumador paralelo. Las dos líneas de selección S1 y S0 controlan la
ruta de datos entre el terminal B y una entrada del circuito sumador completo. Cuando
S1S0 = 00, la entrada controlada del sumador completo es siempre 0. Cuando S1S0 = 01, la
entrada recibe el valor de Bi. Cuando S1S0= 10, la entrada recibe el valor complemento de
Bi. Cuando S1S0= 11, la entrada es siempre igual a 1. Estas condiciones pueden verificarse
derivando la tabla de verdad de la lógica de selección. No obstante que las dos variables
de selección S1 y S0 controlan las rutas de entrada en el terminal B de acuerdo a las cuatro
condiciones ilustradas en la Figura 2.6.
Figura 2.6 Micro-operaciones aritméticas que se obtienen controlando un conjunto de entradas de un sumador paralelo.
Precisamente como en un sumador paralelo, el circuito aritmético puede partirse
en etapas, una para cada par de bits de los operandos de entrada. Para los operandos con
n bits, el circuito aritmético consta de n etapas idénticas. La Figura 2.8 muestra el
diagrama de bloques de un circuito aritméticos partido en n etapas.
Cada una de las etapas es idéntica al circuito que se muestra en la Figura 2.7. Los
bits de las entradas A y B son designados por los números subíndices de derecha a
izquierda con el subíndice 1 denotando el bit de orden inferior. Los acarreos son
conectados en una cadena a través de las etapas. Las líneas de selección de función S 1, S0
y C1 seleccionan las micro-operaciones aritméticas de F generan la función de salida.
Note que C1 es e l acarreo de entrada de la primera etapa y su efecto es sumar 1 al
par de orden inferior de bits S1 y S0 controlan las entradas a los terminales de B en cada
una de las etapas.
Las micro-operaciones aritméticas implementadas en el circuito aritmético se
enumeran en la Tabla 2.1.
Función de selección
S1 S2 C1 Salida Corresponde a la Figura 1
Diagrama de Función
0 0 0 F = A (e) Transfiere A
0 0 1 F = A + 1 (f) Incremente A
Figura 2.7 Una etapa de un circuito
0 1 0 F = A + B (a) Sume
0 1 1 F = A + B + 1 (b) Suma con acarreo
1 0 0 F = A + B’ (c) A más el complemento de 1 de B
1 0 1 F = A + B´ + 1 (d) Resta
1 1 0 F = A - 1 (g) Decremente A
1 1 1 F = A (h) Transfiere A
Las ocho operaciones enumeradas en la tabla siguen directamente los diagramas de
función que se ilustran en la Figura 2.6.
Tabla 2.1 Funciones para el circuito aritmético.
Circuito Lógico
Las micro-operaciones lógicas manipulan los bits de los operandos tratando cada
uno de los bits como una variante binaria. Existen 16 micro-operaciones lógicas que
pueden realizarse con las dos variables binarias. Las 16 operaciones lógicas pueden ser
generadas en un circuito y cada operación puede seleccionarse por medio de cuatro
variables de selección. Sin embargo, hay esencialmente cuatro operaciones lógicas básicas
a partir de las cuales todas las otras se pueden derivar por medio del álgebra Booleana.
Ellas son la AND, OR, XOR (OR exclusivo), y la micro-operación complemento.
La Figura 2.9 muestra una etapa de un circuito lógico. Consta de cuatro compuertas
y un multiplexor. Cada una de las cuatro operaciones lógicas AND, OR, XOR, y el
complemento se generan con una compuerta que realiza la lógica requerida. Las salidas
de las compuertas son aplicadas a un multiplexor con dos variables de selección S1 y S0.
Estas variables de selección escogen una de las entradas del multiplexor y dirigen su valor
a la salida. El diagrama muestra una etapa típica con subíndice i. Para un circuito lógico
con n bits, el diagrama de la Figura 2.9 debe ser repetido n veces para i = 1, 2, 3, …, n. Las
variables de selección deben ser aplicadas a todas las etapas. La Tabla 2.2 enumera la
micro-operación lógica obtenida para cada combinación de las variables de selección.
Figura 2.8 Circuito aritmético partido en n
S1 S0 Salida Micro-operación
0 0 F = A B AND
0 1 F = A B OR
1 0 F = A B XOR
1 1 F = A’ Complemento
El circuito lógico puede combinarse con el circuito aritmético para producir una
unidad aritmética lógica comúnmente denominada ALU. Las variables de selección S1 y S0
pueden ser comunes a ambos circuitos siempre que utilicemos una tercera variable de
selección para diferenciar entre los dos. La configuración de una etapa ALU se ilustra en la
Figura 2.10. Las salidas de los circuitos aritmético y lógico en cada una de las etapas son
Figura 2.9 Una etapa de un circuito
Tabla 2.2 Funciones
aplicadas a un multiplexor con variable de selección S2. Cuando S2 = 0, la salida aritmética
es seleccionada, pero cuando S2 = 1, la salida lógica es seleccionada. Note que el diagrama
muestra justamente una etapa típica del ALU. El circuito de la Figura 2.10 puede repetirse
n veces para una ALU de n bits . El acarreo de salida Ci+1 de una etapa dada debe
conectarse al acarreo de entrada Ci de la etapa siguiente de orden superior. El acarreo de
entrada en la primera etapa se designa por C1 y proporciona una variable de selección
para las micro-operaciones aritméticas. La entrada C1 no tiene efecto en las micro-
operaciones lógicas.
Una ALU con etapas individuales como se define en la Figura 2.10 proporcionará 8
micro-operaciones aritméticas y 4 lógicas, para un total de 12 micro-operaciones. Cada
micro-operación es seleccionada a través de las variables S2, S1, S0 y C1. El acarreo de
entrada C1 se utiliza para la selección de micro-operaciones aritméticas solamente.
La Tabla 2.3 lista las 12 micro-operaciones de la ALU. Las primeras ocho
enumeradas (con S2 = 0) son idénticas a las micro-operaciones de la Tabla 2.1. El acarreo
de entrada durante las cuatro operaciones lógicas (cuando S2 = 1) no tiene efecto en la
operación de la unidad, de tal manera que las entradas bajo la columna C 1 para las micro-
operaciones lógicas se marcan con X que no importa.
Función seleccionada
S1 S2 S0 C1 Salida Función
0 0 0 0 F = A Transfiere A
0 0 0 1 F = A + 1 Incremente A
0 0 1 0 F = A + B Suma
0 1 1 1 F = A + B + 1 Suma con acarreo
0 1 0 0 F = A + B’ A más el complemento de 1 de B
0 1 0 1 F = A + B´ + 1 Resta
0 1 1 0 F = A - 1 Decremente A
0 1 1 1 F = A Transfiere A
1 0 0 X F = A ^ B AND
1 0 1 X F = A V B OR
1 1 0 X F = A + B XOR
1 1 1 X F = A’ Complemento de A
2.1.3 La Unidad de Control (UC)
Tabla 2.3 Funciones para la ALU.
Figura 2.10 Una etapa de una Unidad Aritmética y Lógica
La unidad de control puede calificarse como el “director” del ordenador, ya que es
la parte del mismo que gobierna totalmente su funcionamiento.
La unidad de control se encarga de traer de la memoria las instrucciones que
componen un programa, de interpretarlas y de generar el conjunto de órdenes que
gobierna a todos los elementos del ordenador, en la secuencia adecuada para que la
instrucción se ejecute de modo correcto.
Esta unidad también se ocupa de controlar y coordinar a las unidades implicadas
en las operaciones anteriormente mencionadas, de manera que se eviten problemas
internos que se puedan producir entre los componentes de la computadora.
La unidad de control, finalmente, comunica entre sí y dirige las entradas y salidas
desde y hasta los periféricos, dando el oportuno tratamiento a la información en proceso.
Para poder realizar su cometido, la unidad de control necesita manejar la siguiente
información:
1. El registro de estado.
2. El registro puntero de instrucciones.
3. La instrucción a ejecutar.
4. Las señales de entrada/salida.
La salida que proporcionará la unidad de control será el conjunto de órdenes
elementales que servirán para ejecutar la orden solicitada.
La secuencia de operación para este proceso es:
1. Extraer de la memoria principal la instrucción a ejecutar.
2. Tras reconocer la instrucción, la unidad de control establece la configuración de
las compuertas lógicas (las interconexiones de los diferentes componentes del
circuito lógico) que se van a ver involucradas en la operación de cálculo solicitada
para la instrucción, estableciendo el circuito que van a resolverla.
3. Busca y extrae de la memoria principal los datos necesarios para ejecutar la
instrucción indicada en el paso 1.
4. Ordenan a la unidad involucrada en la resolución de la instrucción en proceso que
realice las oportunas operaciones elementales.
5. Si la operación elemental realizada ha proporcionado nuevos datos, éstos se
almacenan en la memoria principal
6. Se incrementa el contenido del registro puntero de instrucción.
La Figura 2.11 muestra la estructura de una Unidad de Control típica. Sus
conexiones al exterior, y al resto de los elementos que componen el ordenador, se
realizan en este caso a través de dos buses: el bus de datos, que ya se menciono en la ALU,
y un nuevo bus, denominado bus de direcciones, compuesto por nd líneas, cuyo cometido
fundamental es transmitir a la memoria principal (MP) a través del registro RDIM las
direcciones que se desea leer o en las que se desea escribir. La Unidad de Control poseerá
sus propios buses de datos y de direcciones, que denominaremos buses de direcciones y
de datos internos.
Los registros y dispositivos fundamentales con que opera la Unidad de Control son:
Registro de instrucción (RI)
Este registro se encarga de almacenar las instrucción en curso, procedente de la
memoria principal. Este registro suele estar dividido en campos. Cada campo contiene un
número de bits variables de acuerdo con cada arquitectura de la CPU. Los campos más
comunes son:
CO: Código de operación. El valor de sus bits indica a la unidad de control (más en
concreto, al conjunto decodificador-controlador) de qué instrucción se trata
(suma, resta, salto, ...).
MD: Modo de direccionamiento. Indica el modo de acceso a la memoria para
buscar el dato o dirección necesarios para la ejecución de determinadas
Figura 2.11 Estructura de una Unidad de Control
instrucciones.
CDE: Campo de dirección efectiva. Contiene la información necesaria para, junto
con la información de MD, acceder al dato o dirección requeridos para la
ejecución de determinadas instrucciones.
En la Figura 2.12 se puede ver la estructura de este registro y sus órdenes
asociadas. La activación de la orden ENRI produce la escritura del contenido del registro
RDAM en este registro. El contenido de sus campos CO y MD se supone que siempre está
presente en la entrada del conjunto decodificador-controlador. Si la orden SARI produce
la lectura del campo de dirección efectiva para transferir su contenido hacia los registro
RDIM o RDAM, según convenga.
Registro contador de programa (CP)
Como mencionamos anteriormente, la ejecución de los programas almacenados en
memoria se realiza primordialmente en secuencia. Se ejecuta una instrucción tras otra,
según su orden consecutivo en la memoria principal. No obstante, cuando se realiza un
salto, se pasa a ejecutar una instrucción escrita en otra zona de la memoria.
El registro contador de programa es el que contiene la dirección de la siguiente
Figura 2. 12 Estructura del registro de instrucción.
instrucción a ejecutarse. Por tanto, cuando busque la instrucción siguiente, lo hará
utilizando la información en la posición de memoria en la que se encuentra, que es
precisamente el contenido del contador de programa.
Al finalizar la ejecución de una instrucción (o al comienzo de la ejecución de la
instrucción siguiente, según se mire), lo primero que se deberá hacer será colocar en el
contador de programa la posición de memoria en donde se encuentra la siguiente
instrucción que se va a ejecutar. Para ello, si no se trata de una instrucción de salto,
bastará incrementar adecuadamente el contador de programa. Si se trata de una
instrucción de salto, sin embargo, habrá que escribir directamente el valor de la posición
de la siguiente instrucción a ejecutar.
En la Figura 2.13 se muestra la estructura y conexiones del registro contador de
programa.
En la Figura 2.13 se puede apreciar las órdenes ENCP y LSCP, que gobiernan la
Figura 2. 13 El registro contador de
escritura y lectura, respectivamente, del contador de programa. Se aprecia también la
existencia de la orden INCP, cuya activación produce que el contenido del contador de
programa se incremente en un número de unidades predeterminado. Esta orden es típica
de los registro contadores de programa.
Registro de direcciones de memoria (RDIM)
Este registro se utiliza para almacenar las direcciones de memoria en las que van a
escribir o de las que se van a leer los datos. La orden ERDI gobierna la escritura en este
registro desde el bus de direcciones interno de la unidad de control. El contenido de este
registro se supone siempre presente en sus líneas de salida, conectadas al bus de
direcciones externo, sin necesidad de una orden explícita.
Registro de datos de memoria (RDAM)
Almacena temporalmente los datos que se intercambian con la memoria en las
operaciones de lectura y de escritura. Una de sus conexiones se considera como líneas de
entrada y salida de conexión directa con el bus de datos externo a la unidad de control,
gobernadas por las órdenes ERDAE y LRDAE. La otra conexión procede del interior de la
unidad de control, de bus de datos internos de dicha unidad. La conexión del RDAM con
este bus de datos interno se gobierna con dos órdenes: ERDAI para escritura en el registro
y LRDAI para lectura en dicho bus de los datos del registro.
Decodificador
Es un circuito combinacional de este tipo, toma como entrada los campos CO + MD
del registro de instrucción y activa un conjunto de salidas conectadas directamente como
entradas al controlador. Simplifica el trabajo de éste, ya que cada salida del decodificador
estará asociada directamente con una instrucción y un modo de direccionamiento
determinados, mientras que a su entrada esa misma información está codificada para
ahorrar bits de memoria.
Controlador
Es el verdadero “centro de operaciones” del ordenador. Tiene las siguientes
entradas:
1. Salidas del decodificador. Aquellas que estén activas le indican el tipo de
instrucción y el modo de direccionamiento asociados.
2. Reloj del sistema. El ordenador es un dispositivo esencialmente síncrono. Nada
sucede fuera de los instantes marcados por el reloj. Por tanto, el controlador
debe tener información de los pulsos de reloj del sistema. Si existe más de un
reloj, todos ellos informarán de su estado al controlador.
3. Registro de estado. El secuenciador conoce en todo momento el valor de los
biestables (flip-flops) de este registro de la ALU, de modo que puede gobernar
adecuadamente las instrucciones de salto condicional.
2.2 Microórdenes
Como puede verse en la Figura 2.11, el controlador presenta una serie de salidas
denominadas microórdenes. De estas salidas se vale precisamente el controlador para
gobernar el funcionamiento del ordenador. Las microórdenes están conectadas
directamente a las órdenes de los registros (lectura, escritura,...), de la ALU (SUM, OR,...),
a la memoria principal y, en general, a todos los elementos operativos del ordenador.
Existen dos tipos de microórdenes:
1. Microórdenes de nivel: Se mantienen activas un período completo de reloj que
temporiza a la CPU. Estas microórdenes las denotaremos con NIV en la
Figura 2.14.
2. Microórdenes de impulso: Se mantienen activas un período más corto que las de
nivel (un impulso de reloj). Estas microórdenes las denotaremos con IMP, en la
Figura 2.14.
Figura 2. 14 Microórdenes NIV e IMP.
En la Figura 2.11 se indican las microórdenes de nivel y de impulso, en la que se
muestran:
1. Las microórdenes de lectura de registro (volcando su contenido al bus) son de
nivel. Esto se debe a que es necesario mantener los datos en el bus un tiempo
para que puedan ser leídos por quien deba leerlos.
2. Las microórdenes de escritura en registros son de impulso. Ello es debido a que el
proceso de actualización de la información es prácticamente instantáneo.
3. Las microórdenes que gobiernan la ALU son todas de nivel, ya que deben dar
tiempo a los circuitos de la ALU para que realicen la operación pedida.
4. Las microórdenes que gobiernan la memoria son todas de nivel: ni la lectura y ni
la escritura son procesos instantáneos en la memoria, sino que consumen cierto
tiempo.
2.3 Formato de instrucciones
Los formatos de instrucciones que podemos encontrar en los CPUs reales son muy
variados, ya que cada arquitectura el diseñador ha podido optar por soluciones muy
diferentes. Es por tanto difícil, intentar clasificar exclusivamente los formatos de
instrucción de los CPUs. No obstante, podemos dar una clasificación lo suficientemente
general: Definimos así dos tipos de formatos de instrucción:
1. Formatos de una palabra de memoria: La instrucción se almacena
completamente en una sola palabra de memoria. En la Figura 2.15 (a) se
muestra un ejemplo de este formato.
2. Formatos de varias palabras de memoria: La instrucción se almacena en varias
palabras consecutivas de memoria. En la Figura 2.15 (b) se muestra el formato
de instrucción de dos palabras consecutivas en memoria.
Supongamos que la longitud de la palabra de memoria es fija, lo normal en las
arquitecturas reales, podemos establecer las ventajas e inconvenientes de cada tipo de
formato.
Los formatos de una sola palabra presentan la ventaja de rapidez de ejecución:
basta una sola búsqueda en memoria para acceder a la instrucción completa. En cambio,
los formatos de varias palabras requieren varias lecturas de la memoria para acceder a la
instrucción completa. Por tanto, habrá que separar uno o más ciclos de memoria para
poder ejecutar la instrucción: son más lentos.
Los formatos de varias palabras poseen la ventaja de que hay más bits por
instrucción, lo que permite acomodar un juego de instrucciones más amplio, más modos
de direccionamiento y posibilidad de acceso a una mayor cantidad de memoria principal
(mayor longitud del campo CD).
El formato de las instrucciones en la memoria del la CPU, que se corresponden con
el formato del registro de instrucción, es un formato de una sola palabra de memoria y
Figura 2. 15 a) Formato de instrucción de una sola palabra de memoria; b) Formato de instrucción de dos palabras de
(a) (b
puede verse en la Figura 2.16.
En dicha Figura se muestra que el registro de instrucción se encuentra dividido en
dos campos:
CO: Campo de código de operación: Su longitud es de 4 bits. Se permite, por tanto,
hasta un máximo de 16 instrucciones distintas.
CD: Campo de direccionamiento: Su longitud es de 12 bits. Contiene la dirección de
memoria donde se encuentra el dato a que hace referencia la instrucción, o la
dirección de salto, si se trata de una instrucción de salto.
Figura 2. 16 Formato del registro de instrucción del CPU.
Load A
(Carga Acumulador)
LDA 1000 0110
o
8616
Carga el contenido de la siguiente
posición de memoria en el
acumulador.
Add
(Suma)
ADD 1000 1011
o
8B16
Suma el contenido de la siguiente
posición de memoria al contenido del
acumulador. Deja la suma en el
acumulador.
Halt
(Para)
HLT 0011 1110
o
3E16
Detiene todas las operaciones.
LDA se convierte en: 1000 0110
opcode
según tabla
0000 0111
representación
del 7 en binario
ADD 10 se convierte en: 1000 1011
opcode
según tabla
0000 1010
representación
del 10 en binario
HLT se convierte en: 0011 1110
opcode
según tabla