CICLO DE FETCH
Un ciclo de instrucción (también llamado ciclo de fetch) es el periodo de tiempo que tarda la unidad central de proceso (CPU) en ejecutar una instrucción de lenguaje máquina. Comprende una secuencia de acciones determinada que debe llevar a cabo la CPU para ejecutar cada instrucción en un programa. Cada instrucción del juego de instrucciones de una CPU puede requerir diferente número de ciclos de instrucción para su ejecución. Un ciclo de instrucción está formado por uno o más ciclos máquina. •
Para que cualquier sistema de proceso de datos basado en microprocesador (por ejemplo un ordenador) o microcontrolador (por ejemplo un reproductor de MP3) realice una tarea (programa) primero debe buscar cada instrucción en la memoria principal y luego ejecutarla.
Secuencia de acciones del ciclo de instrucción Instrucción: El valor del contador de programa (es un registro del procesador de un computador que indica la posición donde está el procesador en su secuencia de instrucciones.)Sobre el bus de direcciones (es un canal del microprocesador totalmente independiente, donde se establece la dirección de memoria de los datos en tránsito). Entonces el CPU pasa la instrucción de la memoria principal a través del bus de datos (encarga de mover la información por los componentes de hardware del sistema de computación, tanto de Entrada (teclado, mouse,) como de salida (monitor, impresora), al Registro de Datos de Memoria (MDR), el valor del MDR es colocado en el Registro de Instrucción Actual (CIR), un circuito que guarda la instrucción temporalmente de manera que pueda ser decodificada y ejecutada. Decodificación El código de operación de la instrucción que se encuentra en el Registro de datos DR, se deposita en el registro de instrucciones (IR). Luego, los circuitos de control interpretan ese código de operación para determinar qué operación se va a ejecutar.
Fetch de Operando Realiza la búsqueda de un operando en memoria, si es necesario. Generalmente es la misma instrucción quien proporciona la dirección del operando al procesador.
Ejecución de la Operación Una vez conocida la naturaleza de la instrucción, y el operando ha sido extraído desde memoria, el procesador ejecuta la operación indicada por el código contenida en la instrucción.
Lenguaje ensamblado El lenguaje ensamblador (assembler) es un tipo de lenguaje de bajo nivel utilizado para escribir programas informáticos, y constituye la representación más directa del código máquina específico para cada arquitectura de computadoras legible por un programador. Fue usado principalmente en los inicios del desarrollo de software, cuando aun no se contaba con los potentes lenguajes de alto nivel.
Características •
•
•
•
Lenguaje ensamblador posee una cierta dificultad de ser entendido directamente por un ser humano ya que su estructura se acerca mas bien al lenguaje máquina, es decir, lenguaje de bajo nivel. El lenguaje ensamblador es difícilmente portable, es decir, un código escrito para un microprocesador en particular necesita ser modificado muchas veces en su totalidad para poder ser usado en otro microprocesador. Los programas hechos en lenguaje ensamblador son generalmente más rápidos y consumen menos recursos del sistema (memoria RAM y ROM). Al programar cuidadosamente en lenguaje ensamblador se pueden crear programas que se ejecutan más rápidamente y ocupan menos espacio que con lenguajes de alto nivel. Con el lenguaje ensamblador se tiene un control muy preciso de las tareas realizadas por un microprocesador por lo que se pueden crear segmentos de código difíciles de programar en un lenguaje de alto nivel.
Assembler
Código máquina El código máquina, o lenguaje de máquina, está formado por instrucciones sencillas, dependiendo de la estructura del procesador o o o o o o o
llenar un registro con un valor constante mover datos de una posición de memoria a un registro o viceversa escribir y leer datos de dispositivos sumar, restar, multiplicar o dividir los valores de dos registros, colocando el resultado en uno de ellos o en otro registro realizar operaciones binarias, incluyendo operaciones lógicas (AND/OR/XOR/NOT) comparar valores entre registros (mayor, menor, igual) saltar a otra posición en el programa y ejecutar instrucciones allí