modelo von neuman

35
INSTITUTO DE ESTUDIOS INSTITUTO DE ESTUDIOS SUPERIORES DE CHIAPAS SUPERIORES DE CHIAPAS Salazar Narváez Ing. en Sistemas Computacionales CHACÓN AGUIRRE PAULINA YANNETH CHACÓN AGUIRRE PAULINA YANNETH 4to 4to “A” “A” Catedrático: Catedrático: Lic. Enrique Martínez Lic. Enrique Martínez Gutiérrez Gutiérrez Asignatura: Asignatura: Lenguaje Lenguaje Ensamblador Ensamblador

Upload: pau2

Post on 08-Jun-2015

11.001 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Modelo Von Neuman

INSTITUTO DE ESTUDIOS INSTITUTO DE ESTUDIOS SUPERIORES DE CHIAPASSUPERIORES DE CHIAPAS

Salazar Narváez

Ing. en Sistemas Computacionales

CHACÓN AGUIRRE PAULINA CHACÓN AGUIRRE PAULINA YANNETHYANNETH

4to 4to “A”“A”

Catedrático:Catedrático:

Lic. Enrique Martínez Lic. Enrique Martínez GutiérrezGutiérrez

Asignatura:Asignatura:

Lenguaje Lenguaje EnsambladorEnsamblador

Page 2: Modelo Von Neuman

En la siguiente presentación hablaremos un poco del Modelo de John

von Neumann el cual se usa hoy día para describir los lenguajes de

programación convencionales y es la base de prácticamente todos los

modelos de ordenadores.

Así también se hablara de los lenguajes de programación, su

clasificación y dentro de los cuales encontraremos al lenguaje

ensamblador que es un lenguaje simbólico de bajo nivel con un

conjunto de instrucciones que esencialmente es ideal para el lenguaje

máquina.

Veremos cuales son sus ventajas y desventajas del lenguaje

ensamblador, también las aplicaciones y los tipos que existen.

Introducción

Page 3: Modelo Von Neuman

Modelo de John von Neumann

Page 4: Modelo Von Neuman

Un poco de Historia.

John von Neumann acudió al Istitute of Advenced Studies de Princeton para construir su propia versión de EDVAC, la máquina IAS.

Una cosa que pronto fue obvia para él era que programar computadoras con un gran número de interruptores era lento, tedioso e inflexible. Von Neumann se dio cuenta de que el programa podía reprensarse en forma digital en la memoria de la computadora, junto con los datos. Él percibió también que la torpe aritmética decimal en serie utilizada por ENIAC, en la que cada dígito estaba representada por 10 bulbos (uno encendido y nueve apagado) podía ser sustituida por una aritmética binaria.

El diseño básico, que el describió por primera vez, ahora se le conoce como máquina de von Neumann

Page 5: Modelo Von Neuman

Bosquejo de la Bosquejo de la arquitecturaarquitectura

Memoria

Unidad decontrol

Unidad aritméticaLógica. Salida

Entrada

Acumulador

La original máquina de von La original máquina de von NeumannNeumann

Page 6: Modelo Von Neuman

La máquina de von Neumann tenía cinco partes básicas:

La memoria: constaba de 4096 palabras, cada una de las cuales contenía 40 bits que podían ser 1 o 0. cada palabra contenía dos instrucciones de 20 bits o bien un entero con signo de 40 bits. Ocho bits de cada instrucción estaban dedicados a indicar el tipo de instrucción y 12 bits se dedicaban a especificar una de las 4096 palabras de memoria.

La unidad aritmética: dentro de aquí había un registro interno de 40 bits llamado acumulador. Una instrucción típica sumaba una palabra de la memoria al acumulador o almacenaba el contenido del acumulador a la memoria.

La unidad de control.

Y el equipo de entrada y salida.

Page 7: Modelo Von Neuman

Modelo de John von Neumann.

Durante su ejecución, los programas únicamente pretenden “modificar

