Your SlideShare is downloading. ×
0
Lenguaje Ensamblador
Lenguaje Ensamblador
Lenguaje Ensamblador
Lenguaje Ensamblador
Lenguaje Ensamblador
Lenguaje Ensamblador
Lenguaje Ensamblador
Lenguaje Ensamblador
Lenguaje Ensamblador
Lenguaje Ensamblador
Lenguaje Ensamblador
Lenguaje Ensamblador
Lenguaje Ensamblador
Lenguaje Ensamblador
Lenguaje Ensamblador
Lenguaje Ensamblador
Lenguaje Ensamblador
Lenguaje Ensamblador
Lenguaje Ensamblador
Lenguaje Ensamblador
Lenguaje Ensamblador
Lenguaje Ensamblador
Lenguaje Ensamblador
Lenguaje Ensamblador
Lenguaje Ensamblador
Lenguaje Ensamblador
Lenguaje Ensamblador
Lenguaje Ensamblador
Lenguaje Ensamblador
Lenguaje Ensamblador
Lenguaje Ensamblador
Lenguaje Ensamblador
Lenguaje Ensamblador
Lenguaje Ensamblador
Lenguaje Ensamblador
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

Lenguaje Ensamblador

39,346

Published on

Breve descripción de las características del lenguaje ensamblador

Breve descripción de las características del lenguaje ensamblador

Published in: Technology
0 Comments
9 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
39,346
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
1,322
Comments
0
Likes
9
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. INGENIERIA EN SISTEMAS COMPUTAIONALES<br />ARQUITECTURA DE COMPUTADORAS<br />UNIDAD I<br />‘’LENGUAJE ENSAMBLADOR’’<br />TITULAR: <br /><ul><li>M.C EDGAR OMAR BAÑUELOS</li></ul> INTEGRANTES:<br /><ul><li>IVAN ARTURO GARDEA PORRAS.
  • 2. MARTIN ANDRES VALLES GUTIERREZ.
  • 3. JUAN SOTERO DE JESUS.
  • 4. EDWIN RAFAEL VALDEZ SEAÑEZ.
  • 5. SERGIO JESUS CHAVEZ VILLALOBOS.</li></ul>1<br />
  • 6. Agenda<br />La siguiente presentación describirá las principales características, estructura , sintaxis básicas del lenguaje ensamblador para proporcionar una noción teórica de las capacidades del lenguaje.<br />2<br />
  • 7. Introduccion<br />El ordenador solo entiende el lenguaje de código binario o código maquina ,solo utiliza 0 y 1 para de codificar cualquier acción .<br />3<br />
  • 8. Lenguaje de bajonivel<br />Son lenguajes totalmente dependientes de la maquina .<br />Dentro de este grupo se encuentra el lenguaje ensamblador.<br />4<br />
  • 9. Lenguaje Ensamblador<br />Derivado del lenguaje maquina , formado por abreviaturas de letras y números llamadas mnemotécnicos .<br />5<br />
  • 10. ¿Qué es un lenguaje ensamblador?<br /><ul><li>Es un lenguaje en el que cada enunciado produce exactamente una instrucción maquina.
  • 11. Los lenguajes ensambladores tienen acceso a todas las características e instrucciones disponibles en la maquina.
  • 12. En resumen todo lo que puede hacerse en lenguaje maquina puede hacerse en lenguaje ensamblador.</li></ul>6<br />
  • 13. Importancia<br />El lenguaje ensamblador es importante por que el es considerado de primera generación a partir de el se derivaron todos los demás lenguajes hasta llegar a los de alto nivel.<br />7<br />
  • 14. Características<br /><ul><li>Ensamblador es directamente traducible al Lenguaje de Máquina, y viceversa.
  • 15. La computadora no entiende directamente al Lenguaje Ensamblador; es necesario traducirle a Lenguaje de Máquina.
  • 16. Se utilizan traductores que convierten el código fuente (en Lenguaje Ensamblador) a código objeto.
  • 17. El usar los traductores de codigo son con el fin de facilitar la programacion y tener el control del harware.</li></ul>8<br />
  • 18. Ventajas y desventajas del Lenguaje Ensamblador vs lenguaje de alto nivel<br />Lenguaje de alto nivel.<br />Tiempo de programación<br />2. Programas fuente grandes<br />3. Peligro de afectar recursos inesperadamente.<br />4. Falta de portabilidad<br /> <br />Lenguaje Ensamblador.<br />Velocidad<br />2. Eficiencia de tamaño.<br />3. Flexibilidad<br />9<br />
  • 19. Velocidad<br /><ul><li>Implica un proceso de cómputo adicional al que el programador quiere realizar.
  • 20. Un intérprete es siempre más lento que realizar la misma acción en Lenguaje Ensamblador.
  • 21. Los compiladores son mucho más rápidos que los intérpretes, pues hacen la traducción una vez y dejan el código objeto.
  • 22. Mayor parte de las veces, el código generado por un compilador es menos eficiente que el código equivalente que un programador escribiría.</li></ul>10<br />
  • 23. Tamaño<br />Existen programas donde el uso de las memoria es critico para esos casos es eficiente el lenguaje ensamblador por la mínima cantidad de recursos de los que dispone<br />11<br />
  • 24. Flexibilidad<br />Las razones anteriores son cuestión de grado:<br /><ul><li>Los lenguajes de alto nivel tienen limitantes en el control; al hacer abstracciones, limitan su propia capacidad.
  • 25. En cambio, en ensamblador es sumamente sencillo, pues tenemos el acceso directo al hardware del monitor.</li></ul>12<br />
  • 26. Tiempo de programación<br />Requiere más instrucciones para realizar el mismo proceso. <br />Por otro lado, requiere de más cuidado por parte del programador<br />13<br />
  • 27. Programa fuentes grandes<br />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. <br />14<br />
  • 28. Peligro de afectar recursos<br />El problema es que todo error que podamos cometer, o todo riesgo que podamos tener, podemos tenerlo también en este Lenguaje. Dicho de otra forma, tener mucho poder es útil pero también es peligroso. <br />15<br />
  • 29. Falta de portabilidad<br />Como ya se mencionó, existe un lenguaje ensamblador para cada máquina; 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 SO.<br />16<br />
  • 30. Estructura de un programa<br />model small<br />Stack 100h<br />Data<br />Code<br />{Cuerpo del programa}<br />end.<br />17<br />
  • 31. Instrucciones en ensamblador<br />Mov.-mueve el valor de un registro o un numero hacia otro registro ejmplomov Bx,5 , movAX,bx.<br />add.-Sumar el valor de un registro a otro registro ADD BX,5<br />sub.-Rest el valor de un registro o valor especifico a un registro sub cx,2<br />inc incrementa en 1 el valor del registro incbx<br />dec.-Decrementa en 1 el valor del registodecbx<br />18<br />
  • 32. Brincos<br />Brincos condicionales <br />JG=si es mayor<br />JB=SI ES MENOR<br />JE=SI ES IGUAL<br />JGE=si es mayor o igual<br />JBE=si es menor o igual<br />Brinco incondicional<br />Jmp Etiqueta: <br />Brinca a cualquier etiqueta asignada<br />Formato de etiquetas<br />Nombre de etiquetas:<br />{ instrucciones}<br />19<br />
  • 33. Registros<br />Los registros del procesador se emplean para controlar instrucciones en ejecución, manejar direccionamiento de memoria y proporcionar capacidad aritmética.<br />20<br />
  • 34. Registros de segmento<br />Codifica la dirección de inicio de cada segmento y su dirección en un registro de segmento supone cuatro bits 0 a su derecha. <br />Registro CS <br />Registro DS <br />Registro SS <br />Registro ES <br />Registro FS y GS<br />21<br />
  • 35. Registro Apuntador<br />Los registros apuntadores están asociados con el registro SS y permiten al procesador accesar datos en el segmento de pila los registros apuntadores son dos.<br />El registro SP <br />El registro BP<br />22<br />
  • 36. Registros de propósitos generales<br />son los caballos de batalla o las herramientas del sistema. Son los únicos en el sentido de que se puede direccionarlos como una palabra o como una parte de un byte.<br />AX, BX, CX y DX<br />23<br />
  • 37. Registro índice.<br />Los registros SI y DI están disponibles para direccionamientos indexados y para sumas y restas. Que son la operaciones de punta.<br />SI y DI<br />24<br />
  • 38. Ejemplo#1Un programa que teniendo pendiente 3 valores nos diga cual es el mayor de ellos, el mayor que lo ponga en Dx<br />25<br />
  • 39. Ejemplo#1<br />26<br />.modelsmall<br />.stack 100h<br />.data<br />.code<br />Mov AX<br />Mov BX<br />Mov BX<br />Cmp AX,BX<br />JG compA<br />Cmp BX,CX<br />Jmp Mover B<br />X:mov DX,CX<br />Jmp Fin<br />fin :end.<br />Compa:cmo AC,CX<br />JG Mover A<br />Jmp x<br />MoverB:mov DX,BX<br />Jmp fin<br />Mover A: mov DX,AX<br />Jmp fin<br />
  • 40. El proceso de ensamblado<br />El lenguaje interactúa directamente con los dispositivos de hardware y dispositivos lógicos como las memorias y el CPU<br />Programa<br />Compilar<br />Lenguaje ensamblador<br />Ensamble<br />CPU<br />27<br />
  • 41. Programación Hibrida<br />La programación híbrida proporciona un mecanismo por medio del cual podemos aprovechar las ventajas del lenguaje ensamblador y los lenguajes de alto nivel, todo esto con el fin escribir programas más rápidos y eficientes.<br />Bajo Nivel<br />Alto Nivel<br />28<br />
  • 42. Programa hibrido pascal y ensamblador<br />Uses Crt; <br />Var <br />N1,N2,Res : integer; <br />Begin<br />Writeln(“Introduce un número: “); <br />Readln(N1); <br />Writeln(“Introduce un número: “); <br />Readln(N2); <br />Asm<br />Mov AX,N1; <br />Add AX,N2; <br />MovRes,AX<br />End; <br />Writeln(“El resultado de la suma es: “,Res); <br />Readln; <br />End. <br />29<br />
  • 43. Aplicaciones<br />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.<br />30<br />
  • 44. Aplicaciones<br />Se puede acceder a cualquier localidad de la memoria RAM .<br />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<br />Se pueden programar drivers de cualquier dispositivo.<br />Programación de Microcontroloadores<br />Creación de compiladores<br />Se puede acceder directamente a los dispositivos de entrada y/o salida.<br />31<br />
  • 45. Ramas en las que se aplica<br />Sistemas Embebidos: impresoras, cámaras, autos, juguetes, etc.<br />Industria y Manufactura: adquisición datos y control, eg robots.<br />Transporte y Aeronaútica: barcos, aviones, sondas espaciales, etc.<br />Graficación, Multimedia, Cine y Video Juegos<br />Procesamiento de Señales, Voz e Imágenes<br />Armamento y Defensa<br />32<br />
  • 46. Conclusiones<br />El lenguaje ensamblador a pesar de ser mas rápido de cualquier otro lenguaje es también el mas complejo por eso es utilizado para complementar los limitantes de los lenguajes de programación de alto nivel.<br />33<br />
  • 47. Conclusiones<br />Pero existen ramas donde es imprescindible el uso de lenguaje ensamblador como lo es la electrónica donde los recursos de los aparatos son limitados y es necesario utilizar lenguaje ensamblador<br />34<br />
  • 48. Bibliografía<br />*Avila, M. e. (s.f.). Principia. Recuperado el 20 de septiembre de 2009, de Lenguaje Ensamblador para Intel 808x/80x86: http://homepage.mac.com/eravila/asmix86.html<br />*Monografias. Miriam Yazmín Mendoza CaamalHaumiSabeliPech Peraza (s.f.). Recuperado el 20 de septiembre de 2009, de Monografias Lenguaje ensamblador: http://www.monografias.com/trabajos14/lenguaje-ensamblad<br />*Tanenbaum, A. Organizacion de computadoras un enfoque estructurado.Pentice Hall.<br />*Wikipedia. (s.f.). Recuperado el 20 de septiembre de 2009, de Wikipedia Lenguaje Ensamblador: http://es.wikipedia.org/wiki/Lenguaje_ensamblador<br /> <br />35<br />

×