SlideShare una empresa de Scribd logo
1 de 10
REPÚBLICA BOLIVARIANA DE VENEZUELA
MINISTERIO DEL PODER POPULAR PARA LA EDUCACIÓN SUPERIOR
INSTITUTO UNIVERSITARIO DE TECNOLOGÍA “ANTONIO JOSÉ DE SUCRE”
SAN FELIPE- YARACUY

EMSAMBLADORES

ALAN VERASTEGUI ESCUELA: 78
C.I 12.078.560

FEBRERO, 2014
ÍNDICE
Introducción……………………………………………………………………………

3

Sistema ensambladores primitivos…………………………………………………

4

Funciones…………………………………………………………………………......

5

Tipos…………………………………………………………………………………...

6

Características……………………………………………………………………….

7

Conclusión……………………………………………………………………………

9

Bibliografía…….……………………………………………………………………...

10
INTRODUCCIÓN

Un lenguaje de programación permite al usuario crear programas que serán
entendidos por el ordenador (directa o indirectamente) con el objetivo de realizar
alguna tarea.
A grandes rasgos podemos clasificar los lenguajes de programación en tres
categorías: máquina, bajo nivel (ensamblador) y alto nivel.

Los traductores son un tipo de programas cuya función es convertir el
código de un lenguaje en otro. Un ejemplo de ellos son los Ensambladores
que son un tipo de traductor que convierte programas escritos en lenguaje
ensamblador en programas escritos en código máquina.
SISTEMAS ENSAMBLADORES PRIMITIVOS
Cuando se abstraen los opcodes y se sustituyen por una palabra que sea
una clave de su significado, a la cual comúnmente se le conoce como mnemónico,
se tiene el concepto de Lenguaje Ensamblador. Así, se puede definir simplemente
al Lenguaje Ensamblador de la siguiente forma:
Lenguaje Ensamblador es la primera abstracción del Lenguaje de Máquina,
consistente en asociar a los opcodes palabras clave que faciliten su uso por parte
del programador
El Lenguaje Ensamblador es directamente traducible al Lenguaje de
Máquina, y viceversa; simplemente, es una abstracción que facilita su uso para los
seres humanos.
Por otro lado, la computadora no entiende directamente al
Lenguaje Ensamblador; es necesario traducirle a Lenguaje de Máquina.
Originalmente, este proceso se hacía a mano, usando para ello hojas donde se
escribían tablas de programa. Pero, al ser tan directa la traducción, pronto
aparecieron los programas Ensambladores, que son traductores que convierten el
código fuente (en Lenguaje Ensamblador) a código objeto (es decir, a Lenguaje de
Máquina).
El lenguaje ensamblador, o assembler (assembly language en inglés), es un
lenguaje de programación de bajo nivel para los computadores,microprocesadores
microcontroladores y otros circuitos integrados programables. Implementa una
representación simbólica de los códigos de máquina binarios y otras constantes
necesarias para programar una arquitectura dada de CPU y constituye la
representación más directa del código máquina específico para cada arquitectura
legible por un programador. Esta representación es usualmente definida por el
fabricante de hardware, y está basada en los mnemónicos que simbolizan los
pasos de procesamiento (las instrucciones), los registros del procesador, las
posiciones de memoria y otras características del lenguaje. Un lenguaje
ensamblador es por lo tanto específico de cierta arquitectura de computador física
(o virtual). Esto está en contraste con la mayoría de los lenguajes de programación
de alto nivel, que idealmente son portátiles.
Un programa utilitario llamado ensambladores usado para traducir
sentencias del lenguaje ensamblador al código de máquina del computador
objetivo. El ensamblador realiza una traducción más o menos isomorfa (un mapeo
de uno a uno) desde las sentencias mnemónicas a las instrucciones y datos de
máquina. Esto está en contraste con los lenguajes de alto nivel, en los cuales una
sola declaración generalmente da lugar a muchas instrucciones de máquina.
Muchos sofisticados ensambladores ofrecen mecanismos adicionales para
facilitar el desarrollo del programa, controlar el proceso de ensamblaje, y la ayuda
de depuración. Particularmente, la mayoría de los ensambladores modernos
incluyen una facilidad de macro (descrita más abajo), y son llamados macro
ensambladores.
Fue usado principalmente en los inicios del desarrollo de software, cuando
aún no se contaba con potentes lenguajes de alto nivel y los recursos eran
limitados. Actualmente se utiliza con frecuencia en ambientes académicos y de
investigación, especialmente cuando se requiere la manipulación directa
de hardware, alto rendimiento, o un uso de recursos controlado y reducido.
Muchos dispositivos programables (como los microcontroladores) aún
cuentan con el ensamblador como la única manera de ser manipulados.
FUNCIONES
La tarea fundamental de un ensamblador es traducir un programa en
lenguaje de ensamblador al código correspondiente en lenguaje de máquina. En
esencia, el ensamblador debe realizar las siguientes tareas:
1. Convertir los códigos ("opcode" o mnemónicos: ej. LDA, STX) a su código
equivalente en lenguaje de máquina
2. Convertir los operandos simbólicos (las etiquetas o variables) en las direcciones
correspondientes de los operandos
3. Construir las instrucciones en lenguaje de máquina en el formato apropiado
4. Convertir las constantes definidas en el programa en su verdadera
representación
5. Escribir el "listing" en lenguaje de ensamblador con el código en lenguaje de
máquina correspondiente
6. 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)
En general, la mayoría de las tareas se puede realizar si se recorre el programa
línea por línea. Pero surge una dificultad si se trata de traducir una instrucción
cuyo operando está definido más abajo en el programa. Si esto ocurre, el
ensamblador desconoce la dirección del operando y la instrucción no se podría
ensamblar.
TIPOS DE ENSAMBLADORES
Aunque todos los ensambladores realizan básicamente las mismas tareas,
podemos clasificarlos de acuerdo a características en:
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.
El empleo de este tipo de traductores permite aprovechar el soporte de
medios físicos (discos, impresoras, pantallas, etc.), y de programación que ofrecen
las máquinas potentes para desarrollar programas que luego los van a ejecutar
sistemas muy especializados en determinados tipos de tareas.
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.
Sin embargo, puede presentar problemas de espacio de memoria, ya que el
traductor ocupa espacio que no puede ser utilizado por el programador. Asimismo,
también ocupará memoria el programa fuente y el programa objeto. Esto obliga a
tener un espacio de memoria relativamente amplio. Es el indicado para desarrollos
de
pequeños
sistemas
de
control
y
sencillos
automatismo
empleando microprocesadores.
La ventaja de estos ensambladores es que permiten ejecutar
inmediatamente el programa; la desventaja es que deben mantenerse en la
memoria principal tanto el ensamblador como el programa fuente y el programa
objeto.
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. Puede variar la complejidad de
los mismos, dependiendo de las posibilidades de definición y manipulación de las
macroinstrucciones, pero normalmente son programas bastantes complejos, por lo
que suelen ser ensambladores residentes.
Microensambladores.
Generalmente, los procesadores utilizados en las computadoras tienen un
repertorio fijo de instrucciones, es decir, que el intérprete de las mismas
interpretaba de igual forma un determinado código de operación.
El programa que indica al intérprete de instrucciones de la UCP cómo debe
actuar se denomina microprograma. El programa que ayuda a realizar este
microprograma se llama microensamblador. Existen procesadores que permiten la
modificación de sus microprogramas, para lo cual se utilizan microensambladores.
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.
Debido a su forma de traducción, estos ensambladores obligan a definir los
símbolos antes de ser empleados para que, cuando aparezca una referencia a un
determinado símbolo en una instrucción, se conozca la dirección de dicho símbolo
y se pueda traducir de forma correcta. Estos ensambladores son sencillos, baratos
y ocupan poco espacio, pero tiene el inconveniente indicado.
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.

