Organización Informática | Formatos de instrucción (instrucción de dirección cero, uno, dos y tres)

Una computadora realiza una tarea basada en las instrucciones proporcionadas. La instrucción en computadoras comprende grupos llamados campos. Estos campos contienen información diferente, ya que para las computadoras todo está en 0 y 1, por lo que cada campo tiene un significado diferente en función de lo que una CPU decide qué realizar. Los campos más comunes son:

  • El campo de operación especifica la operación que se realizará como suma.
  • Campo de dirección que contiene la ubicación del operando, es decir, registro o ubicación de memoria.
  • Campo de modo que especifica cómo se va a fundar el operando.

La instrucción es de longitud variable según el número de direcciones que contiene. En general, la organización de la CPU es de tres tipos según la cantidad de campos de dirección:

  1. Organización de acumulador único
  2. organización del registro general
  3. Organización de la pila

En la primera organización, la operación se realiza involucrando un registro especial llamado acumulador. En segundo lugar, se utilizan múltiples registros para fines de cálculo. En la tercera organización, el trabajo se basa en la operación de pila debido a que no contiene ningún campo de dirección. No es necesario aplicar una sola organización, lo que vemos generalmente es una combinación de varias organizaciones. 

Según el número de dirección, las instrucciones se clasifican en: 

Tenga en cuenta que usaremos la expresión X = (A+B)*(C+D) para mostrar el procedimiento. 

  1. Instrucciones de dirección cero – 
     

Una computadora basada en pila no usa el campo de dirección en la instrucción. Para evaluar una expresión, primero se convierte a notación polaca inversa, es decir, notación de sufijo. 

Expression: X = (A+B)*(C+D)
Postfixed : X = AB+CD+*
TOP means top of stack
M[X] is any memory location
EMPUJAR A ARRIBA = A
EMPUJAR B ARRIBA = B
AGREGAR   ARRIBA = A+B
EMPUJAR C ARRIBA = C
EMPUJAR D ARRIBA = D
AGREGAR   ARRIBA = C+D
mul   ARRIBA = (C+D)*(A+B)
ESTALLIDO X M[X] = ARRIBA

2. Instrucciones de una dirección: 
utiliza un registro ACUMULADOR implícito para la manipulación de datos. Un operando está en el acumulador y el otro está en el registro o ubicación de memoria. Implícito significa que la CPU ya sabe que hay un operando en el acumulador, por lo que no es necesario especificarlo. 

Expression: X = (A+B)*(C+D)
AC is accumulator
M[] is any memory location
M[T] is temporary location
CARGA A CA = M[A]
AGREGAR B CA = CA + M[B]
TIENDA T M[T] = CA
CARGA C CA = M[C]
AGREGAR D CA = CA + M[D]
mul T CA = CA * M[T]
TIENDA X M[X] = CA

3. Instrucciones de dos direcciones: 
esto es común en las computadoras comerciales. Aquí se pueden especificar dos direcciones en la instrucción. A diferencia de las instrucciones anteriores de una dirección, el resultado se almacenó en el acumulador, aquí el resultado se puede almacenar en diferentes ubicaciones en lugar de solo acumuladores, pero requiere más cantidad de bits para representar la dirección. 
 

Aquí la dirección de destino también puede contener operandos. 

Expression: X = (A+B)*(C+D)
R1, R2 are registers
M[] is any memory location
MOVIMIENTO R1, A R1 = M[A]
AGREGAR R1, B R1 = R1 + M[B]
MOVIMIENTO R2, C R2 = C
AGREGAR R2, D R2 = R2 + D
mul R1, R2 R1 = R1 * R2
MOVIMIENTO X, R1 M[X] = R1

4. Instrucciones de tres direcciones: 
tiene tres campos de dirección para especificar un registro o una ubicación de memoria. Los programas creados son mucho más cortos en tamaño, pero el número de bits por instrucción aumenta. Estas instrucciones facilitan mucho la creación del programa, pero no significa que el programa se ejecutará mucho más rápido porque ahora las instrucciones solo contienen más información, pero cada micro operación (cambiar el contenido del registro, cargar la dirección en el bus de direcciones, etc.) se realizará en un ciclo. solamente. 

Expression: X = (A+B)*(C+D)
R1, R2 are registers
M[] is any memory location
AGREGAR R1, A, B R1 = M[A] + M[B]
AGREGAR R2, C, D R2 = M[C] + M[D]
mul X, R1, R2 M[X] = R1 * R2

Publicación traducida automáticamente

Artículo escrito por him0000 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *