Códigos de operación de longitud fija y variable

Una máquina con un formato de instrucción que dedica n bits al CO permitirá 2n instrucciones diferentes, cada una de las cuales puede tener diferente número de operandos (0, 1, 2, 3, etc.). Los bits del campo.

OPERANDOS se pueden utilizar para extender el CO de aquellas instrucciones con menor número de operandos.

Ejemplo: Partimos de una máquina con instrucciones de longitud fija de 24 bits y consideraremos los siguientes supuestos:

La máquina dispone de 16 registros generales

– En este caso se pueden codificar 16 instrucciones de 2 operandos: uno en registro y el otro en memoria

2) Si queremos extender el CO se puede utilizar una de las 16 combinaciones del CO (quedarían 15 con 2 operandos), por ejemplo CO = 1111, dando la posibilidad de codificar 16 instrucciones de 1 operando en memoria. Si queremos seguir extendiendo el CO podemos utilizar CO = 1111 1111 (quedarían 15 con 1 operando) para definir instrucciones sin operandos (216 = 65.536).

En la siguiente tabla se resume el proceso descrito.

Extender el CO

Otra alternativa: dedicar 2 bits para indicar si la instrucción tiene 0, 1 o 2 operandos:

Dedicar 2 bits para indicar si la instrucción

L = 00 → CO de 2 bits → 4 instrucciones de 2 operandos
L = 01 → CO de 6 bits → 64 instrucciones de 1 operando
L = 10 → CO de 22 bits → 4.194.304 instrucciones de 0 operandos

Fuente: Estructura de Computadores, Facultad de Informática, UCM