PALABRAS DE COMPUTADORA (Código de Instrucción).

La unidad de control más pequeña de una computadora es el bit. Sin embargo, un solo bit conlleva muy poca información. Por esta razón, la unidad principal de información en una computadora es un grupo de bits a los cuales se les da el nombre de palabra. El número de bits que forma la palabra recibe el nombre de tamaño de la palabra. El tamaño de la palabra es una manera de describir una computadora. Es frecuente que las computadoras sean descritas en términos de su tamaño de la palabra, tales como computadoras de 8 bits, computadora de 16 bit etc. Por ejemplo, una computadora de 16 bits es aquella en la que las instrucciones y datos se almacenan en la memoria en unidades de 16 bits, y son procesados por la CPU también en unidades de 16 bits. El tamaño de la palabra también indica el tamaño del canal de datos que lleva los datos entre la CPU y la memoria y entre la CPU y los dispositivos de entrada/salida.

Las computadoras más grandes y complejas (mainframes y maxicomputadoras) tienen tamaños de palabra que por lo general se encuentran entre 32y 64 bits. El tamaño de palabra para las minicomputadoras varía entre 8 y32 bits. Las microcomputadoras tienen tamaños de palabras de 4 a 32 bits. En general, una computadora con tamaño de palabra mayor, puede ejecutar programas de instrucciones a una mayor velocidad, debido a la mayor cantidad de datos e instrucciones que caben dentro de la palabra. Sin embargo, un tamaño de palabra mayor también significa mayor número de conexiones entre la CPU, la memoria y los dispositivos de entrada/salida.

Como sabemos, un grupo de 8 bits se denomina byte. Dado que las microcomputadoras de 8 bits se ha utilizado durante mucho tiempo, y debido a que los códigos ASCII ocupan sólo un byte, éste se sigue empleando para describir el tamaño de la palabra y la capacidad de memoria, aun en computadoras que tienen un tamaño de palabra mayor. Puede decirse que una computadora de 8 bits tiene un tamaño de palabra de 1 byte. Una computadora de 16 bits tiene un tamaño de palabra de dos bytes, y así sucesivamente. Una memoria que almacena 128K palabras de 16 bits también tiene una capacidad de 256K bytes.

Tipos de palabras de la computadora Una palabra almacenada en la memoria de la computadora puede contener dos clases de información –introducciones o datos. Los datos pueden ser numéricos o de información de caracteres y serán procesados por el programa que está ejecutando la CPU. Éstos pueden encontrarse en muchos formatos, entre los que se incluyen representaciones binarias con o sin signo, BCD, de punto flotante (algo similar a la notación de ingeniería), o códigos ASCII para caracteres, entre otros. He aquí un ejemplo de cómo se almacena en una palabra de 8 bits el número +8610:

01010110

El siguiente ejemplo muestra la forma en que se almacena en el código ASCII correspondiente al carácter "V" en una palabra de 8 bits.

01010110

Observe que la dos palabras son idénticas. La computadora desconoce la diferencia entre ambas. Es responsabilidad del programador saber qué tipo de dato está almacenado en la memoria y asegurarse de que el programa interprete y procese los datos de manera apropiada.

 

 

A continuación se proporciona otro ejemplo donde se almacenan en una palabra de 16 bits dos caracteres codificados en ASCII:

01010110010101 11

V W

La misma palabra de 16 bits bien podría ser la representación del número +2210310. De lo anterior, resulta claro que entre más grande sea el tamaño de la palabra mayor será el número de caracteres así como la magnitud de los números que se pueden almacenarse en ella.

Las palabras que guardan instrucciones son más complejas que las que sólo contienen datos.

 

 

PALABRAS DE INSTRUCCIÓN

El formato que se utiliza con palabras de datos sólo varía ligeramente entre diferentes computadoras, especialmente en aquellas con el mismo tamaño de palabra. Sin embargo, no sucede lo mismo con el formato de las palabras de instrucción. Estas palabras contienen la información necesaria para una computadora ejecute sus diversas operaciones, el formato y código de éstas puede variar ampliamente de una computadora a otra. Dependiendo de la computadora, la información contenida en una palabra de instrucción puede ser diferente. Pero, para la mayoría de las computadoras, las palabras de instrucción llevan dos unidades básicas de información: la operación que se realizará y la dirección del operando (datos) con el cual se operará.

 

0 3 0 0 0 1 0 1 1 0 1 0 0 1 1 1 0 0 1 0

