SlideShare una empresa de Scribd logo
1 de 16
Descargar para leer sin conexión
Gustavo Dávila 2012
 El lenguaje Assembly: Es un tipo de lenguaje
de bajo nivel utilizado para escribir
programas informáticos, y constituye la
representación más directa del código
máquina específico para cada arquitectura de
computadoras legible por un programador.
 org 100h
 ; set video mode
 mov ax, 3 ; text mode 80x25, 16 colors, 8 pages (ah=0, al=3)
 int 10h ; do it!
 ; cancel blinking and enable all 16 colors:
 mov ax, 1003h
 mov bx, 0
 int 10h
 ; set segment register:
 mov ax, 0b800h
 mov ds, ax
 El término ensamblador se refiere a un tipo
de programa informático que se encarga de
traducir un archivo fuente escrito en un
lenguaje Assembly, a un archivo objeto que
contiene código máquina, ejecutable
directamente por la máquina para la que se
ha generado.
 Ejemplos: MASM
 TASM
 Lenguaje Assembly (archivo fuente)
 Código Maquina (archivo objeto)
La tarea fundamental de un ensamblador es traducir
un programa en lenguaje de assembly al código
correspondiente en lenguaje de máquina.
 El programa ensamblador lee el archivo
escrito en lenguaje Assembly y sustituye cada
uno de los códigos nemotécnicos que
aparecen por su código de operación
correspondiente en sistema binario para la
plataforma que se eligió como destino en las
opciones específicas del ensamblador.
 Para realizar la tarea de traducción se apoya
en unas tablas “equivalencia” y “Símbolos”
Convert assembly language file (.asm)
into an executable file (.obj).
First Pass:
• scan program file
• find all labels and calculate the corresponding addresses;
this is called the symbol table
Second Pass:
• convert instructions to machine language,
using information from symbol table
 Es una estructura en la cual se realizan varias
operaciones tales como: insertar, borrar y buscar la
información sobre los símbolos (aquellos elementos que
no están presentes en la tabla de equivalencia) que van
apareciendo a lo largo del programa, Por ejemplo: los
identificadores (variables y funciones), etiquetas,
definidos por el usuario.
 Alguno de los campos presente en la tabla de símbolos
tenemos:
 Tipo de dato
 Dirección de memoria
 Segmento al que pertenece
 A cada una de las partes de una linea de código en ensamblador se le
conoce como token, por ejemplo en la linea de código
 MOV AX,Var
 tenemos tres tokens, la instrucción MOV, el operando AX, y el operando
VAR. El ensamblador lo que hace para generar el código OBJ es leer cada
uno de los tokens y buscarlo en una tabla interna de "equivalencias"
conocida como tabla de palabras reservadas, que es donde se
encuentran todos los significados de los mnemónicos que utilizamos
como instrucciones.
 Siguiendo este proceso, el ensamblador lee MOV, lo busca en su tabla y
al encontrarlo lo identifica como una instrucción del procesador, así
mismo lee AX y lo reconoce como un registro del procesador, pero al
momento de buscar el token Var en la tabla de palabras reservadas no lo
encuentra y entonces lo busca en la tabla de símbolos que es una tabla
donde se encuentran los nombres de las variables, constantes y
etiquetas utilizadas en el programa donde se incluye su dirección en
memoria y el tipo de datos que contiene.
 < THE SYMBOL TABLE > trigonometrico.exe --
 ======================================================
 Name Offset Size Type Segment
 ======================================================
 MENUT 00000 1 VAR data
 CADENA42 0050A 1 VAR data
 CADENA43 0052C 1 VAR data
 PDESF2 00778 2 VAR data
 CODE 00088 -5 SEGMENT (ITSELF)
 INICIO 00000 -1 LABEL code
 MENU 00005 -1 LABEL code
 TRIANGULO 00055 -1 LABEL code
 ESFERA 007C1 -1 LABEL code
 SALIRPROGRAMA 0091E -1 LABEL code
 =====================================================
• Cuando el programador invoca al ensamblador, dicho
programa detecta e informa si encontró o no errores
en la fase traducción. Por otra parte, en caso
encontrar errores, el ensamblador, debe generar
mensajes significativos para orientar al programado
donde esta dicho error y así pueda ser solventado:
Parte de las actividades del gestor son:
• Detectar errores léxicos (ortográficos)
• Detectar errores sintácticos (construcciones incorrectas)
• Detectar errores semánticos (p. ej. uso de variables no
declaradas, errores de tipo, etc).
 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 pseudo instrucció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.
 La diferencia entre los ensambladores radica en