CARACTERÍSTICAS
El código escrito en lenguaje ensamblador posee una cierta dificultad de ser
entendido ya que su estructura se acerca al lenguaje máquina, 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áquina distinta. Al cambiar a una máquina con arquitectura
diferente, generalmente es necesario reescribirlo completamente.
Los programas hechos por un programador experto en lenguaje ensamblador
son generalmente mucho más rápidos y consumen menos recursos del
sistema (memoria RAM y ROM) que el programa equivalente compilado desde
un lenguaje de alto nivel. Al programar cuidadosamente en lenguaje
ensamblador se pueden crear programas que se ejecutan más rápidamente y
ocupan menos espacio que con lenguajes de alto nivel.
Con el lenguaje ensamblador se tiene un control muy preciso de las tareas
realizadas por un microprocesador por lo que se pueden crear segmentos de
código difíciles y/o muy ineficientes de programar en un lenguaje de alto nivel,
ya que, entre otras cosas, en el lenguaje ensamblador se dispone de
instrucciones del CPU que generalmente no están disponibles en los lenguajes
de alto nivel.
También se puede controlar el tiempo en que tarda una rutina en ejecutarse, e
impedir que se interrumpa durante su ejecución.
CONCLUSIÓN

A los programas que permiten pasar del programa escrito con instrucciones
simbólicas del lenguaje maquina (programa fuente, en ensamblador) al
lenguaje máquina también se les denomina normalmente ensambladores. Un
programa escrito en el lenguaje ensamblador requiere considerablemente
menos memoria y tiempo de ejecución que un programa escrito en los
conocidos lenguajes de alto nivel, como Pascal y C. Aunque la mayoría de los
especialistas en Software desarrolla aplicaciones en lenguajes de alto nivel,
que son más fáciles de escribir y de dar mantenimiento, una práctica común es
recodificar en lenguaje ensamblador aquellas rutinas que han causado cuellos
de botella en el procesamiento. Los programas residentes y rutinas de servicio
de interrupción casi siempre son desarrollados en el lenguaje ensamblador.
html.rincondelvago.com/ensamblador_5.htm
www.uhu.es/tomas.mateo/ac2/manual%20ensamblador%20UHU.pd
platea.pntic.mec.es/jdelucas/ensamblador.htm
platea.pntic.mec.es/jdelucas/ensamblador.htm

