1. buscar: La dirección de la instrucción (contenida en el contador del programa, PC) se envía a la memoria. La memoria obtiene la instrucción de esa dirección y la coloca en el registro de instrucciones (IR). La PC se incrementa para señalar la siguiente instrucción.
2. Decode: La unidad de control decodifica la instrucción en el IR. Esto implica identificar el código de operación (la parte de la instrucción que especifica la operación que se realizará) y los operandos (los datos sobre los que actuará la operación). Los operandos pueden ser valores inmediatos (integrados dentro de la instrucción en sí), direcciones de ubicaciones de memoria o números de registro.
3. Ejecutar: Según el código de operación decodificado, la unidad de control dirige las acciones apropiadas:
* Operaciones aritméticas/lógicas: Si la instrucción es una operación aritmética (agregar, sub, etc.) o una operación lógica (y, o, etc.), los operandos (obtenidos de memoria o registros como se especifican) se envían a la unidad lógica aritmética (ALU). La ALU realiza la operación y almacena el resultado en un registro especificado o ubicación de memoria.
* Operaciones de transferencia de datos: Instrucciones como la carga y el almacén Mueven datos entre la memoria y los registros. Cargar mueve datos de una ubicación de memoria a un registro; Almacene mueve datos de un registro a una ubicación de memoria.
* Instrucciones de flujo de control: Estas instrucciones cambian el orden de ejecución de instrucciones.
* Jump: La PC se carga con una nueva dirección especificada en la instrucción, lo que hace que el programa salte a una ubicación diferente.
* rama (salto condicional): La PC se carga con una nueva dirección solo si se cumple una condición especificada (por ejemplo, el valor de un registro es cero). De lo contrario, la ejecución continúa con la siguiente instrucción.
* Halt: El procesador detiene la ejecución.
Ejemplo:
Supongamos que tenemos una instrucción `Agregue R1, R2` (agregue el contenido del Registro R1 para registrar R2 y almacenar el resultado en R2).
1. buscar: La PC apunta a la ubicación de memoria que contiene `Agregar R1, R2`. Esta instrucción se obtiene y se carga en el IR. La PC está incrementada.
2. Decode: La unidad de control reconoce "agregar" como el código de operación e identifica R1 y R2 como los operandos (registros).
3. Ejecutar: La unidad de control dirige las siguientes acciones:
* El contenido de R1 se obtiene.
* El contenido de R2 se obtiene.
* El ALU agrega los dos valores.
* El resultado se almacena en R2.
El ciclo se repite con la siguiente instrucción apuntada por la PC. Los detalles específicos del uso del registro, los modos de direccionamiento de memoria y los formatos de instrucción varían ligeramente dependiendo de la implementación particular de SAP-1 descrita en un libro de texto o curso. Sin embargo, el ciclo fundamental de salida-decode-ejecutivo permanece constante.