El término ensamblador (del inglés assembler) se refiere a un tipo de software traductor que se encarga de traducir un archivo fuente escrito en un lenguaje Assembler a un archivo cuyas instrucciones estén en código máquina, que es ejecutable directamente por el procesador para el que se creó.
KELA Presentacion Costa Rica 2024 - evento Protégeles
Ensambladores.ppt
1. El término ensamblador (del inglés assembler) se refiere a un tipo de
software traductor que se encarga de traducir un archivo fuente escrito en
un lenguaje Assembler a un archivo cuyas instrucciones estén en código
máquina, que es ejecutable directamente por el procesador para el que se
creó.
Traductores de
lenguaje
Ensambladores
2. Tipos de
Ensambladores
Ensambladores cruzados: Se denominan así a los ensambladores que se
utilizan en una computadora que posee el procesador diferente al que tendrán
las computadoras donde se va a ejecutar el programa objeto producido.
Ensambladores residentes: Son aquellas que permanecen en la memoria
principal de la computadora y cargar para su ejecución al programa objeto
producido.
3. Tipos de
Ensambladores
Microensambladores: Al programa que indica al intérprete de instrucciones de la
CPU como debe actuar se le denomina microprograma. El programa que ayuda a
realizar este microprograma se llama microensamblador.
Macroensambladores: Son ensambladores que permiten al usuario reemplazar
secuencias iterativas de instrucciones con un nombre creado por el usuario para
dicha secuencia.
4. El programa enlazador (linker) es el encargado de relacionar (en inglés link es unir) los
distintos módulos en un solo programa. Primero produce la reubicación de módulos, a partir
de determinar la dirección de comienzo e incrementarla con la TDA o con la TNSE, y la
determinación de las referencias externas, para lo que requiere del usuario los nombres de
los módulos y las posiciones absolutas que éste desea.
Ensambladores
5. Es un traductor de lenguaje que traduce una instrucción en lenguaje de alto
nivel a lenguaje de máquina y, de ser correcta, la ejecuta inmediatamente. Si
encuentra un error de sintaxis, lo señala e interrumpe la ejecución.
Interpretes
6. Compiladores
Es un traductor de lenguaje que traduce un programa escrito en lenguaje de alto nivel
a lenguaje de máquina, pero tiene algunas diferencias significativas respecto del
intérprete. Fundamentalmente, separa la traducción de la ejecución del programa y
agiliza tanto una como otra.
7. Comparación entre
Compilador e Intérprete
Las diferencias entre intérprete y compilador son:
1. Un intérprete traduce instrucciones de alto nivel en una forma intermedia para
ser ejecutado. En contraste, un compilador, traduce instrucciones de alto nivel
directamente en lenguaje de máquina.
2. El intérprete traduce un programa línea a línea mientras que el compilador
traduce el programa entero y luego lo ejecuta.
3. El intérprete detecta si el programa tiene errores y permite su depuración durante
el proceso de ejecución, mientras que el compilador espera hasta terminar la
compilación de todo el programa para generar un informe de errores.
4. Un programa compilado es más seguro que uno interpretado, porque no contiene
el código fuente, que puede ser modificado incorrectamente por el usuario.
5. Ambos, intérpretes y compiladores están disponibles en la mayoría de los
lenguajes de alto nivel.
Notas del editor
1
Micro ensambladores: Al programa que indica al intérprete de instrucciones de la CPU como debe actuar se le denomina microprograma. El programa que ayuda a realizar este microprograma se llama micro ensamblador.Macro ensambladores: Son ensambladores que permiten el uso de macroinstrucciones.Ensambladores de una fase: Leen una línea y la traducen directamente para producir una instrucción de lenguaje maquina o la ejecuta si se trata de una pseudosinstrucción. Se construye la tabla de símbolos a medida que aparecen las definiciones de variables, etiquetas, etc.Ensambladores de dos fases: Realiza la traducción en dos etapas: 1° fase leen el programa fuente y construyen la tabla de símbolos, 2° fase vuelve a leer el programa fuente y pueden ir traduciendo totalmente pues reconocen la totalidad de los símbolos.
El macroensamblador generara una serie de instrucciones en lenguaje de maquina (macroinstrucciones) que corresponden al macro. Los macros son una poderosa herramienta de programación, ya que ahorran tiempo del dedicado a la programación, al eliminar la necesidad de reescribir exactamente la misma secuencia de instrucciones varias veces. Se reduce la probabilidad de error al escribir el código.
4
5
La ejecución del programa sólo se realiza cuando la compilación terminó de manera satisfactoria. Permite obtener el código de máquina del programa compilado y hacer un resguardo del mismo en una memoria externa. Luego se puede convocar al programa ejecutable tantas veces como sea necesario, con la única condición de que se lo transfiera desde la memoria externa hacia la memoria principal. La compilación también proporciona un informe del programa fuente con los errores. La relación entre las instrucciones de alto nivel y las de máquina son 1 a n (siendo n > 1), motivo por el cual las instrucciones en lenguaje de alto nivel suelen denominarse sentencias.
El proceso de compilación de un programa puede interpretarse en tres etapas:
Análisis del léxico: se separa la cadena de caracteres en símbolos elementales, como se especificó antes en nombres de datos, signos de puntuación y palabras especiales, también llamadas palabras reservadas.
Análisis sintáctico: se determina la estructura sintáctica de acuerdo con un patrón de reglas gramaticales correspondiente al lenguaje que se utilice y se analiza la secuencia de señales generadas en el proceso de análisis de léxico.
Generación de código: se genera el código de las instrucciones para cada elemento sintáctico del programa.