• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Mipag web
 

Mipag web

on

  • 1,242 views

 

Statistics

Views

Total Views
1,242
Views on SlideShare
1,242
Embed Views
0

Actions

Likes
0
Downloads
20
Comments
1

0 Embeds 0

No embeds

Accessibility

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

11 of 1 previous next

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Mipag web Mipag web Presentation Transcript

    • Lenguaje ensamblador
      Lenguaje de bajo nivel
      Tipos de leguaje ensamblador
      Cruzados
      Macroensamblador
      Ensambladores de 1 fase
      Ensambladores de2 faces
    • Estructura
      1.Librerias
      2.Etiquetas
      3.Inicio
      4.Codigo
      5.Bucle
      6.Fin
    • Sistemas Numéricos
      10 Decimal 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
      2 Binario 0, 1
      16 Hexadecimal 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
    • Notación posicional
      En esta notación el dígito de más a la izquierda (an-1)
      el que “pesa” más se denomina dígito más significativo
      En esta notación el dígito
      más a la derecha (a-m), es decir, el que “pesa” menos se le llama dígito menos significativo
    • Sistema Hexadecimal
    • Sistema Decimal
    • Sistema Binario
    • RAM
      Se puede usar para leer y escribir datos en ella
      Contador del programa
      ROM
      Sirve para la lectura de datos solamente
      Puertos
      Sirven para la entrada o salida de datos
      Aumenta el contador del programa
      Leva las direcciones de los registros
      Control
      Convierte los datos de instrucción en código para que el procesador lo reconozca
      Oscilador o reloj del procesador
      Hace las pulsaciones para que el procesador haga operaciones
      Memoria principal
      ALU
      Arithmetic Logic Unit
    • ¿Que es la gestión de memoria?
      La parte del sistema operativo que administra la memoria se llama administrador de memoria y su labor consiste llevar un registro de las partes de memoria que se estén utilizando y aquellas que no, con el fin de asignar espacio en memoria a los procesos cuando estos lo necesiten y liberándola cuando terminen.
    • Direcciones lógicas y direcciones físicas
      El concepto de espacio de direcciones lógicas vinculado a un espacio de direcciones físicas separado es crucial para una buena gestión de memoria
      Dirección lógica : es la dirección que genera el proceso; también se conoce como dirección virtual
    • Traducción de direcciones
      . Cuando un proceso es asignada al estado de ejecución, un registro base es cargado con la dirección física de inicio del proceso
      .Un registro limite es cargado con la dirección física final
      .Cuando una dirección relativa es encontrada es relacionada al registro base y comparada con el registro limite
    • Registro base:
      determina la dirección física donde se comienza el espacio de memoria del proceso
      Registro limite:
      establece la dirección donde se determina el espacio de memoria del proceso en relación al registro base
    • A QUE SE LE LLAMA PROGRAMACION DE SISTEMAS
      Se entiende por programación de sistemas el conjunto de programas necesario para que una computadora de una imagen coherente y monolítica ante sus usuarios. Es un área especializada dentro de las ciencias de la computación. Así, mediante la programación de sistemas, no solo se manejan las computadoras por medio del lenguaje maquina (0 y 1) sino por otros sistemas operativos, sin lo cual sería muy difícil la interacción con la maquina.
    • Evolución de los Lenguajes de Programación
    • PRIMERA GENERACIÓN
      Lo constituyen los lenguajes maquina.
      Estos se consideran como de bajo nivel por que no existe un programa de codificación menos complicado que el que utiliza los símbolos binarios 1 y 0.
      ASCII, utiliza ceros y unos para representar letras del alfabeto.
    • SEGUNDA GENERACIÓN
      lenguaje ensamblador.
      Los lenguajes ensambladores usan códigos como:
      a para agregar subwf restara una cantidad
      mvc para mover btfss comparar
      y así sucesivamente.
      Los programas de software de sistemas tales como los sistemas operativos y los programas de utilidad se escriben con frecuencia en un lenguaje ensamblador.
    • TERCERA GENERACIÓN
      Son relativamente independientes del hardware. el programa se puede utilizar en computadoras diferentes
      Primeros lenguajes de alto nivel
      Cobol(Common Business Oriented Language)1958
      Algol (Algorithmic Language) 1960
      Apl (A Programming Language)1961
      Basic(Beginners All purpose Symbolic Instruction Code) 1964
      C 1970
      Pascal()
    • Diferencias entre Ensamblador, Compilador e Interpretes
    • Ensambladores
      Se llaman ensambladores los programas encargados de traducir los programas escritos en ensamblador a código binario.
    • Compiladores
      El compilador es un programa que traduce el código de alto nivel a código binario. Es, por tanto, parecido al ensamblador, pero mucho más complejo, ya que las diferencias entre los lenguajes de alto nivel y el código binario son muy grandes.
    • Intérpretes
      El intérprete es un programa que traduce el código de alto nivel a código binario pero, a diferencia del compilador, lo hace en tiempo de ejecución.
      Es decir, no se hace un proceso previo de traducción de todo el programa fuente a binario, sino que se va traduciendo y ejecutando instrucción por instrucción.
    • Compiladores frente a intérpretes
      Un intérprete
      Un compilador
      facilita la búsqueda de errores, pues la ejecución de un programa puede interrumpirse en cualquier momento para estudiar el entorno.
      El programa puede modificarse sobre la marcha, sin necesidad de volver a comenzar la ejecución.
      permite utilizar funciones y operadores más potentes, como por ejemplo ejecutar código contenido en una variable en forma de cadenas de caracteres.
      suele generar programas más rápidos y eficientes, ya que el análisis del lenguaje fuente se hace una sola vez, durante la generación del programa equivalente.
      Cualquier lenguaje puede ser ejecutado tanto vía intérprete o vía compilador, pero algunos lenguajes suelen asociarse más a una vía que a la otra, y por esto son llamados "lenguajes interpretados" o "lenguajes compilados" respectivamente.
    • LIGADORES
      Un ligador es un programa de sistema que combina dos o mas programas objeto separados y permite que se hagan referencias unos a otros, o sea, que cada uno de estos programas pueden hacer referencia a código ó variables de los otros programas con los que está enlazado.
    • CARGADOR
      Un cargador es un programa que coloca en la memoria para su ejecución, el programa guardado en algún dispositivo de almacenamiento secundario.
      El cargador consiste en un juego de instrucciones que permiten al dispositivo de entrada ( teclado ó unidad de cinta ) asignar la dirección de inicio de la memoria y asegurar que el computador leerá el programa y lo cargara byte a byte.
    • La información que hace que el hardware de la computadora realice una determinada actividad se llama instrucción
      Se denomina lenguaje máquina a la serie de datos que la parte física de la computadora o hardware, es capaz de interpretar.
      Las instrucciones así formadas equivalen a acciones elementales de la máquina
      Lenguaje de bajo nivel
      La segunda parte de la instrucción es el operando, que indica la computadora dónde hallar o almacenar los datos y otras instrucciones que se van a manipular.
      El lenguaje máquina de una computadora consta de cadenas de números binarios (ceros y unos)
      La primera es el comando u operación, que dice a la computadora cuál es la función que va a realizar.
    • Apareció a principios de los 50
      con el fin de facilitar la labor de los programadores
      Uno de los primeros pasos para mejorar el proceso de preparación de programas fue sustituir los códigos de operaciones numéricos del lenguaje de máquina por símbolos alfabéticos
      LENGUAJE ENSAMBLADOR
      se desarrollaron códigos nemotécnicos
      para las operaciones y direcciones simbólicas.
      ESTRUCTURA
      Bucle
      Librerías
      Inicio
      Código
      Fin
      Etiquetas
    • Las instrucciones más importantes que podemos manejar son las que proporciona el fabricante de un microprocesador para su producto.
      Directriz EQU
      Sirve para “igualar” la posición de cualquier registro a un nombre personalizado que le hayamos dado nosotros
      Directriz ORG
      Esta directriz dice al ensamblador a partir de que posición de memoria se situarán las siguientes instrucciones.
      Directriz INCLUDE
      Esta instrucción índica qué archivos deberán tomarse en cuenta a la hora de compilar el código.
      Directriz END
      Esta debe ir incluida una sola vez en todo el programa. En concreto, esta debe situarse al final, para indicar al ensamblador que el programa ha finalizado.
      DIRECTRICES DEL ENSAMBLADOR
      Directriz LISTEste comando sirve para que el compilador tenga en cuenta sobre qué procesador se está trabajando. Este comando debe estar en todo proyecto, situado debajo del “include”, con la siguiente sintaxis.
       LIST   P=16F627A
      Directriz #DEFINEDefine se usa para crear pequeñas macros. Con estas macros podremos poner nombres a pequeños fragmentos de código que nos facilitarán la realización y comprensión del algoritmo.
      Directriz TITLEEsta directriz no sirve de mucho, pero será útil para aquellos que quieran que el compilador tenga en cuenta el título que le ha puesto a su código.
      Directriz TITLEEsta directriz no sirve de mucho, pero será útil para aquellos que quieran que el compilador tenga en cuenta el título que le ha puesto a su código.
    • Para utilizar una macro, primero hay que declararla. En la declaración se establece el nombre que se le dará a la macro y el conjunto de instrucciones que representará.
      El programador escribirá el nombre de la macro en cada uno de los lugares donde se requiera la aplicación de las instrucciones por ella representadas. La declaración se realiza una sola vez, pero la utilización o invocación a la macro (macro llamada) puede hacerse cuantas veces sea necesario.
      Con el fin de evitar al programador la tediosa repetición de partes idénticas de un programa, los ensambladores y compiladores cuentan con macro procesadores que permiten definir una abreviatura para representar una parte de un programa y utilizar esa abreviatura cuantas veces sea necesario.
      La utilización de macros posibilita la reducción del tamaño del código fuente, aunque el código objeto tiende a ser mayor que cuando se utilizan funciones.
      MACROZ EN PROGRAMACION
      Es tan común el empleo de macroinstrucciones que se les considera como una extensión de los lenguajes.
      El macro procesador se encarga, en una primera pasada, de registrar todas las declaraciones de macros y de rastrear el programa fuente para detectar todas las macro llamadas.
      El macro procesador elabora dos tablas para el manejo de las
    • Sintaxis de una macro
      La declaración de la macro se lleva a cabo de la siguiente forma:
      NombreMacro MACRO [parametro1, parametro2...]
      Aunque se tiene la funcionalidad de los parametros es posible crear una macro que no los necesite.
      Las partes que componen a una macro son:
      *Declaración de la macro
      *código de la macro
      *Directiva de terminación de la macro
      La directiva de terminación de la macro es: ENDM
      Posicion MACRO Fila, ColumnaPUSH AXPUSH BXPUSH DXMOV AH, 02HMOV DH, FilaMOV DL, ColumnaMOV BH, 0INT 10HPOP DXPOP BXPOP AXENDM
    • Bibliotecas de macros
      ELEMENTOS DE ENSAMBLADORES
      son grupos de macros que pueden ser incluidas en un programa desde un archivo diferente.
      La creación de estas bibliotecas es muy sencilla, unicamente tenemos que escribir un archivo con todas las macros que se necesitarán y guardarlo como archivo de texto.
      FUNCIONES
      La tarea fundamental de un ensamblador es traducir un programa en lenguaje de ensamblador al código correspondiente en lenguaje de máquina.
      • Convertir los códigos a su código equivalente en lenguaje de máquina.
      • Convertir los operándoos simbólicos (las etiquetas o variables) en las direcciones correspondientes de los operándoos.
      Ejemplo:
      Suponiendo que se guardó el archivo de las macros con el nombre de MACROS.TXT la instrucción Include se utilizaría de la siguiente forma:
      ;Inicio del programaInclude MACROS.TXT.MODEL SMALL.DATA;Aqui van los datos.CODEInicio:;Aqui se inserta el código del programa.STACK;Se define la pilaEnd Inicio;Termina nuestro programa
      • Construir las instrucciones en lenguaje de máquina en el formato apropiado.
      • Convertir las constantes definidas en el programa en su verdadera representación.
      • Procesar las directrices al ensamblador (las directrices son instrucciones o comandos dirigidos al ensamblador, que éste procesa y ejecuta al hallarlos en el programa en lenguaje de ensamblador; estas directrices no se traducen a lenguaje de máquina, si no que el ensamblador ejecuta alguna acción, como reservar memoria para variables, entre otras
      • Convertir los códigos a su código equivalente en lenguaje de máquina.
      • Convertir los operándoos simbólicos (las etiquetas o variables) en las direcciones correspondientes de los operándoos.
    • PROCESO
      La mayoría de los ensambladores hacen su trabajo pasando dos veces por el programa fuente.
      Generar los valores de las constantes declaradas.
      Procesar el resto de las directrices.
      PRIMERA PASADA: Una primera vez se pasa para asignar a cada etiqueta su dirección correspondiente en el programa objeto.
      PRIMERA PASADA: La función principal es construir, lo que sé llama tabla de símbolos, donde se guardan los valores de todos los símbolos. Un símbolo es una etiqueta o un valor al que se le asigna un nombre simbólico por medio de una seudoinstrucción: espacio equ 100
      La función es generar el programa objeto y posiblemente, imprimir el listado de ensamblaje. Además, debe producir cierta información necesaria para que el programa ligado enlace procedimientos ensamblados en momentos diferentes.
      SEGUNDA PASADA: Pasa una Segunda ocasión por el programa fuente para llevar a cabo el ensamblaje de las instrucciones una vez ya tiene asignadas las direcciones de todas las etiquetas.
      Cambiar los mnemónicos a su código correspondiente en lenguaje de máquina.
      3.Procesar algunas de las directrices.
      Asignar una dirección de memoria a cada instrucción.
      Guardar en una tabla las direcciones de todas las etiquetas del programa.
      Poner las direcciones de los operándoos simbólicos o etiquetas en las instrucciones.
    • Macroensambladores
      Son ensambladores que permiten el uso de macroinstrucciones (macros). Debido a su potencia, normalmente son programas robustos que no permanecen en memoria una vez generado el programa objeto.
      Ensambladores de una fase.
      Estos ensambladores leen una línea del programa fuente y la traducen directamente para producir una instrucción en lenguaje máquina o la ejecuta si se trata de una pseudoinstrucción. También va construyendo la tabla de símbolos a medida que van apareciendo las definiciones de variables, etiquetas, etc.
      Ensambladores Cruzados (Cross-Assembler).
      Se denominan así los ensambladores 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.
      TIPOS DE ENSAMBLADORES
      Ensambladores residentes.
      Son aquellos que permanecen en la memoria principal de la computadora y cargan, para su ejecución, al programa objeto producido.
      Micro-ensambladores
      El programa que ayuda a realizar este microprograma se llama micro-ensamblador. Existen procesadores que permiten la modificación de sus microprogramas, para lo cual se utilizan micro-ensambladores.
      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.