You are on page 1of 14

Lenguajes de Interfaz

Introducción al Lenguaje Ensamblador

Por: Ing. José Jesús Sánc ez !ar"as
jesus.sanc ez#itcela$a.edu.m%

&genda: Características ● Importancia ● Ventajas y desventajas ● Lenguaje ● Perspectiva histórica ● Uso y aplicaciones ● .

'aracter"sticas: El código escrito en lenguaje ensamblador posee una cierta dificultad de ser entendido ya ue su estructura se acerca al lenguaje m! uina" es decir" es un lenguaje de bajo nivel# ● El lenguaje ensamblador es difícilmente portable" es decir" un código escrito para un microprocesador" puede necesitar ser modificado" para poder ser usado en otra m! uina distinta# $l cambiar a una m! uina con ar uitectura diferente" generalmente es necesario reescribirlo completamente# ● .

o muy ineficientes de programar en un lenguaje de alto nivel" ya ue" entre otras cosas" en el lenguaje ensamblador se dispone de instrucciones del CPU ue generalmente no est!n disponibles en los lenguajes de alto nivel# ● .'aracter"sticas: Los programas hechos por un programador e%perto en lenguaje ensamblador son generalmente mucho m!s r!pidos y consumen menos recursos del sistema &memoria '$( y ')(* ue el programa e uivalente compilado desde un lenguaje de alto nivel# $l programar cuidadosamente en lenguaje ensamblador se pueden crear programas ue se ejecutan m!s r!pidamente y ocupan menos espacio ue con lenguajes de alto nivel# Con el lenguaje ensamblador se tiene un control muy preciso de las tareas reali+adas por un microprocesador por lo ue se pueden crear segmentos de código difíciles y.

n se puede controlar el tiempo en ue tarda una rutina en ejecutarse" e impedir ue se interrumpa durante su ejecución# ● .'aracter"sticas: -ambi.

Im(ortancia del lenguaje ensamblador La importancia del lenguaje ensamblador radica principalmente ue se trabaja directamente con el microprocesador/ por lo cual se debe de conocer el funcionamiento interno de este" tiene la ventaja de ue en el se puede reali+ar cual uier tipo de programas ue en los lenguajes de alto nivel no lo pueden reali+ar# )tro punto sería ue los programas en ensamblador ocupan menos espacio en memoria# $yuda a conocer a detalle cómo trabaja un CPU ● Util para Electrónica y 0istemas ● 1esarrolla 2abilidades de Programación $van+ada ● (ejores )portunidades de Empleo en la Industria ● .

)entajas $ des*entajas del Lenguaje Ensamblador )entajas Como trabaja directamente con el microprocesador al ejecutar un programa" pues como este lenguaje es el m!s cercano a la m! uina la computadora lo procesa mas r!pido# ● Eficiencia de tama+o #3 Un programa en ensamblador no ocupa mucho espacio en memoria por ue no tiene ue cargan librerías y dem!s como son los lenguajes de alto nivel ● !le%ibilidad #3 Es fle%ible por ue todo lo ue puede hacerse con una m! uina" puede hacerse en el lenguaje ensamblador de esta m! uina/ los lenguajes de alto nivel tienen en una u otra forma limitantes para e%plotar al m!%imo los recursos de la m! uina# ) sea ue en lenguaje ensamblador se pueden hacer tareas específicas ue en un lenguaje de alto nivel no se pueden llevar acabo por ue tienen ciertas limitantes ue no se lo permite# ● .

es*entajas -iem(o de (rogramación #3 Como es un lenguaje de bajo nivel re uiere m!s instrucciones para reali+ar el mismo proceso" en comparación con un lenguaje de alto nivel# Por otro lado" re uiere de m!s cuidado por parte del programador" pues es propenso a ue los errores de lógica se reflejen m!s fuertemente en la ejecución# Programas fuente grandes #3 Por las mismas ra+ones ue aumenta el tiempo" crecen los programas fuentes/ simplemente re uerimos m!s instrucciones primitivas para describir procesos e uivalentes# Esto es una desventaja por ue dificulta el mantenimiento de los programas" y nuevamente reduce la productividad de los programadores# Peligro de afectar recursos ines(eradamente #3 4ue todo error ue podamos cometer" o todo riesgo ue podamos tener" podemos afectar los recursos de la ma uina" programar en este lenguaje lo m!s com5n ue pueda pasar es ue la m! uina se blo uee o se reinicialice# Por ue con este lenguaje es perfectamente posible &y sencillo* reali+ar secuencias de instrucciones inv!lidas" ue normalmente no aparecen al usar un lenguaje de alto nivel# !alta de (ortabilidad#3 Por ue para cada m! uina e%iste un lenguaje ensamblador/ por ello" evidentemente no es una selección apropiada de lenguaje cuando deseamos codificar en una m! uina y luego llevar los programas a otros sistemas operativos o modelos de computadoras# .)entajas $ des*entajas del Lenguaje Ensamblador .

.elación entre el código binario $ el lenguaje ensamblador En el código binario se utili+an ceros y unos" mientras ue el lenguaje ensamblador es una colección de símbolos mnemónicos ue representan6 operaciones" nombres simbólicos" operadores y símbolos especiales# La relación entre estos dos lenguajes sería ue el binario es el lenguaje ue la m! uina entiende y el ensamblador se acerca mas lenguaje de esta# .

n pueden tener diferente cantidad de registros" y distinta representación de los tipos de datos en memoria# $un ue la mayoría de los microprocesadores son capaces de cumplir esencialmente las mismas funciones" la forma en ue lo hacen difiere y los respectivos lenguajes ensamblador reflejan tal diferencia# .Lenguaje El lenguaje ensamblador refleja directamente la ar uitectura y las instrucciones en lenguaje de m! uina de la CPU" y pueden ser muy diferentes de una ar uitectura de CPU a otra# Cada ar uitectura de microprocesador tiene su propio lenguaje de m! uina" y en consecuencia su propio lenguaje ensamblador ya ue este se encuentra muy ligado al la estructura del hard7are para el cual se programa# Los microprocesadores difieren en el tipo y n5mero de operaciones ue soportan/ tambi.

Pers(ecti*a istórica Los lenguajes ensambladores fueron primero desarrollados en los a8os 9:.<# Los lenguajes ensambladores eliminaron mucha de la propensión a errores y del consumo de tiempo de la programación de los lenguajes de primera generación ue se necesitaba con los primeros computadores" liberando a los programadores del tedio tal como recordar códigos num.= para el computador I>( ?.<" cuando fueron referidos como lenguajes de programación de segunda generación# Por ejemplo" el 0)$P &0ymbolic )ptimal $ssembly Program* era un lenguaje ensamblador de 9:.ricos y c!lculo de direcciones# Una ve+ fueron ampliamente usados para todo tipo de programación# 0in embargo" por los a8os 9:@< &9::< en los microcomputadores*" su uso había sido en gran parte suplantado por los lenguajes de alto nivel" en la b5s ueda de una mejorada productividad en programación# 2oy en día" aun ue el lenguaje ensamblador es casi siempre manejado y generado por los compiladores" todavía se usa para la manipulación directa del hard7are" acceso a instrucciones especiali+adas del procesador" o para resolver problemas de desempe8o crítico# Los usos típicos son drivers de dispositivo" sistemas embebidos de bajo nivel" y sistemas de tiempo real# .

n" muchas aplicaciones comerciales fueron escritas en lenguaje ensamblador" incluyendo una gran cantidad del soft7are escrito por grandes corporaciones para mainframes de I>(# Los lenguajes C)>)L y A)'-'$B eventualmente despla+aron mucho de este trabajo" aun ue un n5mero de organi+aciones grandes conservaran las infraestructuras de aplicaciones en lenguaje ensamblador hasta bien entrados los a8os 9::<# .Pers(ecti*a istórica 2istóricamente" un gran n5mero de programas han sido escritos enteramente en lenguaje ensamblador# Los sistemas operativos fueron casi e%clusivamente escritos en lenguaje ensamblador hasta la aceptación !mplia del lenguaje de programación C en los a8os 9:=< y principios de los 9:@<# -ambi.

Eenesis y el 0uper Bintendo Entertainment 0ystem# 0eg5n algunos insiders de la industria" el lenguaje ensamblador era el mejor lenguaje de programación a usar para obtener el mejor desempe8o del 0ega 0aturn" una cónsola para la cual era notoriamente desafiante desarrollar y programar juegos# El popular juego de arcade B>$ Fam &9::D* es otro ejemplo# El ensamblador ha sido por largo trecho" el lenguaje de desarrollo primario en los computadores hogare8os Commodore ?G" $tari 0-" así como el HI 0pectrum# Esto fue así en gran parte por ue los dialectos del >$0IC en estos sistemas ofrecieron insuficiente velocidad de ejecución" así como insuficientes características para aprovechar completamente el hard7are disponible# $lgunos sistemas" m!s notablemente el $miga" incluso tienen I1Es con características de depuración y macros altamente avan+ados" tales como el free7are $0(3)ne assembler" comparable a las del (icrosoft Visual 0tudio &el $0(3Uno precede al (icrosoft Visual 0tudio*# .Pers(ecti*a istórica Los típicos ejemplos de programas grandes en lenguaje ensamblador de ese tiempo son los sistemas operativos I>( PC 1)0 y aplicaciones tempranas tales como la hoja de c!lculo Lotus 93C3D" y casi todos los juegos populares para la familia $tari @<< de computadores personales# Incluso en los a8os 9::<" la mayoría de los videojuegos de cónsola fueron escritos en ensamblador" incluyendo la mayoría de los juegos para la (ega 1rive.

SP: Procesamiento de 0e8ales" vo+ e im!genes ● 0tras: (edicina" $erona5tica" $rmamento" etc# ● .eal: en la industria y manufactura" e#g# ad uisición datos" control robots ● -rans(orte: barcos" aviones" sondas espaciales" etc# ● Entretenimiento: Eraficación" (ultimedia" Cine y VideoFuegos ● ./so $ a(licaciones Sistemas embebidos: impresoras" c!maras" autos" armas" juguetes" etc# ● -iem(o .