la memoria”. Debemos conocer las localizaciones de los datos antes

de ejecutar los programas para recoger después los resultados. Esto

es internamente patente en el funcionamiento y la semántica de los

lenguajes de programación convencionales. En estos lenguajes de

programación la instrucción más importante es la de asignación.

Todos los lenguajes de programación convencionales disponen de

modos de asignación más o menos significativos.

Las computadoras con este diseño también permiten a los programas

modificarse a sí mismos mientras se ejecutan, efectivamente

permitiendo a la computadora programarse a si misma.

Page 8: Modelo Von Neuman

Un ordenador con arquitectura Von Neumann realiza los siguientes pasos secuencialmente:

1. Obtiene la siguiente instrucción desde la memoria en la dirección indicada por el contador de programa y la guarda en el registro de instrucción.

2. Aumenta el contador de programa en la longitud de la instrucción para apuntar a la siguiente.

3. Decodifica la instrucción mediante la unidad de control. Esta se encarga de coordinar el resto de componentes del ordenador para realizar una función determinada.

4. Se ejecuta la instrucción. Ésta puede cambiar el valor del contador del programa, permitiendo así operaciones repetitivas. El contador puede cambiar también cuando se cumpla una cierta condición aritmética, haciendo que el ordenador pueda 'tomar decisiones', que pueden alcanzar cualquier grado de complejidad, mediante la aritmética y lógica anteriores.

5. Vuelve al paso 1.

Page 9: Modelo Von Neuman

Lenguajes de programaciónA CADA instrucción le A CADA instrucción le

corresponde UNA acción corresponde UNA acción del procesador.del procesador.

Page 10: Modelo Von Neuman

Lenguaje de programación:

Es un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones, y utilizado para controlar el comportamiento físico y lógico de una máquina.

Código que permite la comunicación con el hardware para la ejecución

de órdenes.

Los lenguajes de programación se clasifican en:

Según su nivel de abstracción

Según la forma de ejecución Según el paradigma de

programación

Page 11: Modelo Von Neuman

Según su nivel de abstracción

Page 12: Modelo Von Neuman

Lenguaje de Maquina

El lenguaje máquina es el único que entiende directamente la computadora, utiliza el alfabeto binario que consta de los dos únicos símbolos 0 y 1, denominados bits.

Fue el primer lenguaje utilizado en la programación de computadoras, pero dejó de utilizarse por su dificultad y complicación, siendo sustituido por otros lenguajes más fáciles de aprender y utilizar, que además reducen la posibilidad de cometer errores.

Page 13: Modelo Von Neuman

Lenguaje de bajo nivel

Un lenguaje de programación de bajo nivel es el que proporciona poca

o ninguna abstracción del microprocesador de un ordenador.

Consecuentemente es fácilmente trasladado a lenguaje de máquina.

La palabra "bajo" no implica que el lenguaje sea inferior a un lenguaje

de alto nivel; se refiere a la reducida abstracción entre el lenguaje y el

hardware.

El lenguaje de bajo nivel por excelencia es el ensamblador. Las

instrucciones en lenguaje ensamblador son instrucciones conocidas

como nemotécnicos. Por ejemplo, nemotécnicos típicos de

operaciones aritméticas son: en inglés, ADD, SUB, DIV, etc.; en

español, SUM, RES ,DIV, etc.

Page 14: Modelo Von Neuman

Un programa escrito en lenguaje ensamblador no puede ser

ejecutado directamente por la computadora en esto se diferencia

esencialmente del lenguaje máquina, sino que requiere una fase

de traducción al lenguaje máquina.

El programa original escrito en lenguaje ensamblador se denomina

programa fuente y el programa traducido en lenguaje máquina se

conoce como programa objeto, ya directamente entendible por la

computadora.

El traductor de programas fuente a objeto es un programa llamado

ensamblador, existente en casi todos los computadores.

Page 15: Modelo Von Neuman

Lenguajes de medio nivel