la forma de generar el código y en las directivas
con que cuente, aunque estas diferencias son
mínimas. El código Assembly no cambia puesto
que los microprocesadores con los que se va a
trabajar son comunes. Así, todos los programas
que se creen con un ensamblador en particular
podrán ser ensamblados en otro, cambiando las
pseudo-operaciones no reconocidas por el
equivalente indicado en el manual de referencia
del paquete empleado.
 El propósito para el que se crearon este tipo de
aplicaciones es la de facilitar la escritura de
programas, ya que escribir directamente en
código binario, que es el único código entendible
por la computadora, es en la práctica imposible.
 La evolución de los lenguajes de programación a
partir del lenguaje Assembly originó también la
evolución de este programa ensamblador hacia
lo que se conoce como programa compilador.

Más contenido relacionado

La actualidad más candente

Paradigmas de programacion
Paradigmas de programacion Paradigmas de programacion
Paradigmas de programacion Anel Sosa
 
Introducción a la Programación.
Introducción a la Programación.Introducción a la Programación.
Introducción a la Programación.guestdf1874
 
Arquitectura de los sistemas operativos
Arquitectura de los sistemas operativosArquitectura de los sistemas operativos
Arquitectura de los sistemas operativosXavier Jose
 
Lenguajes libre de contexto
Lenguajes libre de contextoLenguajes libre de contexto
Lenguajes libre de contextoVerónica Es'Loo
 
Una metodología para el desarrollo de sistemas de información
Una metodología para el desarrollo de sistemas de informaciónUna metodología para el desarrollo de sistemas de información
Una metodología para el desarrollo de sistemas de informaciónLeonardo Fleire Morales
 
Traductores de lenguajes de programación
Traductores de lenguajes de programaciónTraductores de lenguajes de programación
Traductores de lenguajes de programaciónDaniela Brignolo
 
Generación código intermedio 2
Generación código intermedio 2Generación código intermedio 2
Generación código intermedio 2Humano Terricola
 
Gestión de Proyectos de Software - Unidad 1 Introducción a la Gestión de Proy...
Gestión de Proyectos de Software - Unidad 1 Introducción a la Gestión de Proy...Gestión de Proyectos de Software - Unidad 1 Introducción a la Gestión de Proy...
Gestión de Proyectos de Software - Unidad 1 Introducción a la Gestión de Proy...José Antonio Sandoval Acosta
 
SEGURIDAD EN LINUX vs SEGURIDAD EN WINDOWS
SEGURIDAD EN LINUX vs SEGURIDAD EN WINDOWSSEGURIDAD EN LINUX vs SEGURIDAD EN WINDOWS
SEGURIDAD EN LINUX vs SEGURIDAD EN WINDOWSFlakita Pinduisaca
 
Típos de grámatica y más, exposición de compiladores e intérpretes
Típos de grámatica y más, exposición de compiladores e intérpretesTípos de grámatica y más, exposición de compiladores e intérpretes
Típos de grámatica y más, exposición de compiladores e intérpretesElmer André Boulangger Alberca
 
Trabajo de compiladores completo alexandra
Trabajo de compiladores completo alexandraTrabajo de compiladores completo alexandra
Trabajo de compiladores completo alexandraAlexandraMolinaSanchez
 
Paradigmas de programacion
Paradigmas de programacionParadigmas de programacion
Paradigmas de programacionyamy matin
 

La actualidad más candente (20)

Unidad1 Lenguajes y automatas
Unidad1 Lenguajes y automatasUnidad1 Lenguajes y automatas
Unidad1 Lenguajes y automatas
 
Clase 1. lógica de la programación
Clase 1. lógica de la programaciónClase 1. lógica de la programación
Clase 1. lógica de la programación
 
Paradigmas de programacion
Paradigmas de programacion Paradigmas de programacion
Paradigmas de programacion
 
Introducción a la Programación.
Introducción a la Programación.Introducción a la Programación.
Introducción a la Programación.
 
Mapa mental linux
Mapa mental linuxMapa mental linux
Mapa mental linux
 
Arquitectura de los sistemas operativos
Arquitectura de los sistemas operativosArquitectura de los sistemas operativos
Arquitectura de los sistemas operativos
 
Lenguajes libre de contexto
Lenguajes libre de contextoLenguajes libre de contexto
Lenguajes libre de contexto
 
Una metodología para el desarrollo de sistemas de información
Una metodología para el desarrollo de sistemas de informaciónUna metodología para el desarrollo de sistemas de información
Una metodología para el desarrollo de sistemas de información
 
