SlideShare una empresa de Scribd logo
Ing. Jorge Irey [ARQUITECTURA DE COMPUTADORES ] Nivel de Lenguaje Ensamblador Febrero 2008 Universidad Nacional del Callao Escuela de Post Grado Maestría en Ingeniería de Sistemas
INTRODUCCIÓN
Niveles de máquina Traductores    traducción implica 2 pasos Intérpretes    interpretación implica 1 paso Introducción  Lenguaje  Fuente Lenguaje  Objetivo Ejecución Lenguaje  Fuente Ejecución
¿ Qué es el lenguaje Ensamblador ?  Traductor Lenguaje  Fuente : Representación simbólica de un  lenguaje de máquina numérico Traductor :  Ensamblador Lenguaje Ensamblador Lenguaje  Fuente : Lenguaje de Alto Nivel Traductor :  COMPILADOR Lenguaje De Alto Nivel Lenguaje Ensamblador es aquel en el cual cada enunciado del  programa produce exactamente una instrucción de máquina
Es más fácil programar en ensamblador : el uso de nombres y direcciones simbólicas es una gran ventaja frente a direcciones binarias El programador en lenguaje ensamblador tiene acceso a las características e instrucciones disponibles en la máquina objetivo. Restricción : un programa en lenguaje ensamblador sólo puede ejecutarse en una familia de máquinas. ¿ Usar Ensamblador y no lenguaje de máquina ?
La programación en lenguaje ensamblador es DIFÍCIL !!! A pesar de ello se usa por razones de: Desempeño  : El lenguaje ensablador produce código más rápido y pequeño Acceso a la máquina  : a veces se requiere acceso total al hardware    manejo de interrupciones …  PERO …
La estructura de un enunciado en ensamblador refleja la estructura de la instrucción de máquina que representa.  La sintaxis es muy parecida por lo que puede hablarse de un lenguaje ensamblador genérico. Formato de un enunciado en Ensamblador
Formato de un enunciado en Ensamblador (2) Cálculo Comandos para reserva de memoria
CAMPO 1 : Etiqueta CAMPO 2 : Código de Operación CAMPO 3 : Operandos CAMPO 4 : Comentarios Formato de un enunciado en Ensamblador (3)
Registros  Intel    EAX, EBX, ECX  Motorola    D0, D1, D2  SPARC    %R1, %R2 Instrucción: Cargar un registro con el contenido de la memoria y almacenar el registro en memoria  Intel    MOV Motorola    MOVE  SPARC    LD y ST Algunas diferencias …
Operandos : byte, palabra y largos  Intel    usa registros : EAX (32 bits), AX (16 bits), AL y AH (8 bits) Motorola    usa SUFIJOS al códigos de operación ( L= long, B = byte , W = word ) SPARC    usa diferentes códigos de operación para diferentes longitudes ( LDSB, LDSH LDSW) Reserva para espacio de datos:  Intel    DW (Define Word) Motorola    DC (Define constant)  SPARC    .WORD Algunas diferencias …
Además de especificar qué instrucciones de máquina deben ejecutarse, un programa en lenguaje ensamblador puede contener comandos para el ensamblador mismo. Ejemplo: asignar espacio en la memoria Estos comandos se llaman “ seudoinstrucciones ” o tambien “ directrices de ensamblador ” Seudoinstrucciones
Seudoinstrucciones ( 2)
MACROS
Es una forma de asignar un nombre a un fragmento de texto. Definición  Sin macros Con macros
Una cabecera de macro que da el nombre a la macro que se está definiendo El texto que conforma el cuerpo de la macro Una seudoinstrucción que marca el final de la definición de la macro. El ensamblador guarda una tabla de denifición de macros. Concepto : Llamada a macro Concepto: Expansión de Macro    se realiza durante el  ensamblado  ( no durante la ejecución) Al final del ensamblado, la tabla de definición de macros se desecha. Partes básicas
Macro vs. Procedimiento
Macros con parámetros  Parámetros Formales Parámetros Reales
EL PROCESO DE ENSAMBLADO
El problema de la referencia hacia delante : se referencia a un símbolo que aún no ha sido definido. Estrategias: Leer el fuente 2 veces :  1era pasada    guarda una tabla de símbolos y etiquetas 2da pasada    ya se conocen todas las direcciones de las etiquetas. Leer el fuente 1 vez: (ahorra E/S) 1era pasada    se convierte a una forma intermedia y se almacena en una tabla 2da pasada    se lee la tabla y se ensambla Ensamblador de 2 pasadas
Función : construir la tabla de símbolos Variable ILC ( Instruction Location Counter) Primera pasada
Se emplean 3 tablas: Tabla de Símbolos Tabla de seudoinstrucciones Tabla de Códigos de Operación Probablemente se use usa tabla de literales …  Primera pasada…
Una entrada para cada símbolo. Otra información: Longitud del campo de datos asociado al símbolo. Bits de reubicación Indicador de si el símbolo es accesible fuera del procedimiento. Primera pasada : Tabla de Símbolos
Contiene al menos 1 entrada para cada código de operación simbólico del lenguaje ensamblador. La clase de instrucción designa en realidad a un procedimiento dentro del ensamblador que se invoca para procesar todas las instrucciones de un tipo dado. Primera pasada : Tabla de Códigos de Operación
Las constantes para las que el ensamblador automáticamente reserva memoria se llaman LITERALES. Ahorran trabajo al programador porque hacen evidente el valor de la constante en el programa fuente. En la primera pasada se construye la tabla con todas las literales del programa. Primera pasada : Literales
Función: generar el programa objeto e imprimir el listado de ensamblado Organización de la tabla de símbolos: Se simula una memoria “asociativa”: Arreglo de pares: primer elemento es el símbolo y segundo elemento es el valor    Se recorre la tabla linealmente. Búsqueda binaria    requiere que la tabla esté ordenada Codificación por dispersión ( Hash Coding ) Segunda pasada
ENLAZADO Y CARGA
Antes que el programa pueda ejecutarse es preciso encontrar todos los procedimientos traducidos y enlazarlos correctamente Diversos nombres :  Linker    enlazador Linking Loader    Cargador de enlace Linkage Editor    Editor de enlace En resumen, para que un programa pueda ejecutarse es preciso hacer 2 etapas: Compilar o ensamblar los fuentes Enlazar los módulos objeto para generar el ejecutable Introducción
 
