Portada » Informática » Concepto de registro en informática
Un computador debe suministrar diversas clase de datos elementales y estructuras de datos que se van a manipular.
Un computador debe proveer un conjunto de operaciones primitivas útiles para la manipulación de datos
Un computador debe aportar mecanismos para controlar el orden en que se van a ejecutar las operaciones primitivas.
Un computador debe proporcionar mecanismos para controlar los datos que se suministran a cada ejecución de una operación.
Un computador debe proveer mecanismos para controlar la asignación de almacenamiento para programas y datos
Un computador debe suministrar mecanismos para la comunicación con un entorno externo que contiene programas y datos que se van a procesar.
El esquema de la Figura 1.2 muestra tres componentes principales de almacenamiento de datos: memoria principal, registros externos de alta velocidad y archivos externos. La memoria está organizada como una secuencia lineal de bits subdividida en palabras de longitud fija. Un computador tiene ciertos tipos de datos integrados que se pueden manipular directamente con operaciones primitivas de hardware (enteros, reales, caracteres, etc.). Los programas también son una forma de dato.
Tiene que haber una representación interconstruida para programas, la cual se designa como representación en lenguaje de máquina. Típicamente, un programa en lenguaje de máquina es una secuencia de posiciones de memoria, cada una de las cuales contiene una instrucción o más. A su vez, cada instrucción se compone de un código de operación y un conjunto de designadores de operando.
Un conjunto típico incluiría operaciones primitivas para aritmética, primitivas para probar diversas propiedades de los elementos de datos, primitivas para tener acceso a diversas partes de un elemento de dato y modificarlas, primitivas para controlar dispositivos de E/S y primitivas para el control de secuencia.
La instrucción siguiente que se debe ejecutar está determinada por el contenido de un registro de direcciones de programa o contador de programa, PC, el cual contiene la dirección de la próxima instrucción a ejecutar. Se permite que ciertas operaciones primitivas modifiquen el registro de direcciones para transferir el control a otra parte del programa, pero es el intérprete el que realmente utiliza el registro de direcciones de programa y guía la secuencia de operaciones. La operación primitiva puede modificar los datos de la memoria o registros, acceder a dispositivos de E/S o cambiar el orden de ejecución modificando el contenido del registro de direcciones de programa.
Las instrucciones deben especificar los operandos que la operación designada va a usar. Los operandos pueden estar en la memoria o en registros internos. El computador debe proporcionar mecanismos de direccionamiento de los operandos de una manera flexible. A esto se le denomina Control de Acceso a Datos.
(Administración de la Memoria). Un principio que guía el diseño de máquinas es el de mantener todos los recursos del computador en operación tanto como sea posible. A menudo no existen mecanismos de administración de memoria por hardware. Los datos y los programas residen en la memoria durante toda la ejecución del programa. Sistemas más sofisticados permiten paginación o relocalización dinámica de programas por hardware.
Consiste de un conjunto de dispositivos periféricos de almacenamiento y de E/S. Estos dispositivos representan el «mundo exterior» para el computador, y cualquier comunicación con él debe tener lugar a través del entorno de operación.
Una comprensión de la organización estática de un computador en términos de datos, operaciones, estructuras de control proporciona sólo una parte del cuadro. El pleno entendimiento exige que también se considere la operación dinámica del computador durante la ejecución de programas. Un medio conveniente de visualizar el comportamiento dinámico es a través del concepto de «estado del computador»
Se podría proyectar un traductor para traducir programas en lenguaje de alto nivel a programas en lenguaje de máquina del computador real. El intérprete y las operaciones primitivas integradas en el hardware ejecutan directamente el programa en lenguaje de máquina.
Un ensamblador es un traductor cuyo lenguaje objeto es también alguna variedad de lenguaje de máquina para un computador real pero cuyo lenguaje fuente, un lenguaje ensamblador, constituye en gran medida una representación simbólica del código de máquina objeto.
Un compilador es un traductor cuyo lenguaje fuente es un lenguaje de alto nivel y cuyo lenguaje objeto se aproxima el lenguaje de máquina de un computador real, ya sea que se trate de un lenguaje ensamblador o laguna variedad de lenguaje de máquina.
Un cargador o editor de vínculos es un traductor cuyo lenguaje objeto es un código de máquina real y cuyo lenguaje fuente es casi idéntico; y está compuesto de programas en lenguaje de máquina en forma reubicable o relocalizable junto con tablas de símbolos que especifican donde el código reubicable se debe modificar para volverlo auténticamente ejecutable. La función del cargador es crear un programa ejecutable único cuyas direcciones sean compatibles.
Un preprocesador o un macroprocesador es un traductor cuyo lenguaje fuente es una forma ampliada de un lenguaje de alto nivel como C++ o Pascal y cuyo lenguaje objeto es la forma estándar del mismo lenguaje. El programa objeto que produce un preprocesador queda listo para ser traducido y ejecutado por los procesadores usuales para el lenguaje estándar. (Casi todos los compiladores de C incluyen un preprocesador de esta clase.)