Hay lenguajes de programación que son considerados por algunos

expertos como lenguajes de medio nivel (como es el caso del lenguaje

C) al tener ciertas características que los acercan a los lenguajes de

bajo nivel pero teniendo, al mismo tiempo, ciertas cualidades que lo

hacen un lenguaje más cercano al humano y, por tanto, de alto nivel.

Page 16: Modelo Von Neuman

Lenguaje de alto nivel.

Se caracterizan por expresar los algoritmos de una manera adecuada

a la capacidad cognitiva humana, en lugar de a la capacidad

ejecutora de las máquinas. la limitación era que se orientaban a un

área específica y sus instrucciones requerían de una sintaxis

predefinida.

Se clasifican como lenguajes procedimentales. Otra limitación de los

lenguajes de alto nivel es que se requiere de ciertos conocimientos

de programación para realizar las secuencias de instrucciones lógicas.

Los lenguajes de muy alto nivel se crearon para que el usuario común

pudiese solucionar tal problema de procesamiento de datos de una

manera más fácil y rápida.

Page 17: Modelo Von Neuman

Según la forma de ejecución

Page 18: Modelo Von Neuman

Lenguaje compilado

Es término un tanto impreciso para referirse a un lenguaje de

programación que típicamente se implementa mediante un compilador.

Esto implica que una vez escrito el programa, éste se traduce a partir

de su código fuente por medio de un compilador en un archivo

ejecutable para una determinada plataforma por ejemplo Solaris para

Sparc, Windows NT para Intel, etc..

Los lenguajes compilados son lenguajes de alto nivel en los que las

instrucciones se traducen del lenguaje utilizado a código máquina para

una ejecución rápida.

Page 19: Modelo Von Neuman

Lenguaje interpretadoFue diseñado para ser ejecutado por medio de un intérprete, en contraste con los lenguajes compilados. También se les conoce como lenguajes de script. Muchos autores rechazan la clasificación de lenguajes de programación entre interpretados y compilados, considerando que el modo de ejecución (por medio de intérprete o de compilador) del programa escrito en el lenguaje es independiente del propio lenguaje. Los lenguajes que suelen ser interpretados algunos de ellos son:

ActionScript Basic4GL (Basic para OpenGL. Permite generar ejecutables Windows completos) BeanShell (Java en lenguaje de Scripts) GML JavaScript (todas las plataformas) Logo (Linux, Windows y Mac) Lush (Lisp para gráficos Linux) PHP Python (todas las plataformas) Ruby VBScript (Microsoft Windows)

Page 20: Modelo Von Neuman

Según el paradigma de programación

Page 21: Modelo Von Neuman

Un paradigma de programación representa un enfoque particular o filosofía para la construcción del software. No es mejor uno que otro, sino que cada uno tiene ventajas y desventajas. Dependiendo de la situación un paradigma resulta más apropiado que otro.

Atendiendo al paradigma de programación, se pueden clasificar los lenguajes en:

El paradigma imperativo o por procedimientosEl paradigma imperativo o por procedimientos son un conjunto de instrucciones que le indican a la computadora cómo realizar una tarea y es considerado el más común y está representado, por ejemplo, por el C o por BASIC.

El paradigma funcionalEl paradigma funcional es un paradigma de programación declarativa basado en la utilización de funciones matemáticas y está representado por la familia de lenguajes LISP (en particular Scheme), ML o Haskell.

El paradigma lógicoEl paradigma lógico consiste en la aplicación del corpus de conocimiento sobre lógica para el diseño de lenguajes de programación, un ejemplo es PROLOG.

El paradigma orientado a objetos El paradigma orientado a objetos usa objetos y sus interacciones para diseñar aplicaciones y programas de computadora. Un lenguaje completamente orientado a objetos es Smalltalk.

Page 22: Modelo Von Neuman

Lenguaje Ensamblador

Page 23: Modelo Von Neuman