Tareas que realiza el enlazador  Para ejecutar el programa el enlazador obtiene los modulos objeto de la memoria principal a fin de formar una imagen  Problema de REUBICACIÓN: Cada módulo objeto representa un espacio de direcciones individual Problema de REFERENCIA EXTERNA: La dirección de un módulo externo no se conoce antes del enlazado
Tareas que realiza el enlazador  (2) Problema de REUBICACIÓN Problema de REFERENCIA EXTERNA
Tareas que realiza el enlazador  (3) En resumen :
Estructura interna de un módulo objeto
DLL    Dynamic Link Library Es una biblioteca que consiste en una colección de procedimientos que se pueden cargar en la memoria y a la que varios procesos pueden acceder a la vez. Enlace dinámico en Windows
Capitulo 7 – Tanenbaum Web de Microsoft Lecturas  sugeridas Examen Final hasta este tema.

Más contenido relacionado

PPT
Compiladores
PPTX
Lenguaje de ensamblador
PDF
Unidad 3 ensambladores
PDF
Compilador: DEFINICIÓN
PPTX
Compilador e interpretador
PPTX
Lenguaje Ensamblador
PPTX
Compiladores diapositivas
PPSX
Tipos De Ensambladores
Compiladores
Lenguaje de ensamblador
Unidad 3 ensambladores
Compilador: DEFINICIÓN
Compilador e interpretador
Lenguaje Ensamblador
Compiladores diapositivas
Tipos De Ensambladores

La actualidad más candente (20)

