lunes, 29 de septiembre de 2008

El MicroProcesador

Para poder programar en asm es fundamental conocer el funcionamiento interno de un procesador , ya que en este lenguaje lo que hacemos es comunicarnos directamente con él , haciendo uso de sus registros y sus propiedades.

En esta imagen se expresa de forma conceptual la estructura interna de un microprocesador de la
familia x86, desde el punto de vista del programador.

clic en la imagen para ampliar
























Descripción de el sistema interno:
  • La unidad central de proceso es la encargada de ejecutar las instrucciones y procesar los datos, en su interior contiene un registro de instrucciones llamado pila de instrucciones del tipo FIFO
  • La Unidad Lógico Aritmética es la encargada de las funciones matemáticas y de comparación
Los registros de propósito general:
  • AX ( acumulador ) es el encargado de guardar el resultado de las operación.
  • BX ( base ) guarda el offset para el direccionamiento relativo en la memoria.
  • CX ( contador ) almacena la cantidad de veces que debe repetirse un bucle.
  • DX ( datos ) dirección para acceder a las variables
Los registros de direccionamiento o apuntadores:
  • SP ( apuntador de pila ) dirige el acceso de datos a la pila de programas.
  • BP ( base ) proporciona direcciones para la transferencia de datos.
  • SI ( índice fuente ) apunta al inicio de una cadena de datos.
  • DI ( índice destino ) direcciona el punto donde almacenar una cadena.
  • IP ( apuntador de instrucciones ) este registro almacena la dirección de memoria donde se encuentra la siguiente instrucción.
Registros de segmentación:
  • CS ( segmento de código ) dirección base del lugar en la memoria donde comienza la primera instrucción del programa.
  • DS ( segmento de datos ) dirección base de un área de la memoria donde se guardan las variables del programa
  • ES ( segmento extra ) por lo general es igual que DS.
  • SS ( segmento de pila ) dirección base del área en la memoria reservada para la pila.
Registro de estado:
  • FLAG ( registro de estado ) contiene información del estado y condiciones del procesador.
Veamos ahora el interior del registro de estado.




Descripción de las banderas:
  • CF ( acarreo ) Indica que se ha generado un acarreo después de una operación aritmética.
  • PF ( paridad ) Indica la paridad de un número. 1 = par // 0 = impar
  • AF ( acarreo auxiliar ) Indica si ha habido acarreo entre los bits 3 al 4
  • ZF ( comparación ) Indica el resultado de una operación de comparación. 1 = igual // 0 = diferente
  • SF ( sigo ) Nos da el signo después de una operación aritmética. 1 = negativo // 0 = positivo
  • TF ( trampa ) Controla la ejecución paso a paso con fines de depuración.
  • IF ( interrupción ) Activa o desactiva el terminal INTR del procesador.
  • DF ( dirección ) Indica el sentido en que se moverán los datos en manipulación de cadenas
  • OF ( desbordamiento ) Indica cuando el resultado de una operación sobrepasa la capacidad de almacenamiento de los registros.

No hay comentarios: