Lenguaje ensamblador y Estructura del CPU

2,281 views
1,968 views

Published on

Conceptos de lenguajes ensamblador asi como la estructura del procesador.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,281
On SlideShare
0
From Embeds
0
Number of Embeds
89
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Lenguaje ensamblador y Estructura del CPU

  1. 1. Ramón Iván Romo Reyes
  2. 2. Lenguaje ensamblador: 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.
  3. 3. Por ejemplo cuando: Es requerido un ejecutable binario independiente (stand-alone), es decir uno que deba ejecutarse sin recursos a componentes de tiempo de ejecución o a bibliotecas asociadas con un lenguaje de alto nivel. programas empotrados que solo almacenan una pequeña cantidad de memoria y el dispositivo está dirigido para hacer tareas para un simple propósito.
  4. 4. Es cuando se Interactúan directamente con el hardware, por ejemplo en drivers de dispositivo. Tiempo real: Industria y manufactura, control de robots. Entretenimiento: Graficacion, Multimedia, Videojuegos
  5. 5. Se tratan de lenguajes independientes de la arquitectura del ordenador. Por lo que, en principio, un programa escrito en un lenguaje de alto nivel, lo puedes migrar de una máquina a otra sin ningún tipo de problema.
  6. 6. Son lenguajes totalmente dependientes de la máquina, es decir que el programa que se realiza con este tipo de lenguajes no se pueden migrar o utilizar en otras máquinas. Al estar prácticamente diseñados a medida del hardware, aprovechan al máximo las características del mismo. Dentro de este grupo se encuentran: El lenguaje maquina El lenguaje ensamblador
  7. 7. Este lenguaje ordena a la máquina las operaciones fundamentales para su funcionamiento. Consiste en la combinación de 0's y 1's para formar las ordenes entendibles por el hardware de la máquina. Este lenguaje es mucho más rápido que los lenguajes de alto nivel. La desventaja es que son bastantes difíciles de manejar y usar, además de tener códigos fuente enormes donde encontrar un fallo es casi imposible.
  8. 8. Es un derivado del lenguaje máquina y está formado por abreviaturas de letras y números llamadas mnemotécnicos. Con la aparición de este lenguaje se crearon los programas traductores para poder pasar los programas escritos en lenguaje ensamblador a lenguaje máquina. Como ventaja con respecto al código máquina es que los códigos fuentes eran más cortos y los programas creados ocupaban menos memoria. Un programa con el que podemos programar en lenguaje ensamblador es:
  9. 9. El lenguaje ensamblador es de suma importancia ya que éste es directamente traducible al lenguaje máquina y viceversa, es una abstracción que facilita su uso para el ser humano. Nos permite además tener un control absoluto sobre la computadora, los programas en ensamblador son además rápidos y ultra ligeros, además ocupan casi nada de espacio en memoria ya que no requieren la carga de librerías complejas adicionales.
  10. 10. CPU (del inglés: Central Processing Unit) Unidad Central de Procesamiento también conocido como microprocesador o simplemente procesador. Que es el procesador? Es el circuito integrado central y más complejo de un sistema informático conformado por millones de componentes electrónicos. Es el encargado de ejecutar los programas, desde el sistema operativo hasta las aplicaciones de usuario; sólo ejecuta instrucciones programadas en lenguaje de bajo nivel, realizando operaciones aritméticas y lógicas simples, tales como sumar, restar, multiplicar, dividir, las lógicas binarias y accesos a memoria.
  11. 11. El microprocesador 8086 y el 8088 tienen internamente dos componentes, la Unidad de Interfaz del Bus y la Unidad de ejecución (Bus Interface Unit (BIU) y Execution Unit (EU)). La unidad de ejecución es la encargada de realizar todas las operaciones mientras que la unidad de interfaz del bus es la encargada de acceder a datos e instrucciones del mundo exterior. En la siguiente diapositiva se mostrara una imagen de como esta estructurado como dividido en bloques.
  12. 12. Registro AX: El registro AX es el registro acumulador, es utilizado para operaciones que implican entrada/salida, y multiplicación y división (estas dos últimas en conjunto con el registro DX). Registro BX: El registro BX es el registro base, y es el único registro de propósito general que puede ser un índice para direccionamiento indexado. Registro CX: El registro CX es conocido como el registro contador. Puede contener un valor para controlar el número de veces que un ciclo se repite o un valor para corrimiento de bits. Registro DX: El registro DX es el registro de datos. En algunas operaciones se indica mediante este registro el número de puerto de entrada/salida, y en las operaciones de multiplicación y división de 16 bits se utiliza junto con el acumulador AX.
  13. 13. Para operaciones con cadenas Registro SI: El registro índice fuente de 16 bits es requerido por algunas operaciones con cadenas de caracteres. El SI está asociado con el segmento DS. Registro DI: El registro índice destino también es requerido por algunas operaciones con cadenas de caracteres. El DI está asociado con el segmento ES.
  14. 14. SP: El apuntador de pila de 16 bits está asociado con el segmento SS y proporciona un valor de desplazamiento que se refiere a la palabra actual que está siendo procesada en la pila BP: El apuntador base de 16 bits facilita la referencia de parámetros dentro de la pila.
  15. 15. Unidad aritmético lógica, también conocida como ALU (siglas en inglés de arithmetic logic unit), es un circuito digital que calcula operaciones aritméticas (como suma, resta, multiplicación, etc.) y operaciones lógicas (si, y, o, no), entre dos números.
  16. 16. * OF (Over flow flag, desbordamiento): Indica desbordamiento del bit de mayor orden después de una operación aritmética de números con signo (1=existe overflow; 0=no existe overflow). * DF (Direction flag, Direccion): Controla la selección de incremento o decremento de los registros SI y DI en las operaciones con cadenas de caracteres (1=decremento automático; 0=incremento). * IF (Interruption flag, Interrupcion): Controla el disparo de las interrupciones (1=habilita las interrupciones; 0=deshabilita las interrupciones) Indica que una interrupción externa, como la entrada desde el teclado sea procesada o ignorada. * TF (Trap flag, Trampa): Permite la operación del procesador en modo de depuración (paso a paso) * SF (Sign flag, Signo): Contiene el signo resultante de una operación aritmética (0=positivo; 1=negativo). * ZF (Zero flag, Zero): Indica el resultado de una operación aritmética o de comparación (0=resultado diferente de cero; 1=resultado igual a cero). * AF (Auxiliary carry flag, Acarreo auxiliar): Contiene el acarreo del bit 3. Esta bandera se prueba con las instrucciones DAA y DAS para ajustar el valor de AL después de una suma o resta BCD. * PF (Parity flag, Paridad): Indica si el número de bits 1, del byte menos significativos de una operación, es par (0=número de bits 1 es impar; 1=número de bits 1 es par). * CF (Carry flag, Acarreo): Contiene el acarreo del bit de mayor orden después de una operación aritmética; también almacena el contenido del último bit en una operación de desplazamiento o de rotación.
  17. 17. CS: Registro de segmento de código: El DOS almacena la dirección inicial del segmento de código de un programa en el registro CS. DS: Registro de segmento de datos: La dirección inicial de un segmento de datos de programa es almacenada en el registro DS. ES: Registro de segmento extra: Algunas operaciones con cadenas de caracteres (datos de caracteres) utilizan el registro esta de segmento para manejar el direccionamiento de memoria. SS: Registro de segmento de pila: El registro SS permite la colocación en memoria de una pila, para almacenamiento temporal de direcciones y datos.
  18. 18. http://es.wikipedia.org/wiki/Microprocesador http://www.alpertron.com.ar/8088.HTM http://es.wikipedia.org/wiki/Unidad_aritm%C3% A9tico_l%C3%B3gica http://www.monografias.com/trabajos7/regi/re gi.shtml http://es.wikipedia.org/wiki/8086

×