PDF
Enlazadores cargadores-by-gadd
PPT
1.4 ensambladores y compiladores
PPTX
FUNDAMENTOS DEL LENGUAJE ENSAMBLADOR
DOCX
COMPILADORES
PPT
Estructura de un interprete
DOC
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
DOCX
Trabajo de compiladores completo alexandra
PDF
Ensamblador
DOCX
PDF
Ensambladores y Compiladores
PPT
Ensamblador y enlazador
PPT
Cargadores y ligadores
PDF
Unidadi. lenguajes de interfaz
PPTX
Lenguaje ensamblador
PDF
5154 Tema3 Jose Rojas
PPTX
Arquitecturas de ordenadores y compiladores cruzados
PPT
Lenguaje Ensamblador
DOCX
Proyecto fernando compiladores 1
Enlazadores cargadores-by-gadd
1.4 ensambladores y compiladores
FUNDAMENTOS DEL LENGUAJE ENSAMBLADOR
COMPILADORES
Estructura de un interprete
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
Trabajo de compiladores completo alexandra
Ensamblador
Ensambladores y Compiladores
Ensamblador y enlazador
Cargadores y ligadores
Unidadi. lenguajes de interfaz
Lenguaje ensamblador
5154 Tema3 Jose Rojas
Arquitecturas de ordenadores y compiladores cruzados
Lenguaje Ensamblador
Proyecto fernando compiladores 1
Publicidad

Destacado (14)

DOC
Beena_Resume
PDF
brochuredeepoffshore_1_0
PPT
PDF
Sigs
PDF
Silencing c-Myc translation as a therapeutic strategy through targeting PI3Kd...
PPTX
COMO SER UM ARTISTA 3D
PPTX
Underserved youthpresentationCTE552
PPT
Generacion Ipod
PDF
Higher Education Achievement Report (HEAR) | 201126379
DOC
Resume%2520meena11 (002)
PDF
Paper_EUasGlobalActor_05:2015
PDF
Ölü ozanlar derneği̇
PDF
Tema 1
PPTX
Smart-Rhino Windows 10 PC Stick with BT Keyboard
Beena_Resume
brochuredeepoffshore_1_0
Sigs
Silencing c-Myc translation as a therapeutic strategy through targeting PI3Kd...
COMO SER UM ARTISTA 3D
Underserved youthpresentationCTE552
Generacion Ipod
Higher Education Achievement Report (HEAR) | 201126379
Resume%2520meena11 (002)
Paper_EUasGlobalActor_05:2015
Ölü ozanlar derneği̇
Tema 1
Smart-Rhino Windows 10 PC Stick with BT Keyboard
Publicidad

Similar a Jin Unidad6 (20)

PDF
NASM
DOCX
Lenguaje Ensamblador00
DOCX
Lenguaje ensamblador
DOCX
Ensambladores
DOCX
Ensambladores
DOCX
Ensambladores
DOCX
Ensambladores
PPTX
Lenguaje Ensamblador
PDF
Manual_Ensamblador_ing_sistemas computacionales.pdf
PPTX
TEMA 1. MODELACION Y SIMULACION CONCURRENCIA
PPTX
PDF
Assembler apesteguia (1)
PPTX
Lenguaje ensamblador
PPT
lenguaje ensamblador.ppt
DOCX
Ensamblador
PPTX
Lenguajeensamblador
PDF
Estructura ensamblador
PDF
Estructura ensamblador
PPTX
Lenguaje ensamblador
PPTX
LENGUAJE ENSAMBLADOR
NASM
Lenguaje Ensamblador00
Lenguaje ensamblador
Ensambladores
Ensambladores
Ensambladores
Ensambladores
Lenguaje Ensamblador
Manual_Ensamblador_ing_sistemas computacionales.pdf
TEMA 1. MODELACION Y SIMULACION CONCURRENCIA
Assembler apesteguia (1)
Lenguaje ensamblador
lenguaje ensamblador.ppt
Ensamblador
Lenguajeensamblador
Estructura ensamblador
Estructura ensamblador
Lenguaje ensamblador
LENGUAJE ENSAMBLADOR

Más de jin_group (12)