Definición:

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 ampliamente en el pasado para el desarrollo de software, pero actualmente sólo se utiliza en contadas ocasiones, especialmente cuando se requiere la manipulación directa del hardware o se pretenden rendimientos inusuales de los equipos.

Page 24: Modelo Von Neuman

Ventajas y Desventajas del Lenguaje Ensamblador

Page 25: Modelo Von Neuman

Ventajas

1.     Velocidad  Velocidad .- Como trabaja directamente con el microprocesador al ejecutar un programa, pues como este lenguaje es el mas cercano a la máquina la computadora lo procesa mas rápido.

2.     Eficiencia de tamañoEficiencia de tamaño .- Un programa en ensamblador no ocupa mucho espacio en memoria porque no tiene que cargan librerías y demás como son los lenguajes de alto nivel

3.     FlexibilidadFlexibilidad .- Es flexible porque todo lo que puede hacerse con una máquina, puede hacerse en el lenguaje ensamblador de esta máquina; los lenguajes de alto nivel tienen en una u otra forma limitantes para explotar al máximo los recursos de la máquina. O sea que en lenguaje ensamblador se pueden hacer tareas especificas que en un lenguaje de alto nivel no se pueden llevar acabo porque tienen ciertas limitantes que no se lo permite

Page 26: Modelo Von Neuman

Desventajas

1. Tiempo de programaciónTiempo de programación .- Como es un lenguaje de bajo nivel requiere más instrucciones para realizar el mismo proceso, en comparación con un lenguaje de alto nivel. Por otro lado, requiere de más cuidado por parte del programador, pues es propenso a que los errores de lógica se reflejen más fuertemente en la ejecución.

2. Programas fuente grandesProgramas fuente grandes .- Por las mismas razones que aumenta el tiempo, crecen los programas fuentes; simplemente requerimos más instrucciones primitivas para describir procesos equivalentes. Esto es una desventaja porque dificulta el mantenimiento de los programas, y nuevamente reduce la productividad de los programadores.

Page 27: Modelo Von Neuman

3. Peligro de afectar recursos inesperadamentePeligro de afectar recursos inesperadamente .- Que todo error que podamos cometer, o todo riesgo que podamos tener, podemos afectar los recursos de la maquina, programar en este lenguaje lo más común que pueda pasar es que la máquina se bloquee o se reinicialize. Porque con este lenguaje es perfectamente posible (y sencillo) realizar secuencias de instrucciones inválidas, que normalmente no aparecen al usar un lenguaje de alto nivel.

4. Falta de portabilidad Falta de portabilidad .- Porque para cada máquina existe un lenguaje ensamblador; por ello, evidentemente no es una selección apropiada de lenguaje cuando deseamos codificar en una máquina y luego llevar los programas a otros sistemas operativos o modelos de computadoras.

Page 28: Modelo Von Neuman

Aplicaciones del Lenguaje Ensamblador

Page 29: Modelo Von Neuman

El uso del lenguaje ensamblador no es para la gente común y corriente, sino para profesionistas en el área de computación que están obligados a conocer este lenguaje, ya que proporciona una serie de características que no se pueden encontrar en los lenguajes de alto nivel.

Algunas de estas características son:

• Se puede acceder a cualquier localidad de la memoria RAM sin ninguna restricción.

• Se pueden programar virus, debido a que se tiene un acceso total a casi todo el hardware de la computadora vía interrupciones de software.

• Se pueden programar drivers de cualquier dispositivo.

• Se puede acceder directamente a los registros internos del CPU. Se puede acceder directamente a los dispositivos de entrada y/o salida.

Los programas objeto generados a través del ensamblador son mas veloces que los generados en cualquier otro lenguaje, debido a que una instrucción en ensamblador corresponde a una instrucción en lenguaje máquina.

Page 30: Modelo Von Neuman

Tipos de Lenguaje Ensamblador

Page 31: Modelo Von Neuman

Algunos tipos son:

Ensambladores básicosEnsambladores básicos. Son de muy bajo nivel, y su tarea consiste básicamente en ofrecer nombres simbólicos a las distintas instrucciones, parámetros y cosas tales como los modos de direccionamiento. Además, reconoce una serie de directivas que indican ciertos parámetros de funcionamiento del ensamblador.

Ensambladores modularesEnsambladores modulares,, o macro ensambladoresmacro ensambladores. Hacen todo lo que puede hacer un ensamblador, y además proporcionan una serie de directivas para definir e invocar macroinstrucciones (o simplemente, macros).

Ensambladores modulares 32-bitsEnsambladores modulares 32-bits o de alto nivelde alto nivel.. Son ensambladores que aparecieron como respuesta a una nueva arquitectura de procesadores de 32 bits, muchos de ellos teniendo compatibilidad hacia atrás pudiendo trabajar con programas con estructuras de 16 bits. Además de realizar la misma tarea que los anteriores, permitiendo también el uso de macros, permiten utilizar estructuras de programación más complejas propias de los lenguajes de alto nivel.

Page 32: Modelo Von Neuman

Ensambladores Cruzados,Ensambladores Cruzados, son los que se utilizan en una computadora que posee un procesador diferente al que tendrán las computadoras donde va a ejecutarse el programa objeto producido.

Ensambladores Residentes.Ensambladores Residentes. Son aquellos que permanecen en la memoria principal de la computadora y cargan, para su ejecución, al programa objeto producido. Este tipo de ensamblador tiene la ventaja de que se puede comprobar inmediatamente el programa sin necesidad de transportarlo de un lugar a otro, como se hacía en cross-assembler, y sin necesidad de programas simuladores.

Ensambladores de dos fases.Ensambladores de dos fases. Los ensambladores de dos fases se denominan así debido a que realizan la traducción en dos etapas. En la primera fase, leen el programa fuente y construyen una tabla de símbolos; de esta manera, en la segunda fase, vuelven a leer el programa fuente y pueden ir traduciendo totalmente, puesto que conocen la totalidad de los símbolos utilizados y las posiciones que se les ha asignado. Estos ensambladores son los más utilizados en la actualidad.

Page 33: Modelo Von Neuman

Conclusión

El modelo de von Neumann como se dijo consta de que partes que son: memoria, unidad de control, unidad aritmética lógica, un acumulador y los equipos de entra y salida. Aunque existen muchos tipos de computadoras digitales según se tenga en cuenta su tamaño, velocidad de proceso, complejidad de diseño físico, etc., los principios fundamentales básicos de funcionamiento son esencialmente los mismos en todos ellos.

Los lenguajes de programación son importantes ya que sin ellos no existiría la interacción de la maquina con el usuario.

Y el lenguaje ensamblador es el lenguaje creado a base de instrucciones para intentar sustituir el lenguaje máquina por uno más similar al utilizado por el hombre.

Se espera que todo lo investigado sea de gran utilidad para investigaciones futuras ya que son temas de gran utilidad.

Page 34: Modelo Von Neuman

Bibliografía

Page 35: Modelo Von Neuman

http://www.todo-programacion.com.ar/archives/2005/04/lenguaje_de_maq.html

Titulo del libro: Fundamentos de Programación.

Autor:Joyanes, Fernández Azuela Matilde ,

Rodríguez Baena Luis Editorial.

Mc Graw Hill.Edición.

Primera Edición.

http://es.wikipedia.org/wiki/Assembly http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n http://www.mitecnologico.com/Main/UsoAplicacionesLenguajeEnsamblador http://www.mitecnologico.com/Main/TiposLenguajesEnsambladores http://es.wikipedia.org/wiki/Assembler#Tipos_de_ensambladores

Titulo del libro: Organización de computadoras,

un enfoque estructurado.Autor:

Andrew S. TanenbaumEditorial.

Mc Graw Hill.Edición.

Cuarta Edición.

LibroLibros.s.

Paginas Paginas WebWeb