Your SlideShare is downloading. ×
0
Mipag web
Mipag web
Mipag web
Mipag web
Mipag web
Mipag web
Mipag web
Mipag web
Mipag web
Mipag web
Mipag web
Mipag web
Mipag web
Mipag web
Mipag web
Mipag web
Mipag web
Mipag web
Mipag web
Mipag web
Mipag web
Mipag web
Mipag web
Mipag web
Mipag web
Mipag web
Mipag web
Mipag web
Mipag web
Mipag web
Mipag web
Mipag web
Mipag web
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Mipag web

981

Published on

Published in: Education, Technology, Business
1 Comment
0 Likes
Statistics
Notes
  • Be the first to like this

No Downloads
Views
Total Views
981
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
21
Comments
1
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Lenguaje ensamblador<br />Lenguaje de bajo nivel<br />Tipos de leguaje ensamblador<br />Cruzados<br />Macroensamblador<br />Ensambladores de 1 fase<br />Ensambladores de2 faces<br />
  • 2. Estructura<br />1.Librerias<br />2.Etiquetas<br />3.Inicio<br />4.Codigo<br />5.Bucle<br />6.Fin<br />
  • 3. Sistemas Numéricos<br />10 Decimal 0, 1, 2, 3, 4, 5, 6, 7, 8, 9<br />2 Binario 0, 1<br />16 Hexadecimal 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F<br />
  • 4. Notación posicional<br />En esta notación el dígito de más a la izquierda (an-1)<br />el que “pesa” más se denomina dígito más significativo<br />En esta notación el dígito<br />más a la derecha (a-m), es decir, el que “pesa” menos se le llama dígito menos significativo<br />
  • 5. Sistema Hexadecimal<br />
  • 6.
  • 7. Sistema Decimal<br />
  • 8. Sistema Binario<br />
  • 9. RAM<br />Se puede usar para leer y escribir datos en ella<br />Contador del programa<br />ROM<br />Sirve para la lectura de datos solamente<br />Puertos<br />Sirven para la entrada o salida de datos<br />Aumenta el contador del programa<br />Leva las direcciones de los registros<br />Control<br />Convierte los datos de instrucción en código para que el procesador lo reconozca<br />Oscilador o reloj del procesador<br />Hace las pulsaciones para que el procesador haga operaciones<br />Memoria principal<br />ALU<br />Arithmetic Logic Unit<br />
  • 10. ¿Que es la gestión de memoria?<br />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.<br />
  • 11. Direcciones lógicas y direcciones físicas<br /> 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<br />Dirección lógica : es la dirección que genera el proceso; también se conoce como dirección virtual<br />
  • 12. Traducción de direcciones<br />. 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<br />.Un registro limite es cargado con la dirección física final<br />.Cuando una dirección relativa es encontrada es relacionada al registro base y comparada con el registro limite<br />
  • 13. Registro base:<br />determina la dirección física donde se comienza el espacio de memoria del proceso<br />Registro limite:<br /> establece la dirección donde se determina el espacio de memoria del proceso en relación al registro base <br />
  • 14. A QUE SE LE LLAMA PROGRAMACION DE SISTEMAS <br />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.<br />
  • 15. Evolución de los Lenguajes de Programación<br />
  • 16. PRIMERA GENERACIÓN<br />Lo constituyen los lenguajes maquina.<br />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.<br /> ASCII, utiliza ceros y unos para representar letras del alfabeto.<br />
  • 17. SEGUNDA GENERACIÓN<br /> lenguaje ensamblador.<br /> Los lenguajes ensambladores usan códigos como:<br />a para agregar subwf restara una cantidad<br />mvc para mover btfss comparar<br />y así sucesivamente.<br />Los programas de software de sistemas tales como los sistemas operativos y los programas de utilidad se escriben con frecuencia en un lenguaje ensamblador.<br />
  • 18. TERCERA GENERACIÓN<br />Son relativamente independientes del hardware. el programa se puede utilizar en computadoras diferentes <br />Primeros lenguajes de alto nivel <br />Cobol(Common Business Oriented Language)1958<br />Algol (Algorithmic Language) 1960<br />Apl (A Programming Language)1961<br />Basic(Beginners All purpose Symbolic Instruction Code) 1964<br />C 1970<br />Pascal()<br />
  • 19. Diferencias entre Ensamblador, Compilador e Interpretes<br />
  • 20. Ensambladores<br />Se llaman ensambladores los programas encargados de traducir los programas escritos en ensamblador a código binario.<br />
  • 21. Compiladores<br />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.<br />
  • 22. Intérpretes<br />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. <br />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.<br />
  • 23. Compiladores frente a intérpretes<br /> Un intérprete<br /> Un compilador <br />facilita la búsqueda de errores, pues la ejecución de un programa puede interrumpirse en cualquier momento para estudiar el entorno.<br />El programa puede modificarse sobre la marcha, sin necesidad de volver a comenzar la ejecución.<br />permite utilizar funciones y operadores más potentes, como por ejemplo ejecutar código contenido en una variable en forma de cadenas de caracteres.<br />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.<br />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 &quot;lenguajes interpretados&quot; o &quot;lenguajes compilados&quot; respectivamente.<br />
  • 24. LIGADORES<br />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.<br />
  • 25. CARGADOR<br />Un cargador es un programa que coloca en la memoria para su ejecución, el programa guardado en algún dispositivo de almacenamiento secundario.<br />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.<br />
  • 26. La información que hace que el hardware de la computadora realice una determinada actividad se llama instrucción<br />Se denomina lenguaje máquina a la serie de datos que la parte física de la computadora o hardware, es capaz de interpretar.<br />Las instrucciones así formadas equivalen a acciones elementales de la máquina<br />Lenguaje de bajo nivel<br />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.<br />El lenguaje máquina de una computadora consta de cadenas de números binarios (ceros y unos)<br />La primera es el comando u operación, que dice a la computadora cuál es la función que va a realizar. <br />
  • 27. Apareció a principios de los 50<br />con el fin de facilitar la labor de los programadores<br />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<br />LENGUAJE ENSAMBLADOR<br />se desarrollaron códigos nemotécnicos<br />para las operaciones y direcciones simbólicas.<br />ESTRUCTURA <br />Bucle<br />Librerías<br />Inicio<br />Código<br />Fin<br />Etiquetas<br />
  • 28. Las instrucciones más importantes que podemos manejar son las que proporciona el fabricante de un microprocesador para su producto.<br />Directriz EQU<br />Sirve para “igualar” la posición de cualquier registro a un nombre personalizado que le hayamos dado nosotros<br />Directriz ORG<br />Esta directriz dice al ensamblador a partir de que posición de memoria se situarán las siguientes instrucciones. <br />Directriz INCLUDE<br />Esta instrucción índica qué archivos deberán tomarse en cuenta a la hora de compilar el código.<br />Directriz END<br />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.<br />DIRECTRICES DEL ENSAMBLADOR<br />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.<br /> LIST   P=16F627A<br />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. <br /> 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. <br /> 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. <br />
  • 29. 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á. <br />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. <br />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.<br />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. <br />MACROZ EN PROGRAMACION <br />Es tan común el empleo de macroinstrucciones que se les considera como una extensión de los lenguajes.<br />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.<br />El macro procesador elabora dos tablas para el manejo de las<br />
  • 30. Sintaxis de una macro<br />La declaración de la macro se lleva a cabo de la siguiente forma:<br />NombreMacro MACRO [parametro1, parametro2...]<br />Aunque se tiene la funcionalidad de los parametros es posible crear una macro que no los necesite. <br />Las partes que componen a una macro son: <br />*Declaración de la macro<br />*código de la macro<br />*Directiva de terminación de la macro<br />La directiva de terminación de la macro es: ENDM<br />Posicion MACRO Fila, ColumnaPUSH AXPUSH BXPUSH DXMOV AH, 02HMOV DH, FilaMOV DL, ColumnaMOV BH, 0INT 10HPOP DXPOP BXPOP AXENDM<br />
  • 31. Bibliotecas de macros<br />ELEMENTOS DE ENSAMBLADORES<br />son grupos de macros que pueden ser incluidas en un programa desde un archivo diferente.<br />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. <br />FUNCIONES<br />La tarea fundamental de un ensamblador es traducir un programa en lenguaje de ensamblador al código correspondiente en lenguaje de máquina.<br /><ul><li>Convertir los códigos a su código equivalente en lenguaje de máquina.
  • 32. Convertir los operándoos simbólicos (las etiquetas o variables) en las direcciones correspondientes de los operándoos.</li></ul>Ejemplo:<br />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: <br />;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<br /><ul><li>Construir las instrucciones en lenguaje de máquina en el formato apropiado.
  • 33. Convertir las constantes definidas en el programa en su verdadera representación.
  • 34. 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
  • 35. Convertir los códigos a su código equivalente en lenguaje de máquina.
  • 36. Convertir los operándoos simbólicos (las etiquetas o variables) en las direcciones correspondientes de los operándoos.</li></li></ul><li>PROCESO<br />La mayoría de los ensambladores hacen su trabajo pasando dos veces por el programa fuente.<br />Generar los valores de las constantes declaradas.<br />Procesar el resto de las directrices.<br />PRIMERA PASADA: Una primera vez se pasa para asignar a cada etiqueta su dirección correspondiente en el programa objeto.<br />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<br />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.<br />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.<br />Cambiar los mnemónicos a su código correspondiente en lenguaje de máquina.<br />3.Procesar algunas de las directrices.<br />Asignar una dirección de memoria a cada instrucción.<br />Guardar en una tabla las direcciones de todas las etiquetas del programa.<br />Poner las direcciones de los operándoos simbólicos o etiquetas en las instrucciones.<br />
  • 37. Macroensambladores<br />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.<br />Ensambladores de una fase.<br />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.<br />Ensambladores Cruzados (Cross-Assembler).<br />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.<br />TIPOS DE ENSAMBLADORES<br />Ensambladores residentes.<br />Son aquellos que permanecen en la memoria principal de la computadora y cargan, para su ejecución, al programa objeto producido.<br />Micro-ensambladores<br />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.<br />Ensambladores de dos fases.<br />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.<br />

×