Más contenido relacionado

La actualidad más candente

Lenguaje ensambldor
Lenguaje ensambldorLenguaje ensambldor
Lenguaje ensambldortareassss
 
Lenguaje de programacion
Lenguaje de programacionLenguaje de programacion
Lenguaje de programacionjafp21
 
Enlazadores cargadores-by-gadd
Enlazadores cargadores-by-gaddEnlazadores cargadores-by-gadd
Enlazadores cargadores-by-gaddGustavo Davila
 
Lenguaje de ensamblador
Lenguaje de ensambladorLenguaje de ensamblador
Lenguaje de ensambladorluisbeltran861
 
Trabajo de compiladores completo alexandra
Trabajo de compiladores completo alexandraTrabajo de compiladores completo alexandra
Trabajo de compiladores completo alexandraAlexandraMolinaSanchez
 
Assembler apesteguia (1)
Assembler apesteguia (1)Assembler apesteguia (1)
Assembler apesteguia (1)tonytenorio2
 
Compilador 22 (1)
Compilador 22 (1)Compilador 22 (1)
Compilador 22 (1)still01
 
Aplicar los pricipios de programacion en la solucion de problemas 33
Aplicar los pricipios de programacion en la solucion de problemas 33Aplicar los pricipios de programacion en la solucion de problemas 33
Aplicar los pricipios de programacion en la solucion de problemas 33Jahir Sanchez Sdval
 
Conceptossobreedicionyobtenciondecodigoejecutable
ConceptossobreedicionyobtenciondecodigoejecutableConceptossobreedicionyobtenciondecodigoejecutable
ConceptossobreedicionyobtenciondecodigoejecutableColegio Metropolitano
 
Lenguaje de programacion
Lenguaje de programacionLenguaje de programacion
Lenguaje de programacionIsaraiI
 
Clase2 clasificacion de interpretes
Clase2 clasificacion de interpretesClase2 clasificacion de interpretes
Clase2 clasificacion de interpretesInfomania pro
 

La actualidad más candente (19)

Lenguaje ensambldor
Lenguaje ensambldorLenguaje ensambldor
Lenguaje ensambldor
 
Lenguaje de programacion
Lenguaje de programacionLenguaje de programacion
Lenguaje de programacion
 
Enlazadores cargadores-by-gadd
Enlazadores cargadores-by-gaddEnlazadores cargadores-by-gadd
Enlazadores cargadores-by-gadd
 
Lenguaje de ensamblador
Lenguaje de ensambladorLenguaje de ensamblador
Lenguaje de ensamblador
 
1 4
1 41 4
1 4
 
Traductores de lenguajes
Traductores   de    lenguajesTraductores   de    lenguajes
Traductores de lenguajes
 
COMPILADORES
COMPILADORESCOMPILADORES
COMPILADORES
 
Lenguaje Ensamblador
Lenguaje EnsambladorLenguaje Ensamblador
Lenguaje Ensamblador
 
Tasm
TasmTasm
Tasm
 
Trabajo de compiladores completo alexandra
Trabajo de compiladores completo alexandraTrabajo de compiladores completo alexandra
Trabajo de compiladores completo alexandra
 
Assembler apesteguia (1)
Assembler apesteguia (1)Assembler apesteguia (1)
Assembler apesteguia (1)
 
Compilador 22 (1)
Compilador 22 (1)Compilador 22 (1)
Compilador 22 (1)
 
Cargadores
CargadoresCargadores
Cargadores
 
Aplicar los pricipios de programacion en la solucion de problemas 33
Aplicar los pricipios de programacion en la solucion de problemas 33Aplicar los pricipios de programacion en la solucion de problemas 33
Aplicar los pricipios de programacion en la solucion de problemas 33
 
Compiladores iswi (parte 2)
Compiladores iswi (parte 2)Compiladores iswi (parte 2)
Compiladores iswi (parte 2)
 
Conceptossobreedicionyobtenciondecodigoejecutable
ConceptossobreedicionyobtenciondecodigoejecutableConceptossobreedicionyobtenciondecodigoejecutable
Conceptossobreedicionyobtenciondecodigoejecutable
 
Ensamblador
EnsambladorEnsamblador
Ensamblador
 
Lenguaje de programacion
Lenguaje de programacionLenguaje de programacion
Lenguaje de programacion
 
Clase2 clasificacion de interpretes
Clase2 clasificacion de interpretesClase2 clasificacion de interpretes
Clase2 clasificacion de interpretes
 

Destacado

Mapa conceptual de phi.
Mapa conceptual de phi.Mapa conceptual de phi.
Mapa conceptual de phi.Araceli Vega
 
Liina Y Aura
Liina Y AuraLiina Y Aura
Liina Y AuraLinaa
 
Narrativas Periodísticas en la Web
Narrativas Periodísticas en la WebNarrativas Periodísticas en la Web
Narrativas Periodísticas en la WebVeroAyala6
 
sintesis del tema
sintesis del temasintesis del tema
sintesis del temadiemto4
 
Mainboard o tarjeta madre
Mainboard o tarjeta madreMainboard o tarjeta madre
Mainboard o tarjeta madredaayaana duran
 
THiiiNK! Design The Jones Project
THiiiNK! Design The Jones ProjectTHiiiNK! Design The Jones Project
THiiiNK! Design The Jones ProjectTHiiiNK! Design
 
Manual Scribus
Manual ScribusManual Scribus
Manual ScribusblancaE14
 
컴공세미나 발표 애드센스 (1조)
컴공세미나 발표 애드센스 (1조)컴공세미나 발표 애드센스 (1조)
컴공세미나 발표 애드센스 (1조)영성 김
 
Curso de formación en derechos humanos y género
Curso de formación en derechos humanos y género Curso de formación en derechos humanos y género
Curso de formación en derechos humanos y género PNUD EL SALVADOR
 
Mockumentary
MockumentaryMockumentary
MockumentaryMallycom
 
Fases del proceso de evaluación de un curso en linea
Fases del proceso de evaluación de un curso en lineaFases del proceso de evaluación de un curso en linea
Fases del proceso de evaluación de un curso en lineapatyto2785
 
Malicia sanitaria-pdf-2007
Malicia sanitaria-pdf-2007Malicia sanitaria-pdf-2007
Malicia sanitaria-pdf-2007saludlb
 

Destacado (20)

Resumen tema 1
Resumen tema 1Resumen tema 1
Resumen tema 1
 
Mapa conceptual de phi.
Mapa conceptual de phi.Mapa conceptual de phi.
Mapa conceptual de phi.
 
Liina Y Aura
Liina Y AuraLiina Y Aura
Liina Y Aura
 
Presentación1erika
Presentación1erikaPresentación1erika
Presentación1erika
 
Narrativas Periodísticas en la Web
Narrativas Periodísticas en la WebNarrativas Periodísticas en la Web
Narrativas Periodísticas en la Web
 
Pj Ppt 1
Pj Ppt 1Pj Ppt 1
Pj Ppt 1
 
Pps 08104152
Pps 08104152Pps 08104152
Pps 08104152
 
sintesis del tema
sintesis del temasintesis del tema
sintesis del tema
 
Cuento
CuentoCuento
Cuento
 
Mainboard o tarjeta madre
Mainboard o tarjeta madreMainboard o tarjeta madre
Mainboard o tarjeta madre
 
THiiiNK! Design The Jones Project
THiiiNK! Design The Jones ProjectTHiiiNK! Design The Jones Project
THiiiNK! Design The Jones Project
 
Manual Scribus
Manual ScribusManual Scribus
Manual Scribus
 
Ensayo com. interactiva
Ensayo com. interactivaEnsayo com. interactiva
Ensayo com. interactiva
 
컴공세미나 발표 애드센스 (1조)
컴공세미나 발표 애드센스 (1조)컴공세미나 발표 애드센스 (1조)
컴공세미나 발표 애드센스 (1조)
 
Curso de formación en derechos humanos y género
Curso de formación en derechos humanos y género Curso de formación en derechos humanos y género
Curso de formación en derechos humanos y género
 
La web 2.0
La web 2.0La web 2.0
La web 2.0
 
Mockumentary
MockumentaryMockumentary
Mockumentary
 
καιρος
καιροςκαιρος
καιρος
 
Fases del proceso de evaluación de un curso en linea
Fases del proceso de evaluación de un curso en lineaFases del proceso de evaluación de un curso en linea
Fases del proceso de evaluación de un curso en linea
 
Malicia sanitaria-pdf-2007
Malicia sanitaria-pdf-2007Malicia sanitaria-pdf-2007
Malicia sanitaria-pdf-2007
 

Similar a Ensambladores

TIPOS DE LENGUAJES ENSAMBLADOR Y CLASIFICACION DE MEMORIAS
TIPOS DE LENGUAJES ENSAMBLADOR Y CLASIFICACION DE MEMORIAS TIPOS DE LENGUAJES ENSAMBLADOR Y CLASIFICACION DE MEMORIAS
TIPOS DE LENGUAJES ENSAMBLADOR Y CLASIFICACION DE MEMORIAS Guillermo Iván Prisco Pérez
 
Lenguaje Ensamblador00
Lenguaje Ensamblador00Lenguaje Ensamblador00
Lenguaje Ensamblador00Car_00_01
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensambladorCar_00_01
 
Compiladores y analizador lexicos
Compiladores y analizador lexicosCompiladores y analizador lexicos
Compiladores y analizador lexicosdiana8320
 
Investigacion sobre traductor, interprete y compilador
Investigacion sobre traductor, interprete y compilador   Investigacion sobre traductor, interprete y compilador
Investigacion sobre traductor, interprete y compilador ADOLFOISAIASGARCIASI
 
Traductores de lenguajes de programación
Traductores de lenguajes de programaciónTraductores de lenguajes de programación
Traductores de lenguajes de programaciónDaniela Brignolo
 
LENGUAJE DE PROGRAMACION. INVESTIGACION
LENGUAJE DE PROGRAMACION. INVESTIGACIONLENGUAJE DE PROGRAMACION. INVESTIGACION
LENGUAJE DE PROGRAMACION. INVESTIGACIONKathGon1
 
Universidad de panam1.lenguaje de programación
Universidad de panam1.lenguaje de programaciónUniversidad de panam1.lenguaje de programación
Universidad de panam1.lenguaje de programaciónKatherine Gonzales
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativosrIsAdA
 
Visual basic terminado[1]
Visual basic terminado[1]Visual basic terminado[1]
Visual basic terminado[1]Jalil Segura
 
Visual basic terminado[1]
Visual basic terminado[1]Visual basic terminado[1]
Visual basic terminado[1]Jalil Segura
 
Programación Y Simulación De Robot SCARA, documento
Programación Y Simulación De Robot SCARA, documentoProgramación Y Simulación De Robot SCARA, documento
Programación Y Simulación De Robot SCARA, documentoBronson Duhart
 
Clase3 guia1-introduccion-compiladores-conceptos
Clase3 guia1-introduccion-compiladores-conceptosClase3 guia1-introduccion-compiladores-conceptos
Clase3 guia1-introduccion-compiladores-conceptosInfomania pro
 
Clasificacion de los
Clasificacion de losClasificacion de los
Clasificacion de losJose Mendez
 

Similar a Ensambladores (20)

TIPOS DE LENGUAJES ENSAMBLADOR Y CLASIFICACION DE MEMORIAS
TIPOS DE LENGUAJES ENSAMBLADOR Y CLASIFICACION DE MEMORIAS TIPOS DE LENGUAJES ENSAMBLADOR Y CLASIFICACION DE MEMORIAS
TIPOS DE LENGUAJES ENSAMBLADOR Y CLASIFICACION DE MEMORIAS
 
