Una computadora instructiva simplificada (SIC) es una computadora hipotética que tiene características de hardware que a menudo se encuentran en máquinas reales. Hay dos versiones de esta máquina:
- Modelo estándar SIC
- SIC/XE (equipo extra o caro)
Los programas de objetos para SIC se pueden ejecutar correctamente en SIX/XE, lo que se conoce como compatibilidad ascendente.
Componentes/arquitectura de la máquina SIC –
1. Memoria –
- La memoria es direccionable por bytes, es decir, las palabras se direccionan por la ubicación de su byte con el número más bajo.
- Hay 2^15 bytes en la memoria de la computadora (1 byte = 8 bits)
3 bytes consecutivos = 1 palabra (24 bits = 1 palabra)
2. Registros –
Hay 5 registros en el SIC. Cada registro tiene una dirección asociada a él conocida como número de registro. El tamaño de cada registro es de 3 bytes. Sobre la base del tamaño del registro, el tamaño del entero depende.
I. A(Acumulador-0): Se utiliza para operaciones matemáticas.
II. X (Registro de índice-1): se utiliza para el direccionamiento.
tercero L(Registro de Enlace-2): Almacena la dirección de retorno de la instrucción en caso de subrutinas.
IV. PC (Program Counter-8): Contiene la dirección de la siguiente instrucción a ejecutar.
V. SW (Palabra de estado-9): contiene una variedad de información
Registro de palabra de estado:
- El bit de modo se refiere al modo de usuario (valor = 0) o al modo de supervisión (valor = 1). Ocupa 1 bit.[0]
- El bit de estado se refiere a si el proceso está en estado de ejecución (valor = 0) o en estado inactivo (valor = 1). También ocupa 1 bit.[1]
- El bit de identificación se refiere a la identificación del proceso (PID). Ocupa 3 bits.[2-5]
- El bit CC se refiere al código de condición, es decir, indica si el dispositivo está listo o no. Ocupa 2 bits.[6-7] El bit de
máscara se refiere a la máscara de interrupción. Ocupa 4 bits.[8-11] - X se refiere al bit no utilizado. También ocupa 4 bits.[12-15]
- ICode se refiere al código de interrupción, es decir, rutina de servicio de interrupción. Ocupa los bits restantes.[16-23]
3. Formato de datos –
- Los números enteros están representados por 24 bits.
- Los números negativos se representan en complemento a 2.
- Los caracteres están representados por valores ASCII de 8 bits.
- No hay representación de punto flotante disponible.
4. Formato de instrucción:
todas las instrucciones en SIC tienen un formato de 24 bits.
- Si x=0 significa modo de direccionamiento directo.
- Si x=1 significa modo de direccionamiento indexado.
5. Conjunto de instrucciones –
- Instrucciones de carga y almacenamiento: para mover o almacenar datos del acumulador a la memoria o viceversa. Por ejemplo, LDA, STA, LDX, STX, etc.
- Instrucciones de comparación: se utilizan para comparar datos en la memoria por contenido en el acumulador. Por ejemplo datos COMP.
- Instrucciones aritméticas: se utilizan para realizar operaciones en el acumulador y la memoria y almacenar los resultados en el acumulador. Por ejemplo AÑADIR, SUB, MUL, DIV, etc.
- Salto condicional: compara el contenido del acumulador y la memoria y realiza la tarea en función de las condiciones. Por ejemplo JLT, JEQ, JGT
- Vinculación de subrutinas: Instrucciones relacionadas con las subrutinas. Por ejemplo JSUB, RSUB
6. Entrada y salida:
se realiza transfiriendo 1 byte a la vez desde o hacia los 8 bits más a la derecha del acumulador. Cada dispositivo tiene un código único de 8 bits.
Hay 3 instrucciones de E/S:
- Test Device (TD) prueba si el dispositivo está listo o no. El código de condición en el Registro de palabras de estado se usa para este propósito. Si cc es <, el dispositivo está listo; de lo contrario, el dispositivo está ocupado.
- Leer datos (RD) lee un byte del dispositivo y lo almacena en el registro A.
- Escribir datos (WD) escribe un byte desde el registro A al dispositivo.
Referencias:
Leland.L.Beck: Introducción a la programación de sistemas, 3.ª edición, Addison-Wesley, 1997.
Publicación traducida automáticamente
Artículo escrito por NishuAggarwal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA