SlideShare a Scribd company logo
1 of 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

More Related Content

What's hot

2.2 relación de cmm con psp y tsp
2.2 relación de cmm con psp  y tsp2.2 relación de cmm con psp  y tsp
2.2 relación de cmm con psp y tsp
eeelllkkk
 
Unidad 3 topicos avanzados de programacion
Unidad 3 topicos avanzados de programacionUnidad 3 topicos avanzados de programacion
Unidad 3 topicos avanzados de programacion
Irving Che
 
Unidad 1.3 Analisis De Requerimientos
Unidad 1.3 Analisis De RequerimientosUnidad 1.3 Analisis De Requerimientos
Unidad 1.3 Analisis De Requerimientos
Sergio Sanchez
 
Mapa conceptual sobre
Mapa conceptual sobre Mapa conceptual sobre
Mapa conceptual sobre
Juan Anaya
 
Calidad en el desarrollo de software
Calidad en el desarrollo de softwareCalidad en el desarrollo de software
Calidad en el desarrollo de software
Lupithaa Guerrero
 

What's hot (20)

Unidad 4
Unidad 4Unidad 4
Unidad 4
 
Principios diseño del software
Principios diseño del software Principios diseño del software
Principios diseño del software
 
Procedimiento Para Utilizar Flex Y Bison
Procedimiento Para Utilizar Flex Y Bison Procedimiento Para Utilizar Flex Y Bison
Procedimiento Para Utilizar Flex Y Bison
 
Analizador Sintáctico
Analizador SintácticoAnalizador Sintáctico
Analizador Sintáctico
 
2.2 relación de cmm con psp y tsp
2.2 relación de cmm con psp  y tsp2.2 relación de cmm con psp  y tsp
2.2 relación de cmm con psp y tsp
 
Taller de Base de Datos - Unidad 7 Conectividad
Taller de Base de Datos - Unidad 7 ConectividadTaller de Base de Datos - Unidad 7 Conectividad
Taller de Base de Datos - Unidad 7 Conectividad
 
Unidad 3 topicos avanzados de programacion
Unidad 3 topicos avanzados de programacionUnidad 3 topicos avanzados de programacion
Unidad 3 topicos avanzados de programacion
 
Unidad 1.3 Analisis De Requerimientos
Unidad 1.3 Analisis De RequerimientosUnidad 1.3 Analisis De Requerimientos
Unidad 1.3 Analisis De Requerimientos
 
Proceso unificado de desarrollo de software
Proceso unificado de desarrollo de softwareProceso unificado de desarrollo de software
Proceso unificado de desarrollo de software
 
Sistemas operativos - Sistemas De Archivos - reporte unidad 5
Sistemas operativos - Sistemas De Archivos - reporte unidad 5Sistemas operativos - Sistemas De Archivos - reporte unidad 5
Sistemas operativos - Sistemas De Archivos - reporte unidad 5
 
Herramientas case full informacion
Herramientas case full informacionHerramientas case full informacion
Herramientas case full informacion
 
Mapa conceptual sobre
Mapa conceptual sobre Mapa conceptual sobre
Mapa conceptual sobre
 
Sistemas de Informacion para la toma de decisiones
Sistemas de Informacion para la toma de decisionesSistemas de Informacion para la toma de decisiones
Sistemas de Informacion para la toma de decisiones
 
Factores de calidad según mc call
Factores de calidad según mc callFactores de calidad según mc call
Factores de calidad según mc call
 
Herramientas Case
Herramientas CaseHerramientas Case
Herramientas Case
 
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADORUNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
 
Arquitectura 3 Capas
Arquitectura 3 CapasArquitectura 3 Capas
Arquitectura 3 Capas
 
Cuadro comparativo
Cuadro comparativoCuadro comparativo
Cuadro comparativo
 
Estándares para el Modelado de Procesos de Negocios
Estándares para el Modelado de Procesos de NegociosEstándares para el Modelado de Procesos de Negocios
Estándares para el Modelado de Procesos de Negocios
 
Calidad en el desarrollo de software
Calidad en el desarrollo de softwareCalidad en el desarrollo de software
Calidad en el desarrollo de software
 

Viewers also liked (11)

Lenguaje Ensamblador
Lenguaje EnsambladorLenguaje Ensamblador
Lenguaje Ensamblador
 
oswaldo
oswaldooswaldo
oswaldo
 
Protección de Datos: Casos reales de sanciones por incumplimiento de la ley
Protección de Datos: Casos reales de sanciones por incumplimiento de la leyProtección de Datos: Casos reales de sanciones por incumplimiento de la ley
Protección de Datos: Casos reales de sanciones por incumplimiento de la ley
 
lenguaje ensamblado
lenguaje ensambladolenguaje ensamblado
lenguaje ensamblado
 
Unidad 3 ensambladores
Unidad 3 ensambladoresUnidad 3 ensambladores
Unidad 3 ensambladores
 
Enlazadores cargadores-by-gadd
Enlazadores cargadores-by-gaddEnlazadores cargadores-by-gadd
Enlazadores cargadores-by-gadd
 
Cargadores
CargadoresCargadores
Cargadores
 
Elementos de la programación de sistemas
Elementos de la programación de sistemasElementos de la programación de sistemas
Elementos de la programación de sistemas
 
1.4 ensambladores y compiladores
1.4 ensambladores y compiladores1.4 ensambladores y compiladores
1.4 ensambladores y compiladores
 
Clasificacion de Interpretes
Clasificacion de InterpretesClasificacion de Interpretes
Clasificacion de Interpretes
 
Presupuesto publico
Presupuesto publicoPresupuesto publico
Presupuesto publico
 

Similar to Ensambladores

Compilador 22 (1)
Compilador 22 (1)Compilador 22 (1)
Compilador 22 (1)
still01
 
Lenguaje Ensamblador00
Lenguaje Ensamblador00Lenguaje Ensamblador00
Lenguaje Ensamblador00
Car_00_01
 
Lenguaje de programacion
Lenguaje de programacionLenguaje de programacion
Lenguaje de programacion
jafp21
 
Compiladores y analizador lexicos
Compiladores y analizador lexicosCompiladores y analizador lexicos
Compiladores y analizador lexicos
diana8320
 
Traductores de lenguajes de programación
Traductores de lenguajes de programaciónTraductores de lenguajes de programación
Traductores de lenguajes de programación
Daniela Brignolo
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
rIsAdA
 

Similar to Ensambladores (20)

Tipos De Ensambladores
Tipos De EnsambladoresTipos De Ensambladores
Tipos De 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
 
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
 
Lenguaje ensambldor
Lenguaje ensambldorLenguaje ensambldor
Lenguaje ensambldor
 
Proyecto fernando compiladores 1
Proyecto fernando compiladores 1Proyecto fernando compiladores 1
Proyecto fernando compiladores 1
 
Introduccion
IntroduccionIntroduccion
Introduccion
 
Compilador 22 (1)
Compilador 22 (1)Compilador 22 (1)
Compilador 22 (1)
 
Assembler apesteguia (1)
Assembler apesteguia (1)Assembler apesteguia (1)
Assembler apesteguia (1)
 
Lenguaje Ensamblador00
Lenguaje Ensamblador00Lenguaje Ensamblador00
Lenguaje Ensamblador00
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Lenguaje de programacion
Lenguaje de programacionLenguaje de programacion
Lenguaje de programacion
 
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
 

More from hampacomun (8)

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
 
Ensambladores
EnsambladoresEnsambladores
Ensambladores
 

Recently uploaded

2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
RigoTito
 
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
MiNeyi1
 
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
MiNeyi1
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
EliaHernndez7
 

Recently uploaded (20)

Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJOACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
 
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativa
 
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
 
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
SESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.docSESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.doc
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
 
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 

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.