Proyecto fernando compiladores 1
Proyecto fernando compiladores 1Proyecto fernando compiladores 1
Proyecto fernando compiladores 1
 
Introduccion
IntroduccionIntroduccion
Introduccion
 
Lenguaje Ensamblador00
Lenguaje Ensamblador00Lenguaje Ensamblador00
Lenguaje Ensamblador00
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Compiladores y analizador lexicos
Compiladores y analizador lexicosCompiladores y analizador lexicos
Compiladores y analizador lexicos
 
Resumencap1 carmen vargas_jeremycamacho
Resumencap1 carmen vargas_jeremycamachoResumencap1 carmen vargas_jeremycamacho
Resumencap1 carmen vargas_jeremycamacho
 
Investigacion sobre traductor, interprete y compilador
Investigacion sobre traductor, interprete y compilador   Investigacion sobre traductor, interprete y compilador
Investigacion sobre traductor, interprete y compilador
 
Mipag web
Mipag webMipag web
Mipag web
 
Traductores de lenguajes de programación
Traductores de lenguajes de programaciónTraductores de lenguajes de programación
Traductores de lenguajes de programación
 
LENGUAJE ENSAMBLASOR
LENGUAJE ENSAMBLASORLENGUAJE ENSAMBLASOR
LENGUAJE ENSAMBLASOR
 
LENGUAJE DE PROGRAMACION. INVESTIGACION
LENGUAJE DE PROGRAMACION. INVESTIGACIONLENGUAJE DE PROGRAMACION. INVESTIGACION
LENGUAJE DE PROGRAMACION. INVESTIGACION
 
Universidad de panam1.lenguaje de programación
Universidad de panam1.lenguaje de programaciónUniversidad de panam1.lenguaje de programación
Universidad de panam1.lenguaje de programación
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
Visual basic terminado[1]
Visual basic terminado[1]Visual basic terminado[1]
Visual basic terminado[1]
 
Visual basic terminado[1]
Visual basic terminado[1]Visual basic terminado[1]
Visual basic terminado[1]
 
Programación Y Simulación De Robot SCARA, documento
Programación Y Simulación De Robot SCARA, documentoProgramación Y Simulación De Robot SCARA, documento
Programación Y Simulación De Robot SCARA, documento
 
45
4545
45
 
Clase3 guia1-introduccion-compiladores-conceptos
Clase3 guia1-introduccion-compiladores-conceptosClase3 guia1-introduccion-compiladores-conceptos
Clase3 guia1-introduccion-compiladores-conceptos
 
Clasificacion de los
Clasificacion de losClasificacion de los
Clasificacion de los
 

Más de hampacomun

Algebra lineal
Algebra linealAlgebra lineal
Algebra linealhampacomun
 
áLgebra relacional
áLgebra relacionaláLgebra relacional
áLgebra relacionalhampacomun
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacionalhampacomun
 
áLgebra relacional
áLgebra relacionaláLgebra relacional
áLgebra relacionalhampacomun
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacionalhampacomun
 

Más de hampacomun (7)

Algebra lineal
Algebra linealAlgebra lineal
Algebra lineal
 
áLgebra relacional
áLgebra relacionaláLgebra relacional
áLgebra relacional
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacional
 
áLgebra relacional
áLgebra relacionaláLgebra relacional
áLgebra relacional
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacional
 
Ensambladores
EnsambladoresEnsambladores
Ensambladores
 
Ensambladores
EnsambladoresEnsambladores
Ensambladores
 

Último

Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleJonathanCovena1
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinavergarakarina022
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFAROJosé Luis Palma
 
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxPryhaSalam
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.José Luis Palma
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.amayarogel
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptxFelicitasAsuncionDia
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptELENA GALLARDO PAÚLS
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para eventoDiegoMtsS
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.DaluiMonasterio
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxPRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxinformacionasapespu
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arteRaquel Martín Contreras
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdfgimenanahuel
 

Último (20)

Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo Sostenible
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karina
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
 
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.
 
Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para evento
 
Sesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdfSesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdf
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxPRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arte
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf
 