Código Código de

op dirección

 

La figura se muestra un ejemplo de una palabra de instrucción de una computadora hipotética de 20 bits. Los 20 bits de la palabra de instrucción se dividen en dos partes. La primera parte de la palabra (bits 16 al 19) contiene el código de operación (código op, para abreviar). El código op de 4 bits representa la operación que a la computadora se le pide ejecutar, como la adición o sustracción. La segunda parte (bits o al 15) es la dirección de operando, que representa la localidad en la memoria donde se almacena el operando.

Con 4 bits que se usan para el código op, hay 24 = 16 posibles códigos diferentes, donde cada uno indica una instrucción distinta. Esto significa que una computadora que utiliza este formato de palabra de instrucción se limita a 16 diferentes posibles instrucciones que puede efectuar. Una computadora más versátil tendría un mayor número de instrucciones y, por tanto, requeriría mas bits en su código op. En cualquier caso, cada instrucción que una computadora puede ejecutar tiene un código op específico que la computadora (unidad de control) debe interpretar (decodificar).

La palabra de la instrucción de la figura tiene 16 bits reservados para el código de dirección del operando. Con 16 bits, hay 216 - 65,536 diferentes direcciones posibles. Por consiguiente, esta palabra de instrucción puede especificar 16 instrucciones distintas y 65,536 direcciones de operando.

Como ejemplo, una palabra de instrucción de 20 bits podría ser:

 

0 3 0 0 0 1 0 1 1 0 1 0 0 1 1 1 0 0 1 0

Código Código de

op dirección

 

El código op representa una de las 16 operaciones posibles; supongamos que se trata del código de adición (ADD). El código de dirección es 0101101001110010 o más adecuadamente,

5 A 72 en hexadecimal. De hecho, esta palabra de instrucción completa puede expresarse como:

4 5 A 7 2

Código Dirección

op

 

Palabra de instrucción común de una sola dirección.

Esta palabra de Instrucción completa, por tanto, indica a la computadora que haga lo siguiente:

Extraer los datos almacenados en la localidad de dirección 5A72, enviarlos a la ALU, y sumarlos al número en el registro acumulador. La suma se almacenará

después en el acumulador. (El contenido anterior del acumulador se pierde.)

 

Instrucciones de bytes múltiples Hemos visto formatos de palabra de instrucción que contienen información del código op y de dirección del operando en una sola palabra. En otras palabras, una instrucción completa como la de la figura anterior se almacena en una sola localidad de memoria. Esto es común en las computadoras con tamaños de palabra relativamente grandes. Para muchas microcomputadoras y minicomputadoras, el tamaño de palabra menor hace imposible ofrecer el código op y la dirección del operando en una sola palabra.

Como la vasta mayoría de las microcomputadoras utilizan una longitud de palabra de 8 bits (un byte), describiremos los formatos de instrucción que se utilizan en computadoras de 8 bits. Con un tamaño de palabra de un byte hay tres formatos de instrucción básicos: instrucciones de uno, dos y tres bytes.

La instrucción de un byte contiene solamente un código op de 8 bits, sin porción de dirección. Resulta claro que este tipo de instrucción no especifica ningún dato de la memoria por operar. Por esta razón, las instrucciones de un byte se usan para realizar operaciones que no requieren datos de memoria. Un ejemplo de esto sería la instrucción borra el registro acumulador cero (CLRA), que ordena a la computadora borrar todos los FFs en el acumulador ALU

Formatos de instrucción usados en microcomputadoras de 8 bits.

El primer byte de instrucción de dos bytes en un código op y el segundo es un código de dirección de 8 bits que especifica la localidad de memoria del operando. En la instrucción de tres bytes, el segundo y tercer bytes forman una dirección de operando de 16 bits. Para estas instrucciones de bytes múltiples, los dos o tres bytes que conforman toda la instrucción tienen que almacenarse en localidades de memoria sucesivas. Esto se ilustra en la tabla 13-1 para una instrucción de tres bytes. Las columnas de la izquierda proporciona las localidades de dirección en la memoria donde se almacena cada byte palabra). Estas direcciones se dan en código hexadecimal. La segunda columna de la palabra binaria como realmente almacena en la memoria; en la tercera columna es el equivalente de hex de esta palabra. Examine este ejemplo en su totalidad antes de continuar leyendo e intente imaginar qué es lo qué representa.