PDF
Soa Fast Track
PDF
Guia De Instalacion Web Sphere V7
PDF
Examen Final Solucion Unac 2008
PDF
Requisitos No Funcionales
PDF
WebLogic Bridge JMS
PDF
Oea e goverment-trabajo-final
PPT
Exposicion Tributa 99
PPT
Jin Unidad5
PPT
Jin Unidad4
PPT
Jin Unidad 3
PPT
Jin Unidad 2
PPT
Jin Unidad 1
Soa Fast Track
Guia De Instalacion Web Sphere V7
Examen Final Solucion Unac 2008
Requisitos No Funcionales
WebLogic Bridge JMS
Oea e goverment-trabajo-final
Exposicion Tributa 99
Jin Unidad5
Jin Unidad4
Jin Unidad 3
Jin Unidad 2
Jin Unidad 1

Jin Unidad6

  • 1. Ing. Jorge Irey [ARQUITECTURA DE COMPUTADORES ] Nivel de Lenguaje Ensamblador Febrero 2008 Universidad Nacional del Callao Escuela de Post Grado Maestría en Ingeniería de Sistemas
  • 3. Niveles de máquina Traductores  traducción implica 2 pasos Intérpretes  interpretación implica 1 paso Introducción Lenguaje Fuente Lenguaje Objetivo Ejecución Lenguaje Fuente Ejecución
  • 4. ¿ Qué es el lenguaje Ensamblador ? Traductor Lenguaje Fuente : Representación simbólica de un lenguaje de máquina numérico Traductor : Ensamblador Lenguaje Ensamblador Lenguaje Fuente : Lenguaje de Alto Nivel Traductor : COMPILADOR Lenguaje De Alto Nivel Lenguaje Ensamblador es aquel en el cual cada enunciado del programa produce exactamente una instrucción de máquina
  • 5. Es más fácil programar en ensamblador : el uso de nombres y direcciones simbólicas es una gran ventaja frente a direcciones binarias El programador en lenguaje ensamblador tiene acceso a las características e instrucciones disponibles en la máquina objetivo. Restricción : un programa en lenguaje ensamblador sólo puede ejecutarse en una familia de máquinas. ¿ Usar Ensamblador y no lenguaje de máquina ?
  • 6. La programación en lenguaje ensamblador es DIFÍCIL !!! A pesar de ello se usa por razones de: Desempeño : El lenguaje ensablador produce código más rápido y pequeño Acceso a la máquina : a veces se requiere acceso total al hardware  manejo de interrupciones … PERO …
  • 7. La estructura de un enunciado en ensamblador refleja la estructura de la instrucción de máquina que representa. La sintaxis es muy parecida por lo que puede hablarse de un lenguaje ensamblador genérico. Formato de un enunciado en Ensamblador
  • 8. Formato de un enunciado en Ensamblador (2) Cálculo Comandos para reserva de memoria
  • 9. CAMPO 1 : Etiqueta CAMPO 2 : Código de Operación CAMPO 3 : Operandos CAMPO 4 : Comentarios Formato de un enunciado en Ensamblador (3)
  • 10. Registros Intel  EAX, EBX, ECX Motorola  D0, D1, D2 SPARC  %R1, %R2 Instrucción: Cargar un registro con el contenido de la memoria y almacenar el registro en memoria Intel  MOV Motorola  MOVE SPARC  LD y ST Algunas diferencias …
  • 11. Operandos : byte, palabra y largos Intel  usa registros : EAX (32 bits), AX (16 bits), AL y AH (8 bits) Motorola  usa SUFIJOS al códigos de operación ( L= long, B = byte , W = word ) SPARC  usa diferentes códigos de operación para diferentes longitudes ( LDSB, LDSH LDSW) Reserva para espacio de datos: Intel  DW (Define Word) Motorola  DC (Define constant) SPARC  .WORD Algunas diferencias …
  • 12. Además de especificar qué instrucciones de máquina deben ejecutarse, un programa en lenguaje ensamblador puede contener comandos para el ensamblador mismo. Ejemplo: asignar espacio en la memoria Estos comandos se llaman “ seudoinstrucciones ” o tambien “ directrices de ensamblador ” Seudoinstrucciones
  • 15. Es una forma de asignar un nombre a un fragmento de texto. Definición Sin macros Con macros
  • 16. Una cabecera de macro que da el nombre a la macro que se está definiendo El texto que conforma el cuerpo de la macro Una seudoinstrucción que marca el final de la definición de la macro. El ensamblador guarda una tabla de denifición de macros. Concepto : Llamada a macro Concepto: Expansión de Macro  se realiza durante el ensamblado ( no durante la ejecución) Al final del ensamblado, la tabla de definición de macros se desecha. Partes básicas
  • 18. Macros con parámetros Parámetros Formales Parámetros Reales
  • 19. EL PROCESO DE ENSAMBLADO
  • 20. El problema de la referencia hacia delante : se referencia a un símbolo que aún no ha sido definido. Estrategias: Leer el fuente 2 veces : 1era pasada  guarda una tabla de símbolos y etiquetas 2da pasada  ya se conocen todas las direcciones de las etiquetas. Leer el fuente 1 vez: (ahorra E/S) 1era pasada  se convierte a una forma intermedia y se almacena en una tabla 2da pasada  se lee la tabla y se ensambla Ensamblador de 2 pasadas
  • 21. Función : construir la tabla de símbolos Variable ILC ( Instruction Location Counter) Primera pasada
  • 22. Se emplean 3 tablas: Tabla de Símbolos Tabla de seudoinstrucciones Tabla de Códigos de Operación Probablemente se use usa tabla de literales … Primera pasada…
  • 23. Una entrada para cada símbolo. Otra información: Longitud del campo de datos asociado al símbolo. Bits de reubicación Indicador de si el símbolo es accesible fuera del procedimiento. Primera pasada : Tabla de Símbolos
  • 24. Contiene al menos 1 entrada para cada código de operación simbólico del lenguaje ensamblador. La clase de instrucción designa en realidad a un procedimiento dentro del ensamblador que se invoca para procesar todas las instrucciones de un tipo dado. Primera pasada : Tabla de Códigos de Operación
  • 25. Las constantes para las que el ensamblador automáticamente reserva memoria se llaman LITERALES. Ahorran trabajo al programador porque hacen evidente el valor de la constante en el programa fuente. En la primera pasada se construye la tabla con todas las literales del programa. Primera pasada : Literales
  • 26. Función: generar el programa objeto e imprimir el listado de ensamblado Organización de la tabla de símbolos: Se simula una memoria “asociativa”: Arreglo de pares: primer elemento es el símbolo y segundo elemento es el valor  Se recorre la tabla linealmente. Búsqueda binaria  requiere que la tabla esté ordenada Codificación por dispersión ( Hash Coding ) Segunda pasada
  • 28. Antes que el programa pueda ejecutarse es preciso encontrar todos los procedimientos traducidos y enlazarlos correctamente Diversos nombres : Linker  enlazador Linking Loader  Cargador de enlace Linkage Editor  Editor de enlace En resumen, para que un programa pueda ejecutarse es preciso hacer 2 etapas: Compilar o ensamblar los fuentes Enlazar los módulos objeto para generar el ejecutable Introducción
  • 29.  
  • 30. Tareas que realiza el enlazador Para ejecutar el programa el enlazador obtiene los modulos objeto de la memoria principal a fin de formar una imagen Problema de REUBICACIÓN: Cada módulo objeto representa un espacio de direcciones individual Problema de REFERENCIA EXTERNA: La dirección de un módulo externo no se conoce antes del enlazado
  • 31. Tareas que realiza el enlazador (2) Problema de REUBICACIÓN Problema de REFERENCIA EXTERNA
  • 32. Tareas que realiza el enlazador (3) En resumen :
  • 33. Estructura interna de un módulo objeto
  • 34. DLL  Dynamic Link Library Es una biblioteca que consiste en una colección de procedimientos que se pueden cargar en la memoria y a la que varios procesos pueden acceder a la vez. Enlace dinámico en Windows
  • 35. Capitulo 7 – Tanenbaum Web de Microsoft Lecturas sugeridas Examen Final hasta este tema.