Ensambladores

  • 1. REPÚBLICA BOLIVARIANA DE VENEZUELA MINISTERIO DEL PODER POPULAR PARA LA EDUCACIÓN SUPERIOR INSTITUTO UNIVERSITARIO DE TECNOLOGÍA “ANTONIO JOSÉ DE SUCRE” SAN FELIPE- YARACUY EMSAMBLADORES ALAN VERASTEGUI ESCUELA: 78 C.I 12.078.560 FEBRERO, 2014
  • 3. INTRODUCCIÓN Un lenguaje de programación permite al usuario crear programas que serán entendidos por el ordenador (directa o indirectamente) con el objetivo de realizar alguna tarea. A grandes rasgos podemos clasificar los lenguajes de programación en tres categorías: máquina, bajo nivel (ensamblador) y alto nivel. Los traductores son un tipo de programas cuya función es convertir el código de un lenguaje en otro. Un ejemplo de ellos son los Ensambladores que son un tipo de traductor que convierte programas escritos en lenguaje ensamblador en programas escritos en código máquina.
  • 4. SISTEMAS ENSAMBLADORES PRIMITIVOS Cuando se abstraen los opcodes y se sustituyen por una palabra que sea una clave de su significado, a la cual comúnmente se le conoce como mnemónico, se tiene el concepto de Lenguaje Ensamblador. Así, se puede definir simplemente al Lenguaje Ensamblador de la siguiente forma: Lenguaje Ensamblador es la primera abstracción del Lenguaje de Máquina, consistente en asociar a los opcodes palabras clave que faciliten su uso por parte del programador El Lenguaje Ensamblador es directamente traducible al Lenguaje de Máquina, y viceversa; simplemente, es una abstracción que facilita su uso para los seres humanos. Por otro lado, la computadora no entiende directamente al Lenguaje Ensamblador; es necesario traducirle a Lenguaje de Máquina. Originalmente, este proceso se hacía a mano, usando para ello hojas donde se escribían tablas de programa. Pero, al ser tan directa la traducción, pronto aparecieron los programas Ensambladores, que son traductores que convierten el código fuente (en Lenguaje Ensamblador) a código objeto (es decir, a Lenguaje de Máquina). El lenguaje ensamblador, o assembler (assembly language en inglés), es un lenguaje de programación de bajo nivel para los computadores,microprocesadores microcontroladores y otros circuitos integrados programables. Implementa una representación simbólica de los códigos de máquina binarios y otras constantes necesarias para programar una arquitectura dada de CPU y constituye la representación más directa del código máquina específico para cada arquitectura legible por un programador. Esta representación es usualmente definida por el fabricante de hardware, y está basada en los mnemónicos que simbolizan los pasos de procesamiento (las instrucciones), los registros del procesador, las posiciones de memoria y otras características del lenguaje. Un lenguaje ensamblador es por lo tanto específico de cierta arquitectura de computador física (o virtual). Esto está en contraste con la mayoría de los lenguajes de programación de alto nivel, que idealmente son portátiles. Un programa utilitario llamado ensambladores usado para traducir sentencias del lenguaje ensamblador al código de máquina del computador objetivo. El ensamblador realiza una traducción más o menos isomorfa (un mapeo de uno a uno) desde las sentencias mnemónicas a las instrucciones y datos de máquina. Esto está en contraste con los lenguajes de alto nivel, en los cuales una sola declaración generalmente da lugar a muchas instrucciones de máquina.
  • 5. Muchos sofisticados ensambladores ofrecen mecanismos adicionales para facilitar el desarrollo del programa, controlar el proceso de ensamblaje, y la ayuda de depuración. Particularmente, la mayoría de los ensambladores modernos incluyen una facilidad de macro (descrita más abajo), y son llamados macro ensambladores. Fue usado principalmente en los inicios del desarrollo de software, cuando aún no se contaba con potentes lenguajes de alto nivel y los recursos eran limitados. Actualmente se utiliza con frecuencia en ambientes académicos y de investigación, especialmente cuando se requiere la manipulación directa de hardware, alto rendimiento, o un uso de recursos controlado y reducido. Muchos dispositivos programables (como los microcontroladores) aún cuentan con el ensamblador como la única manera de ser manipulados. FUNCIONES La tarea fundamental de un ensamblador es traducir un programa en lenguaje de ensamblador al código correspondiente en lenguaje de máquina. En esencia, el ensamblador debe realizar las siguientes tareas: 1. Convertir los códigos ("opcode" o mnemónicos: ej. LDA, STX) a su código equivalente en lenguaje de máquina 2. Convertir los operandos simbólicos (las etiquetas o variables) en las direcciones correspondientes de los operandos 3. Construir las instrucciones en lenguaje de máquina en el formato apropiado 4. Convertir las constantes definidas en el programa en su verdadera representación 5. Escribir el "listing" en lenguaje de ensamblador con el código en lenguaje de máquina correspondiente 6. 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) En general, la mayoría de las tareas se puede realizar si se recorre el programa línea por línea. Pero surge una dificultad si se trata de traducir una instrucción cuyo operando está definido más abajo en el programa. Si esto ocurre, el ensamblador desconoce la dirección del operando y la instrucción no se podría ensamblar.
  • 6. TIPOS DE ENSAMBLADORES Aunque todos los ensambladores realizan básicamente las mismas tareas, podemos clasificarlos de acuerdo a características en: 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. El empleo de este tipo de traductores permite aprovechar el soporte de medios físicos (discos, impresoras, pantallas, etc.), y de programación que ofrecen las máquinas potentes para desarrollar programas que luego los van a ejecutar sistemas muy especializados en determinados tipos de tareas. 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. Sin embargo, puede presentar problemas de espacio de memoria, ya que el traductor ocupa espacio que no puede ser utilizado por el programador. Asimismo, también ocupará memoria el programa fuente y el programa objeto. Esto obliga a tener un espacio de memoria relativamente amplio. Es el indicado para desarrollos de pequeños sistemas de control y sencillos automatismo empleando microprocesadores. La ventaja de estos ensambladores es que permiten ejecutar inmediatamente el programa; la desventaja es que deben mantenerse en la memoria principal tanto el ensamblador como el programa fuente y el programa objeto. 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. Puede variar la complejidad de los mismos, dependiendo de las posibilidades de definición y manipulación de las macroinstrucciones, pero normalmente son programas bastantes complejos, por lo que suelen ser ensambladores residentes.
  • 7. Microensambladores. Generalmente, los procesadores utilizados en las computadoras tienen un repertorio fijo de instrucciones, es decir, que el intérprete de las mismas interpretaba de igual forma un determinado código de operación. El programa que indica al intérprete de instrucciones de la UCP cómo debe actuar se denomina microprograma. El programa que ayuda a realizar este microprograma se llama microensamblador. Existen procesadores que permiten la modificación de sus microprogramas, para lo cual se utilizan microensambladores. 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. Debido a su forma de traducción, estos ensambladores obligan a definir los símbolos antes de ser empleados para que, cuando aparezca una referencia a un determinado símbolo en una instrucción, se conozca la dirección de dicho símbolo y se pueda traducir de forma correcta. Estos ensambladores son sencillos, baratos y ocupan poco espacio, pero tiene el inconveniente indicado. 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. CARACTERÍSTICAS El código escrito en lenguaje ensamblador posee una cierta dificultad de ser entendido ya que su estructura se acerca al lenguaje máquina, 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áquina distinta. Al cambiar a una máquina con arquitectura diferente, generalmente es necesario reescribirlo completamente. Los programas hechos por un programador experto en lenguaje ensamblador son generalmente mucho más rápidos y consumen menos recursos del
  • 8. sistema (memoria RAM y ROM) que el programa equivalente compilado desde un lenguaje de alto nivel. Al programar cuidadosamente en lenguaje ensamblador se pueden crear programas que se ejecutan más rápidamente y ocupan menos espacio que con lenguajes de alto nivel. Con el lenguaje ensamblador se tiene un control muy preciso de las tareas realizadas por un microprocesador por lo que se pueden crear segmentos de código difíciles y/o muy ineficientes de programar en un lenguaje de alto nivel, ya que, entre otras cosas, en el lenguaje ensamblador se dispone de instrucciones del CPU que generalmente no están disponibles en los lenguajes de alto nivel. También se puede controlar el tiempo en que tarda una rutina en ejecutarse, e impedir que se interrumpa durante su ejecución.
  • 9. CONCLUSIÓN A los programas que permiten pasar del programa escrito con instrucciones simbólicas del lenguaje maquina (programa fuente, en ensamblador) al lenguaje máquina también se les denomina normalmente ensambladores. Un programa escrito en el lenguaje ensamblador requiere considerablemente menos memoria y tiempo de ejecución que un programa escrito en los conocidos lenguajes de alto nivel, como Pascal y C. Aunque la mayoría de los especialistas en Software desarrolla aplicaciones en lenguajes de alto nivel, que son más fáciles de escribir y de dar mantenimiento, una práctica común es recodificar en lenguaje ensamblador aquellas rutinas que han causado cuellos de botella en el procesamiento. Los programas residentes y rutinas de servicio de interrupción casi siempre son desarrollados en el lenguaje ensamblador.