3.creacion de componentes visuales
3.creacion de componentes visuales3.creacion de componentes visuales
3.creacion de componentes visuales
 
Traductores de lenguajes de programación
Traductores de lenguajes de programaciónTraductores de lenguajes de programación
Traductores de lenguajes de programación
 
Generación código intermedio 2
Generación código intermedio 2Generación código intermedio 2
Generación código intermedio 2
 
Gestión de Proyectos de Software - Unidad 1 Introducción a la Gestión de Proy...
Gestión de Proyectos de Software - Unidad 1 Introducción a la Gestión de Proy...Gestión de Proyectos de Software - Unidad 1 Introducción a la Gestión de Proy...
Gestión de Proyectos de Software - Unidad 1 Introducción a la Gestión de Proy...
 
SEGURIDAD EN LINUX vs SEGURIDAD EN WINDOWS
SEGURIDAD EN LINUX vs SEGURIDAD EN WINDOWSSEGURIDAD EN LINUX vs SEGURIDAD EN WINDOWS
SEGURIDAD EN LINUX vs SEGURIDAD EN WINDOWS
 
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
 
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
 
Exposición de Lenguajes de Programación
Exposición de Lenguajes de ProgramaciónExposición de Lenguajes de Programación
Exposición de Lenguajes de Programación
 
Típos de grámatica y más, exposición de compiladores e intérpretes
Típos de grámatica y más, exposición de compiladores e intérpretesTípos de grámatica y más, exposición de compiladores e intérpretes
Típos de grámatica y más, exposición de compiladores e intérpretes
 
Traductor y su estructura
Traductor y su estructuraTraductor y su estructura
Traductor y su estructura
 
Trabajo de compiladores completo alexandra
Trabajo de compiladores completo alexandraTrabajo de compiladores completo alexandra
Trabajo de compiladores completo alexandra
 
Paradigmas de programacion
Paradigmas de programacionParadigmas de programacion
Paradigmas de programacion
 

Similar a Unidad 3 ensambladores

Similar a Unidad 3 ensambladores (20)

Jin Unidad6
Jin Unidad6Jin Unidad6
Jin Unidad6
 
Programacion Lenguaje Assembler 25 10 07
Programacion Lenguaje Assembler 25 10 07Programacion Lenguaje Assembler 25 10 07
Programacion Lenguaje Assembler 25 10 07
 
Mipag web
Mipag webMipag web
Mipag web
 
Evolucion de los compiladores1
Evolucion de los compiladores1Evolucion de los compiladores1
Evolucion de los compiladores1
 
Compiladores
CompiladoresCompiladores
Compiladores
 
Compiladores
CompiladoresCompiladores
Compiladores
 
Resumencap1 carmen vargas_jeremycamacho
Resumencap1 carmen vargas_jeremycamachoResumencap1 carmen vargas_jeremycamacho
Resumencap1 carmen vargas_jeremycamacho
 
Exposición ted
Exposición tedExposición ted
Exposición ted
 
Introduccion
IntroduccionIntroduccion
Introduccion
 
Estructura de un compilador 2
Estructura de un compilador 2Estructura de un compilador 2
Estructura de un compilador 2
 
Grupo 1 proceso de lenguajes i
Grupo 1 proceso de lenguajes iGrupo 1 proceso de lenguajes i
Grupo 1 proceso de lenguajes i
 
Actividad26
Actividad26Actividad26
Actividad26
 
Clase10 2-lenguaje ensamblador
Clase10 2-lenguaje ensambladorClase10 2-lenguaje ensamblador
Clase10 2-lenguaje ensamblador
 
Presentación1.pptx
Presentación1.pptxPresentación1.pptx
Presentación1.pptx
 
Introduccion al assembler[1]
Introduccion al assembler[1]Introduccion al assembler[1]
Introduccion al assembler[1]
 
Introduccion al assembler
Introduccion al assemblerIntroduccion al assembler
Introduccion al assembler
 
Compiladores
CompiladoresCompiladores
Compiladores
 
Curso prog sist
Curso prog sistCurso prog sist
Curso prog sist
 
Compiladores Ex..ppt
Compiladores Ex..pptCompiladores Ex..ppt
Compiladores Ex..ppt
 
Compiladores conceptos
Compiladores conceptosCompiladores conceptos
Compiladores conceptos
 

Más de Gustavo Davila

Enlazadores cargadores-by-gadd
Enlazadores cargadores-by-gaddEnlazadores cargadores-by-gadd
Enlazadores cargadores-by-gaddGustavo Davila
 
Recursos educativo abiertos para sistema de computación
Recursos educativo abiertos para sistema de computaciónRecursos educativo abiertos para sistema de computación
Recursos educativo abiertos para sistema de computaciónGustavo Davila
 
Camtasia getting started guide
Camtasia getting started guideCamtasia getting started guide
Camtasia getting started guideGustavo Davila
 
Lenguaje ensamblador basico
Lenguaje ensamblador basicoLenguaje ensamblador basico
Lenguaje ensamblador basicoGustavo Davila
 
Arquitectura del Computador
Arquitectura del ComputadorArquitectura del Computador
Arquitectura del ComputadorGustavo Davila
 
Bloque pacie-by-gustavo-davila
Bloque pacie-by-gustavo-davilaBloque pacie-by-gustavo-davila
Bloque pacie-by-gustavo-davilaGustavo Davila
 

Más de Gustavo Davila (10)

Enlazadores cargadores-by-gadd
Enlazadores cargadores-by-gaddEnlazadores cargadores-by-gadd
Enlazadores cargadores-by-gadd
 
Recursos educativo abiertos para sistema de computación
Recursos educativo abiertos para sistema de computaciónRecursos educativo abiertos para sistema de computación
Recursos educativo abiertos para sistema de computación
 
Camtasia getting started guide
Camtasia getting started guideCamtasia getting started guide
Camtasia getting started guide
 
Manejo de archivo
Manejo de archivoManejo de archivo
Manejo de archivo
 
Lenguaje ensamblador basico
Lenguaje ensamblador basicoLenguaje ensamblador basico
Lenguaje ensamblador basico
 
Risc y Cisc
Risc y CiscRisc y Cisc
Risc y Cisc
 
Sistema Númerico
Sistema NúmericoSistema Númerico
Sistema Númerico
 
Arquitectura del Computador
Arquitectura del ComputadorArquitectura del Computador
Arquitectura del Computador
 
Bloque pacie-by-gustavo-davila
Bloque pacie-by-gustavo-davilaBloque pacie-by-gustavo-davila
Bloque pacie-by-gustavo-davila
 
Slideshare grupo-i
Slideshare grupo-iSlideshare grupo-i
Slideshare grupo-i
 

Último

Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfpatriciaines1993
 
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADOTIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADOPsicoterapia Holística
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxYadi Campos
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptxdeimerhdz21
 
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptxRESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptxpvtablets2023
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfapunteshistoriamarmo
 
Infografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdfInfografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdfAlfaresbilingual
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024IES Vicent Andres Estelles
 
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_.pptxRigoTito
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Juan Martín Martín
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024IES Vicent Andres Estelles
 
Abril 2024 - Maestra Jardinera Ediba.pdf
Abril 2024 -  Maestra Jardinera Ediba.pdfAbril 2024 -  Maestra Jardinera Ediba.pdf
Abril 2024 - Maestra Jardinera Ediba.pdfValeriaCorrea29
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptAlberto Rubio
 
semana 4 9NO Estudios sociales.pptxnnnn
semana 4  9NO Estudios sociales.pptxnnnnsemana 4  9NO Estudios sociales.pptxnnnn
semana 4 9NO Estudios sociales.pptxnnnnlitzyleovaldivieso
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioELIASAURELIOCHAVEZCA1
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...jlorentemartos
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfUPTAIDELTACHIRA
 

Último (20)

Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
 
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
 
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADOTIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptx
 
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptxRESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdf
 
Infografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdfInfografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdf
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024
 
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
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024
 
Abril 2024 - Maestra Jardinera Ediba.pdf
Abril 2024 -  Maestra Jardinera Ediba.pdfAbril 2024 -  Maestra Jardinera Ediba.pdf
Abril 2024 - Maestra Jardinera Ediba.pdf
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
 
semana 4 9NO Estudios sociales.pptxnnnn
semana 4  9NO Estudios sociales.pptxnnnnsemana 4  9NO Estudios sociales.pptxnnnn
semana 4 9NO Estudios sociales.pptxnnnn
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
 
Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
 

Unidad 3 ensambladores

  • 2.
  • 3.  El lenguaje Assembly: Es un tipo de lenguaje de bajo nivel utilizado para escribir programas informáticos, y constituye la representación más directa del código máquina específico para cada arquitectura de computadoras legible por un programador.
  • 4.  org 100h  ; set video mode  mov ax, 3 ; text mode 80x25, 16 colors, 8 pages (ah=0, al=3)  int 10h ; do it!  ; cancel blinking and enable all 16 colors:  mov ax, 1003h  mov bx, 0  int 10h  ; set segment register:  mov ax, 0b800h  mov ds, ax
  • 5.  El término ensamblador se refiere a un tipo de programa informático que se encarga de traducir un archivo fuente escrito en un lenguaje Assembly, a un archivo objeto que contiene código máquina, ejecutable directamente por la máquina para la que se ha generado.  Ejemplos: MASM  TASM
  • 6.  Lenguaje Assembly (archivo fuente)  Código Maquina (archivo objeto) La tarea fundamental de un ensamblador es traducir un programa en lenguaje de assembly al código correspondiente en lenguaje de máquina.
  • 7.  El programa ensamblador lee el archivo escrito en lenguaje Assembly y sustituye cada uno de los códigos nemotécnicos que aparecen por su código de operación correspondiente en sistema binario para la plataforma que se eligió como destino en las opciones específicas del ensamblador.  Para realizar la tarea de traducción se apoya en unas tablas “equivalencia” y “Símbolos”
  • 8. Convert assembly language file (.asm) into an executable file (.obj). First Pass: • scan program file • find all labels and calculate the corresponding addresses; this is called the symbol table Second Pass: • convert instructions to machine language, using information from symbol table
  • 9.  Es una estructura en la cual se realizan varias operaciones tales como: insertar, borrar y buscar la información sobre los símbolos (aquellos elementos que no están presentes en la tabla de equivalencia) que van apareciendo a lo largo del programa, Por ejemplo: los identificadores (variables y funciones), etiquetas, definidos por el usuario.  Alguno de los campos presente en la tabla de símbolos tenemos:  Tipo de dato  Dirección de memoria  Segmento al que pertenece
  • 10.  A cada una de las partes de una linea de código en ensamblador se le conoce como token, por ejemplo en la linea de código  MOV AX,Var  tenemos tres tokens, la instrucción MOV, el operando AX, y el operando VAR. El ensamblador lo que hace para generar el código OBJ es leer cada uno de los tokens y buscarlo en una tabla interna de "equivalencias" conocida como tabla de palabras reservadas, que es donde se encuentran todos los significados de los mnemónicos que utilizamos como instrucciones.  Siguiendo este proceso, el ensamblador lee MOV, lo busca en su tabla y al encontrarlo lo identifica como una instrucción del procesador, así mismo lee AX y lo reconoce como un registro del procesador, pero al momento de buscar el token Var en la tabla de palabras reservadas no lo encuentra y entonces lo busca en la tabla de símbolos que es una tabla donde se encuentran los nombres de las variables, constantes y etiquetas utilizadas en el programa donde se incluye su dirección en memoria y el tipo de datos que contiene.
  • 11.  < THE SYMBOL TABLE > trigonometrico.exe --  ======================================================  Name Offset Size Type Segment  ======================================================  MENUT 00000 1 VAR data  CADENA42 0050A 1 VAR data  CADENA43 0052C 1 VAR data  PDESF2 00778 2 VAR data  CODE 00088 -5 SEGMENT (ITSELF)  INICIO 00000 -1 LABEL code  MENU 00005 -1 LABEL code  TRIANGULO 00055 -1 LABEL code  ESFERA 007C1 -1 LABEL code  SALIRPROGRAMA 0091E -1 LABEL code  =====================================================
  • 12. • Cuando el programador invoca al ensamblador, dicho programa detecta e informa si encontró o no errores en la fase traducción. Por otra parte, en caso encontrar errores, el ensamblador, debe generar mensajes significativos para orientar al programado donde esta dicho error y así pueda ser solventado: Parte de las actividades del gestor son: • Detectar errores léxicos (ortográficos) • Detectar errores sintácticos (construcciones incorrectas) • Detectar errores semánticos (p. ej. uso de variables no declaradas, errores de tipo, etc).
  • 13.  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 pseudo instrucció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.
  • 14.
  • 15.  La diferencia entre los ensambladores radica en la forma de generar el código y en las directivas con que cuente, aunque estas diferencias son mínimas. El código Assembly no cambia puesto que los microprocesadores con los que se va a trabajar son comunes. Así, todos los programas que se creen con un ensamblador en particular podrán ser ensamblados en otro, cambiando las pseudo-operaciones no reconocidas por el equivalente indicado en el manual de referencia del paquete empleado.
  • 16.  El propósito para el que se crearon este tipo de aplicaciones es la de facilitar la escritura de programas, ya que escribir directamente en código binario, que es el único código entendible por la computadora, es en la práctica imposible.  La evolución de los lenguajes de programación a partir del lenguaje Assembly originó también la evolución de este programa ensamblador hacia lo que se conoce como programa compilador.