sábado, 21 de enero de 2017

Lenguaje de Máquinas

Modos de Direccionamiento


Teoría del uso del direccionamiento.
Modo de direccionamiento específicos.
Memoria, mapa de memoria, paginación, segmentación y bloques.
Sincronización y Temporización, ciclos de acceso, lectura y escritura.
Temporización y control general de operaciones.

  Tipos, Instrucciones y lenguajes de máquina

Tipos y formatos de instrucciones.
Clasificación de diversos sets de instrucciones para distintos micro-procesadores.
Aplicación de programación en lenguaje de máquinas.

Conexión lenguaje ensamblador – componentes hardware.


Requisitos para programar en Assembler

Hardware:

Cantidad de registros generales
Registros de control (Contador de programa, Puntero de Pila, Registro de Estado…)
Tamaño de los registros generales, para saber el  rango de los números que se pueden manejar.
Tamaño de la memoria
Software:
El juego de instrucciones
Organización de la Pila


Tratamiento de instrucciones

En todo momento, la UC mantiene:

       - Contador de programa (PC): Contiene la direccion de la instrucción a ejecutar.
Tanto para la instrucción secuencial (ver direccion de la instrucción siguiente) como para los saltos (condicionales o no), su constante actualización corresponde a la UC.
      - Registro de instrucción (RI): contiene la instrucción a ejecutar.

Programa e instrucciones


Codificación de las instrucciones


Requisitos del conjunto de instrucciones

El conjunto de instrucciones de un computador debe ser completo en el sentido de que se pueda construir un programa para evaluar una función computable usando una cantidad de memoria razonable y empleando un tiempo moderado, es decir, el número de instrucciones de ese programa no debe ser demasiado elevado.
Los juegos de instrucciones también tienen que ser eficientes, esto significa que las funciones más necesarias deben poder realizarse usando pocas instrucciones.
El conjunto de instrucciones de una máquina debe ser regular, es decir debe ser simétrico (por ejemplo, si existe una instrucción de desplazamiento a la izquierda, debe haber otra de desplazamiento a la derecha, etc.) y ortogonal, es decir, deben poder combinarse, en la medida de lo posible, todos las operaciones con todos los tipos de datos y modos de direccionamiento.
Idealmente compatible con versiones anteriores.

    ** ortogonalidad: Cada operación debe poder hacerse con cualquier tipo de operandos y con cualquier tipo de direccionamiento.
    ** regularidad: El juego de instrucciones no presenta casos especiales.

Tipos de instrucciones

- A mayor numero de instrucciones, más complejidad de la UC y mayor número de bits requeridos por el campo código de operación.
- Dos tendencias a este respecto: RISC: pocas instrucciones, sencillas y se ejecutan en pocos ciclos. CISC: muchas instrucciones, complejas y muchos ciclos de reloj.
- Tipos de instrucciones: 
                * Instrucciones de movimiento de datos: A/desde/entre registros CPU/ direcciones de memoria.
                
                * Instrucciones aritmética-lógica: Suma, resta, multiplicación, división, and, or, desplazamientos, etc. Operaciones punto flotante.
                
                * Instrucciones de salto: Condicionales, incondicionales, manejo de subrutinas.



Tiempo de ejecución de un programa.



Modelos de ejecución



Donde estan los operandos en los distintos ISA.
       
     -  Arquitectura de pila: Implícitamente en la cima de la pila (memoria).
     - Arquitectura de acumulador: implícitamente uno de los fuentes y el destino en el registro acumulador y el otro fuente en memoria.
     - Arquitectura de registros: En registros o posiciones de memoria, 2 ó 3 operandos explícitos.
                 * Según el tipo de arquitectura de registros: 
                          - Se podrá hacer operaciones ALU con datos                  en memoria, ó habrá que cargarlos en registros                  para operar con ellos (MIPS).


Ejemplo de código en las diferentes ISA

No hay comentarios:

Publicar un comentario