Modos de Direccionamiento
Modos de Direccionamiento
Modos de Direccionamiento
Los temas anteriores mostraron las ventajas de la Lgica Programada sobre la Lgica Cableada.
Esta ventaja est basada en que con un nico sistema fsico (hardware) y bajo el control de programas
(software) se pueden realizar las ms variadas funciones. Tales programas estn constituidos por
componentes elementales, de la misma manera que la parte fsica, stos componentes bsicos son las
denominadas Instrucciones. Una Instruccin es una combinacin de dgitos binarios, que debe ser interpretada por la lgica de control del Procesador para definir lo que debe hacer el sistema (tipo de operacin)
y cual es el dato o los datos con que debe trabajar. Es decir, la instruccin debe especificar dos
componentes fundamentales:
a) El cdigo de operacin, que informa sobre la naturaleza o tipo de la Instruccin.
b) El operando (o los operandos), la informacin a procesar.
En cuanto al cdigo de operacin (OP), cuantos ms tipos diferentes de Instrucciones realice el sistema,
ms bits se necesitarn para especificarlas. Los Microprocesadores (MP) actuales tienen un conjunto de
Instrucciones (repertorio bsico) muy potente, son comunes para los MP de 8 bits de la primera generacin
(8080, 6800 por ejemplo) un nmero de ms de 70 Instrucciones, en algunos ms actuales el nmero de
Instrucciones es bastante mayor llegando a 150 o ms. Por esto generalmente basta con 8 bits para
especificar el cdigo de operacin, aunque en procesadores ms potentes se utilizan hasta 2 bytes.
La referencia al operando debe hacerse en una o ms palabras adicionales al cdigo de operacin, las cuales
indican al sistema donde ubicar el dato a procesar.
Para el caso particular de un procesador que posea aproximadamente unas 70 instrucciones, parece
excesivo el hecho de emplear 8 bits (1 byte) para especificar el cdigo de operacin. El hecho de ocupar un
nmero mayor de bits para definir la instruccin, se basa en que existe otro factor a considerar en el cdigo
de operacin, es la posibilidad de utilizar distintos modos para ubicar el dato con el cual debe operar y esto
obliga a utilizar algunos bits, dentro del campo del cdigo de operacin, para indicar el modo de
direccionamiento o modo de ACCESO al operando.
En las instrucciones de bifurcacin y llamados a subrutina tambin se debe considerar un modo de acceso
para poder obtener la prxima Instruccin a ejecutar.
La potencia de cualquier procesador est basada en su facilidad o habilidad para acceder a Memoria, los
modos de direccionamiento son los que le proveen sta capacidad, ya que estos definen la forma en la cual
una instruccin obtiene el dato requerido para su ejecucin.
MODOS DE DIRECCIONAMIENTO
En esta parte del curso, se detallarn las distintas formas usadas por los MP para obtener las
direcciones que le permitan acceder a los operandos. Existe una gran variedad de Modos de
Direccionamiento como se ver a continuacin. Debe aclararse que, en general, ningn procesador utiliza
todos los Modos de Direccionamiento, sino que solo hace uso de algunos de ellos, esto est definido por su
Arquitectura y por la potencialidad que el fabricante le desea dar.
DIRECCIONAMIENTO DE OPERANDOS
Para realizar una determinada tarea (Instruccin) el computador debe operar con datos
almacenados en memoria. Las Instrucciones que procesan datos contienen implcita o explcitamente
Direcciones que le permiten al procesador localizar el o los datos a utilizar en la instruccin.
Como se sabe la cantidad de lneas del bus de direcciones indica la cantidad mxima de memoria
direccionable por el procesador; en general, procesadores con 16 lneas en el bus de direcciones pueden
direccionar 64 Kbytes de memoria. Los ltimos procesadores como por ejemplo el 68.000 y Z8000, por su
arquitectura de 32 y 31 lneas de direcciones respectivamente, pueden direccionar ms de 2 M byte de
memoria.
Existen varias maneras de especificar la direccin del dato, comnmente llamada Direccin Efectiva (DE),
como parte de una instruccin. El manejo de Direcciones requiere en algunas aplicaciones el uso de
determinados modos de direccionamiento, por lo tanto el programador deber elegir entre los posibles el
ms adecuado a la aplicacin especfica.
La finalidad de los modos de direccionamiento es el de proveer la Direccin Efectiva (DE) de una
Instruccin. En instrucciones con manejo de datos (+,-, AND,OR, etc) la DE es la direccin del dato
utilizado por la instruccin. En una instruccin de salto,la DE es la direccin de la Instruccin a la cual se
debe producir el salto.
Los modos de direccionamiento se pueden clasificar en dos grandes grupos.
a) Directos
b) Indirectos
En los directos, la DE es tomada Directamente de la Instruccin o calculada mediante un valor de algn
registro. Este es el modo ms comn sobre todo considerando los procesadores ms simples. En los modos
Indirectos o Diferidos,la direccin obtenida de la Instruccin o de algn clculo corresponde a la direccin
de Memoria en que se encuentra almacenada la DE. En algunos procesadores como el 6809 y la PDP-11
cada modo de direccionamiento directo tiene su correspondiente indirecto, otros procesadores, tales como
el Z8000 y el 8086 solo tienen un modo de direccionamiento Indirecto (Indirecto va registro).
Diagrama esquemtico
Cdigo operacin R
Registros CPU
0
1
.
.
operando
.
.
en la memoria de programa).
>(Reg.Y)
Transfiere el contenido de un Registro (fuente) a otro Registro (destino); el cdigo de operacin identifica
que la operacin a realizar es una transferencia, en el 2do byte se especifica cual es el Registro fuente y
cual es el destino.
Diagrama esquemtico.
Cdigo operacin
Rx
Ry
Registros CPU
Post-byte
Ri
.
operando destino
fuente
operando fuente
Rx
destino
Ry
.
Rn
DIRECCIONAMIENTO INMEDIATO
El operando forma parte de la instruccin es decir la constante especificada a continuacin del
cdigo de operacin es el dato, algunos procesadores permiten solo un byte para el operando (por ejemplo
el SC/MP y el 6502). La gran mayora de MP permite 1 o 2 byte dependiendo si el Registro que interviene
es de 8 o 16 bits (8080, 6800, 6809, PDP-11, etc). Los microprocesadores Z8000 y 68000 de 16 bytes
pueden tener operandos inmediatos de hasta 4 bytes de longitud, (palabra de longitud doble). El
programador utiliza este modo de direccionamiento cuando necesita:
* constantes para inicializar variables.
(AC)
modos de direccionamiento.
Cd. op.
Cd. op.
operando
operando
Cd. op operando
C
CP U
AC
n
DIRECCIONAMIENTO ABSOLUTO
Este modo de direccionamiento tambin llamado por los fabricantes de microprocesadores
como Directo Pleno o Extendido, es sin ninguna duda la forma ms simple de especificar un lugar dentro
de la memoria.
Una instruccin con este modo de direccionamiento est compuesta por el cdigo de operacin y a
continuacin la direccin del operando, directamente especificada en uno o ms bytes segn el alcance del
campo de direcciones.
En general el modo absoluto tiene la desventaja de que ocupa muchos bytes. En MP con 16 lneas de
direcciones ocupa 2 bytes y el nmero de bytes ocupados crece con la capacidad de direccionamiento del
procesador, as por ejemplo el 68000 con 32 bits de direcciones debe ocupar 4 bytes, debido a esto, son
necesarios varios ciclos de memoria para ejecutar la Instruccin.
Es evidente que el programador utilizar este modo de direccionamiento cuando conoce la direccin
absoluta de la variable a procesar, sin conocer el valor de la variable.
5
Memoria Programa
cdigo operacin
Memoria Datos
direccin
operando
direccin
efectiva
Direccin efectiva
CP U
5321
5322
AC
A5
A5
En esta forma del direccionamiento directo paginado, la pgina base es fija, generalmente la pgina cero,
este tipo de direccionamiento es comn a la familia del 6800 y a la del 6502. Estos fabricantes le llaman a
este modo de direccionamiento directo y al directo pleno, extendido.
Es evidente, que para un mejor aprovechamiento de la mquina, en un sistema que posea este modo de
direccionamiento, la memoria de datos (RAM) deber estar en las direcciones bajas del mapeado de
Memoria. El programador deber utilizar siempre que le sea posible este modo de direccionamiento y no el
extendido.
Memoria Programa
Cdigo operacin
Dir. en pgina
Memoria Datos
0
Dir. en pgina
Dir. efectiva
operando
XX
Cdigo operacin
Dir. en la pg.
.
.
.
operando
Memoria Programa
Nmero pgina
Cdigo operacin
Direccin en pg.
Memoria Datos
Dir. efectiva
operando
Cdigo operacin
Memoria Datos
35
A335
5C
Reg. pgina
A3
AC
5C
realiza el programa sino que debe ser calculada durante su ejecucin. Como no es prctico modificar
palabras de la Instruccin (imposible pues estn en ROM), se usa algn lugar de Memoria o Registro,
como en este caso, para resolver el problema.
El MP 8080 y 8085 poseen este modo de Direccionamiento cuando se refiere al lugar de Memoria
Direccionado por alguno de sus registros pares, tambin en el MP 6809 y en el microcomputador 68705 en
su modo llamado Indexado sin desplazamiento.
El Procesador del minicomputador PDP-11 tambin posee este modo y en general la mayora de los
procesadores de 16 bits.
Memoria Programa
Cd. op
Registros
Direccin R
Memoria Datos
Dir. efec.
operando
Ejemplo: carga del acumulador, con direccionamiento Indirecto va Registro puntero (PR)
((PR))
(AC) ; (PR)=039C
((PR)) = (039C)
Memoria Programa
Cd. Op PR
(AC)=05
CP U
PR
039C
AC
Memoria Datos
039C
05
05
Incremento o Decremento depende de la longitud del operando, por ejemplo ser de 1 para apuntar al
siguiente byte, de 2 en el caso de palabra (16 bits) y de 4 en el caso de palabra doble (32 bits). La PDP-11,
6809 y TI 9900 permiten solo por 1 o 2, el 68000 es ms flexible y permite por 1, 2 y 4. En el procesador
SC/MP (uno de los primeros y ms simples procesadores) se permiten auto Incrementos y decrementos de
hasta 8 bits en representacin Complemento 2 (-127 a + 127), a este modo su fabricante (National) lo llama
auto Indexado.
La diferencia entre el auto Incremento y el auto decremento es la siguiente:
En el auto incremento la direccin efectiva es el contenido del puntero, una vez obtenido el dato se
actualiza el puntero. En el auto decremento se invierte el orden de las operaciones, primero se actualiza el
puntero para recin obtener la direccin efectiva.
Esta es la forma de trabajo del Stack Pointer para su empleo en pilas tipo LIFO (ltimo en entrar, primero
en salir).
En muchos casos se enfatiza en Lenguajes Assemblers el auto pre-decremento y el auto post-incremento
por ejemplo en el 6809.
Auto-post incremento.
STA - (X)
STA (X) +
Memoria Programa
Cd. op. R
Registros
Direccin
Dir. efectiva
Incremento
Memoria Datos
operando
10
Auto pre-Decremento.
Memoria Programa
Cd. Op.
Registros
Direccin
Decremento
Memoria Datos
operando
DIRECCIONAMIENTO INDEXADO
El modo de Direccionamiento Indexado, utiliza dos elementos que deben sumarse para encontrar
la Direccin efectiva. La instruccin se forma con el cdigo de operacin, seguido por una Direccin Base,
como en el direccionamiento absoluto o extendido. Esta Direccin Base es sumada con un desplazamiento
especificado en un registro para obtener la Direccin efectiva.
Cabe la siguiente aclaracin al lector con algunos conocimientos sobre microprocesadores, muchos
fabricantes; la gran mayora, denominan Direccionamiento Indexado a uno que no cumple con la
definicin dada anteriormente. En uno de los prximos temas (Direccionamiento Base) se aclarar ms
sobre esta disparidad de criterios.
El Direccionamiento Indexado es el apropiado para acceder a arreglos y tablas, en este caso la Direccin
Base explcita en la Instruccin corresponde a la direccin base del Arreglo, mientras que el valor
contenido en el Registro, corresponde al desplazamiento (Indexacin) del componente en el arreglo. Este
modo de direccionamiento lo poseen la mayora de los ltimos procesadores, por ejemplo el 6502, 68705,
Z8000, etc.
El desplazamiento puede ser un nmero con signo o sin signo, segn el procesador,cuando es con signo,
para realizar la suma de un nmero de 8 bit con uno de 16 debe pasar el nmero de 8 bits a 16 manteniendo
el signo (esto es: los bits 8 a 15 del nmero ampliado deben ser iguales al bit 7 del nmero original de 8
bits).
11
Memoria Programa
Cd. Op.
Registros
Desplazamiento
Direccin
Base
Memoria Datos
operando
CP U
Cdigo operacin
31
27
52
AC
5F
Memoria Datos
5F
3179
Una direccin base es siempre una direccin plena, de igual longitud que el bus de direcciones, mientras
que el desplazamiento puede ser corto o largo 8 a 16 por ejemplo.
Si recordamos que en el Direccionamiento Indexado la instruccin contena la Direccin Base y un
Registro contena el desplazamiento, el Direccionamiento Base es precisamente lo opuesto, la Instruccin
contiene un desplazamiento y un registro de direcciones (registro base) contiene la direccin base.
De esto se pueden sacar algunas conclusiones:
a)- Si el desplazamiento y la Direccin Base son de igual longitud, los dos modos Indexado y Base no se
pueden distinguir, por ejemplo PDP-11, 6809 (con desplazamiento largo) etc.
b)- La diferencia entre los dos modos se manifiesta cuando son usados
ejemplo el 6809 con desplazamiento corto.
c)- Los direccionamientos llamados Indexados por los fabricantes de los Microprocesadores son realmente
con Direccin Base, por ejemplo SC/MP, 6800, Z8000, 6808 con 5 y 8 bit de desplazamiento.
d)- En el procesador Z8000 que posee ambos modos, el Indexado y el Base, se observa que como el
desplazamiento y la Direccin Base son de 16 bits no se distinguen, pero ocurre que tienen distintos
cdigos de operacin aunque la operacin realizada sea la misma.
e)- Con respecto al signo del desplazamiento es vlido lo expresado para direccionamiento Indexado.
Memoria Programa
Cd. Op.
Registros
Dir. Base
Desplazamiento
Memoria Datos
Dir. efectiva
operando
13
Memoria Programa
CP U
R
3127
Cd. Op. R
52
+
AC
Memoria Datos
3179
5F
5F
El direccionamiento Indexado es usado cuando la Direccin Base de una estructura de datos es conocida en
el momento en que el programador realiza el programa, pero el acceso a un elemento cualquiera se debe
realizar cuando el programa se est ejecutando. Recordemos que en el Direccionamiento Indexado la
Direccin Base forma parte de la Instruccin.
El direccionamiento base es usado cuando la posicin relativa de un elemento en la estructura de datos es
conocida cuando se realiza el programa, pero la direccin de comienzo de la estructura no est definida
sino que se fijar durante su ejecucin.
Entre las aplicaciones tpicas del Direccionamiento Base podemos citar:
* acceso a datos en una zona de parmetros cuando la direccin base
14
DIRECCIONAMIENTO BASE-INDEXADO
Este modo de direccionamiento obtiene, como los anteriores, la direccin efectiva como la suma
de una Direccin Base y un desplazamiento, con la diferencia de que en este caso ambos, desplazamiento y
Direccin Base, estn en Registros de CPU, de esta forma la Instruccin est formada solo por el Cdigo
de operacin. Por ejemplo el 6809 usa un Registro de 16 bits como Registro base (llamado por el fabricante
Indice), y permite un desplazamiento de 8 bits del Acumulador (A o B) o un desplazamiento de 16 bits del
Acumulador Doble (A y B). El 68000, el 8086 y el Z8000 tambin poseen el modo de Direccionamiento
Base Indexado.
Este modo permite que tanto la direccin base de un arreglo como el desplazamiento de un elemento
puedan calcularse durante la ejecucin del programa.
Memoria Programa
Registros
Memoria Datos
Cd. Op. RB RI
Desplazamiento RI
+
Dir. efec.
operando
Direccin Base RB
Memoria Programa
PC
Cdigo operacin
CP U
5A7E
Memoria Datos
RB
+
0053
A3
5AD1
RI
A3
Memoria Programa
Registros
Direccin Base
Cd. Op. RB
RB
RI
Memoria Datos
Desplazamiento
Desplazamiento
RI
operando
Memoria Datos
Cdigo operacin
Direccin
Indirecta
Direccin
Direccin efectiva
operando
Este modo es utilizado cuando se deben manejar arreglos sin conocer la direccin absoluta de l, pero
conociendo una direccin (Direccin Indirecta) de Memoria donde se encuentra almacenada su direccin
absoluta.
16
Tambin puede llamarse Base Diferido, aunque los fabricantes comnmente lo denominaban
Indexado Indirecto debido a la incertidumbre entre el Direccionamiento Base e Indexado explicada
anteriormente.
Algunos procesadores permiten agregar un nivel de Indireccin a los Direccionamientos Base. Dentro de
los Indexados Diferidos podemos diferenciar dos tipos:
a- Direccionamiento Pre-Indexado Indirecto.
b- Direccionamiento Post-Indexado Indirecto.
La diferencia entre un modo y otro se basa en considerar a quien se le debe sumar el desplazamiento, si al
Registro Base o al contenido de la direccin indicada en dicho Registro.
Memoria Programa
Cd. Op.
Direccin Base
Desplazamiento
Memoria Datos
+
Direccin
Direccin efectiva
operando
Los procesadores 6809 permite agregarle este modo Indirecto a alguno de sus Modos Base o Indexado. La
minicomputadora PDP-11 tambin posee este modo, as como el procesador 6502.
17
Direccin
Memoria Datos
Direccin
Dir. Indirecta
Base
.
.
operando
18
PC
Desplazamiento
Memoria Datos
operando
Dir. efectiva
En ste modo la direccin obtenida como suma del contador de programa y el desplazamiento contenido
en la Instruccin es la direccin Indirecta, donde se encuentra almacenada la direccin efectiva.
Solo algunos procesadores, por ejemplo el 6809 y PDP-11 permiten este modo de direccionamiento.
Memoria Programa
Cdigo operacin
+
PC
Desplazamiento
Memoria Datos
Direccin
Dir. efectiva
Dir. indirecta
operando
DIRECCIONAMIENTO DE BIT
Algunos procesadores caso Z80 y la familia de los microcomputadores del 68705 poseen
instrucciones con las cuales es posible acceder al bit.
Estas Instrucciones de Manipulacin de bits utilizan una combinacin de Modos de Direccionamiento,
Directo, Registro, Registro Indirecto o Indexado para individualizar la posicin de memoria o el registro
donde se encuentra el byte a considerar y un cdigo de 3 bits dentro del cdigo de operacin de la
Instruccin especifica el bit en cuestin.
Estas Instrucciones tienen como ventaja un mejor aprovechamiento de la memoria, tanto la del programa
como la de datos, ya que con una sola Instruccin el programador podr colocar en 1 o 0 un determinado
bit o realizar un salto si ese bit est en 1 o 0. El programador se dar cuenta que si no posee este modo de
acceso al bit necesitara 3 instrucciones del programa, visto est el aprovechamiento de la memoria RAM
ya que el programador no tendr ninguna dificultad en utilizar como bandera a un bit y no desaprovechar
la memoria usando un byte como bandera. Supongamos un acceso directo pleno al bit.
20
Memoria Programa
Cd. Op.
Memoria Datos
bit
Direccin
del Byte
bit a utilizar
DIRECCIONAMIENTO DE INSTRUCCIONES
Cuando la Instruccin en cuestin es de ruptura de la secuencia, condicional o incondicional, se
debe especificar de algn modo con que nueva direccin se debe cargar el contador de Programa en caso de
que se realice la transferencia en el Control de Programa (salto o llamado a subrutina).
Los tipos de acceso a la Instruccin son semejantes a los accesos a operando, ya en algunos ejemplos se
adelant el direccionamiento en las Instrucciones de Bifurcacin. La nica diferencia que se puede citar es
que en el caso de direccionamiento de operandos la direccin efectiva era la direccin del operando en este
caso la direccin efectiva es la direccin de la prxima Instruccin a ejecutar. En el caso de
direccionamiento de Instrucciones algunos tipos de direccionamientos vistos no tienen sentido, por ejemplo
el Direccionamiento Inmediato, el Direccionamiento de bit, los auto incremento y decremento, siendo los
modos de Direccionamiento ms usados el Directo pleno, Directo a pgina presente, Indexados, Base, Indirecto, Relativo, Relativo Indirecto etc.
CONJUNTO DE INSTRUCCIONES DE UN MICROPROCESADOR
Cada microprocesador o familia de microprocesadores posee un conjunto de Instrucciones,
llamado por el fabricante como set de Instrucciones, este conjunto de Instrucciones est definido por el
fabricante.
Estas Instrucciones no son otra cosa que las distintas operaciones que es capaz de realizar el procesador, de
las cuales el usuario elegir las necesarias para elaborar una serie de operaciones sucesivas que constituyen
el programa.
Las Instrucciones de los procesadores se pueden clasificar de acuerdo a su naturaleza, en los siguientes
tipos de Instrucciones:
a- De Transferencia de Informacin.
b- Aritmtico-lgicas.
c- De manejo de contenidos de Registros y Memoria.
d- De control de Programa.
e- De control de sistema.
f- De entrada-salida.
Como se estudi previamente, cada Instruccin puede abarcar uno o mas bytes, ya que se debe especificar
la operacin y el operando, este ltimo teniendo en cuenta el modo de direccionamiento utilizado. Vamos a
dar una mayor generalidad al concepto de operando, distinguiendo entre operandos datos, los cuales son los
datos propiamente dicho, y operandos de control que son a los que se hace referencia en las Instrucciones
21
de control de programa. Por lo tanto cualquier Instruccin en general es la formada por una configuracin
binaria para especificar el cdigo de operacin y otra para especificar al operando, aunque se tienen
Instrucciones de un solo byte.
Es de hacer notar que para los procesadores de 8 bits, sobre los cuales basaremos nuestro estudio, cada uno
de los bytes que forman una Instruccin es el contenido de una direccin de la Memoria de Programa, tanto
las direcciones como sus contenidos se suelen expresar en cdigo hexadecimal, la cual como se vio es una
manera de compactar los nmeros binarios. Sin embargo la codificacin, en lenguaje absoluto (la nica que
comprende el sistema) es muy incmoda para el programador.
Para simplificar el proceso de escribir el programa, depurar los errores e interpretarlo con mayor facilidad
se ha introducido la codificacin simblica o mnemotcnica, donde cada cdigo de operacin es
representado por 3 o 4 letras. Estos smbolos se relacionan con la operacin que se desea realizar. El
fabricante al fijar la lista de Instrucciones, define tambin el cdigo simblico de cada una de las
Instrucciones. En cuanto al operando, tambin se adopta para explicitarlo, una referencia simblica en
varias letras que el usuario puede elegir respetando convenciones dadas por el fabricante.
La codificacin simblica (programacin en lenguaje Assembler) es muy cmoda para el programador,
pero sta no es "entendida" por la computadora, que solo comprende el lenguaje absoluto binario. Por ello,
es necesario traducir el cdigo simblico a su equivalente hexadecimal o binario, esta tarea es realizada por
el Programa ensamblador o armado. Con respecto a los operandos utilizados por las Instrucciones se
pueden distinguir 3 tipos:
a) operando implcito
b) operando inmediato
c) direccin efectiva
En el primer caso no hace falta ninguna indicacin especial sobre el operando ya que ste est implcito en
el cdigo de operacin. En el segundo, el operando forma parte de la Instruccin y en el tercero est en una
direccin efectiva, que puede formarse en alguno de los Modos de Direccionamiento (directo, indexado,
indirecto, etc).
INSTRUCCIONES DE TRANSFERENCIA DE INFORMACION
Permiten las transferencias de datos entre elementos del sistema, por ejemplo entre un registro y otro,
entre un registro y memoria y viceversa. Estas transferencias normalmente la copia del contenido de un
elemento origen o fuente sobre un elemento denominado Destino, destruyendo el contenido anterior de este
ltimo, pero dejando inalterado el Registro fuente. Cuando el elemento origen es la memoria y el destino
un Registro de CPU, la operacin es cargar (load); en el caso Inverso se trata de almacenar (store).
Algunos procesadores poseen Instrucciones de intercambio de Informacin, en las cuales el contenido del
Registro fuente va al Registro destino y viceversa sin perderse ninguno de los contenidos sino que se
Intercambian.
INSTRUCCIONES ARITMETICO-LOGICAS
Son aquellas que utilizan la Unidad Aritmtico-lgica (ALU), en los procesadores de una direccin y
trabajndose en general con dos operandos, uno de stos es en la gran mayora de los casos el acumulador.
El otro podr ser:
a) Otro acumulador o Registro de uso general.
b) Memoria de datos, debindose indicar el modo de direccionamiento en la Instruccin.
Una vez ejecutada la Instruccin, el Acumulador almacena el resultado.
22
Los procesadores de 8 bit tradicionales 8080, 6800, 6802, Z80 solo permiten operaciones aritmticas de
adiccin o sustraccin. Procesadores mas complejos y modernos como el 6809, 68000, 8086 y en general
todos los de 16 bits permiten operaciones de multiplicacin o multiplicacin y divisin por hardware. Esto
ltimo le da al procesador una mayor potencia de clculo.
Las operaciones antes mencionadas se realizan en el formato punto fijo. Todava no se ha implementado
dentro de un procesador (CPU) una unidad aritmtica de punto flotante. Aunque existen coprocesadores
que realizan nicamente operaciones aritmticas en punto flotante. Estos coprocesadores o unidades
aritmticas realizan las operaciones elementales suma, resta, multiplicacin, divisin, raz, potenciacin,
funciones trigonomtricas, logaritmo, etc; entre stas podemos citar el procesador aritmtico Am 9511 o el
coprocesador de la familia del 8086 el 8087.Tambin la familia del Microcomputador PDP-11 posee un
procesador aritmtico. Si nos remitimos a los procesadores de 8 bit, stos representan los nmeros con
signo en el sistema de representacin de complemento a 2. La unidad aritmtica y lgica de un procesador
realiza todas sus operaciones en binario, no obstante algunos MP, la gran mayora, tienden a facilitar la
programacin de operaciones en decimal codificado en binario (BCD) con Instrucciones especiales como el
ajuste decimal que lo poseen la mayora de los procesadores, el SC/MP contempla dentro de su repertorio
la Instruccin de suma en decimal, el procesador 6502 y el Z8000 tiene una bandera y de acuerdo al estado
de sta realiza las operaciones (+ o -) en binario o BCD.
En los microprocesadores de 8 bits, en general las operaciones suma o resta se realizan en 8 bits, cuyo bit
mas significativo indica el signo (tener en cuenta el sistema de representacin de complemento a 2). Si se
desea expresar los nmeros con una mayor cantidad de bits para mayor precisin, se encadenan por
programa dos o mas bytes. Considerando como bit de signo el correspondiente a la palabra mas
significativa, los dems bytes se consideran sin signo, pero el bit ms significativo puede transmitir en la
suma un acarreo o transporte (carry), el cual es necesario tomar en cuenta. Igual ocurre en la resta, donde se
genera un "pido" (borrow). Para poder realizar operaciones en mltiple precisin el procesador deber
poseer Instrucciones especiales que permitan sumar o restar teniendo en cuenta el transporte generado en la
operacin anterior.
Cuando se suman dos nmeros de igual signo o se restan dos de distinto signo, existe la posibilidad de
desborde (overflow); el resultado excede la capacidad disponible en la palabra. Este caso debe ser indicado
por el procesador,para que el programador tome alguna decisin al respecto, ya que el resultado obtenido es
errneo. Esta indicacin tambin se debe realizar para el signo, transporte y resultado nulo. Estos
indicadores se encuentran en un registro llamado Registro de Estado o Registro de Cdigos de condicin o
registro de Indicadores ("Status Register", "Condition Code Register").
Este registro est formado por un cierto nmero de flip-flops independientes, colocndose en 1 cuando se
ha producido la condicin que cada uno debe indicar.
El nmero de Indicadores o banderas ("flags") varan en tipo y cantidad segn el procesador, entre los ms
comunes podemos citar:
a- Flag de cero, se activa cuando el resultado de la ltima operacin es cero o cuando en el acumulador u
otro registro se ha transferido un dato nulo.
b- Flag de signo, se activa cuando el resultado de la ltima operacin es negativo.
c- Indicador de carry, toma su valor activo cuando ocurre un transporte o pedido desde el bit ms
significativo.
d- Flag de carry auxiliar, se activa cuando se produce un acarreo desde el 4 al 5 bit.
23
Estas instrucciones se diferencian de todas las dems en que sus operandos estn vinculados a la memoria
del programa y no a la de datos y tambin porque en ltima instancia todas hacen la misma operacin:
carga del contador del programa, sin afectar datos ni transmitirlos.
El cdigo de operacin de las instrucciones de transferencia de control siempre implica la carga del PC,
con un nuevo valor. Si sta debe producirse sin restricciones (si o si), diremos que la transferencia es incondicional, sta se usa por ejemplo cuando el programa debe salir de un lazo. Por otra parte, est la
capacidad de decisin; la realizacin o no de la transferencia puede estar supeditada a alguna prueba
("test"). Diremos entonces que la transferencia es condicional. En este caso el mecanismo es siempre el
siguiente: si la condicin planteada se verifica, el PC es cargado con la nueva direccin saliendo de la
secuencia normal; caso contrario, es incrementado como corresponde a dicha secuencia.
La forma ms lgica de realizar las pruebas de cuyo resultado depende una transferencia condicional, es
mediante los indicadores o banderas que ya se han mencionado.
Condiciones tales como resultado cero o negativo, transporte y desborde, son fciles de aplicar en un
programa, y son normalmente usadas en los microprocesadores.
25