SlideShare una empresa de Scribd logo
Lenguaje ensambladorLenguaje de bajo nivelTipos de leguaje ensambladorCruzadosMacroensambladorEnsambladores de 1 faseEnsambladores de2 faces
Estructura1.Librerias2.Etiquetas3.Inicio4.Codigo5.Bucle6.Fin
Sistemas Numéricos10 Decimal 0, 1, 2, 3, 4, 5, 6, 7, 8, 92 Binario 0, 116 Hexadecimal 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
Notación posicionalEn esta notación el dígito de más a la izquierda (an-1)el que “pesa” más se denomina dígito más significativoEn esta notación el dígitomás a la derecha (a-m), es decir, el que “pesa” menos se le llama dígito menos significativo
Sistema  Hexadecimal
Mipag web
Sistema Decimal
Sistema Binario
RAMSe puede usar para leer y escribir datos en ellaContador del programaROMSirve para la lectura de datos solamentePuertosSirven para la entrada o salida de datosAumenta el contador del programaLeva las direcciones de los registrosControlConvierte los datos de instrucción en código para que el procesador lo reconozcaOscilador o reloj del procesadorHace las pulsaciones para que el procesador haga operacionesMemoria principalALUArithmetic Logic Unit
¿Que es la gestión de memoria?La parte del sistema operativo que administra la memoria se llama administrador de memoria y su labor consiste llevar un registro de las partes de memoria que se estén utilizando y aquellas que no, con el fin de asignar espacio en memoria a los procesos cuando estos lo necesiten y liberándola cuando terminen.
Direcciones lógicas y direcciones físicas El concepto de espacio de direcciones  lógicas  vinculado a un espacio de direcciones físicas  separado es crucial para una buena gestión de memoriaDirección lógica : es la dirección que genera el proceso; también se conoce como dirección virtual
Traducción de direcciones. Cuando un proceso es asignada al estado de ejecución, un registro base es cargado  con la dirección física de inicio del proceso.Un registro limite es cargado con la dirección física final.Cuando una dirección relativa es encontrada es relacionada al registro base y comparada con el registro limite
Registro base:determina la dirección física donde  se comienza el espacio  de memoria del procesoRegistro limite: establece la dirección donde se determina el espacio de memoria del proceso en relación al registro base
A QUE SE LE LLAMA PROGRAMACION DE SISTEMAS Se entiende por programación de sistemas el conjunto de programas necesario para que una computadora de una imagen coherente y monolítica ante sus usuarios. Es un área especializada dentro de las ciencias de la computación. Así, mediante la programación de sistemas, no solo se manejan las computadoras por medio del lenguaje maquina (0 y 1) sino por otros sistemas operativos, sin lo cual sería muy difícil la interacción con la maquina.
Evolución de los Lenguajes de Programación
PRIMERA GENERACIÓNLo constituyen los lenguajes maquina.Estos se consideran como de bajo nivel por que no existe un programa de codificación menos complicado que el que utiliza los símbolos binarios 1 y 0. ASCII, utiliza ceros y unos para representar letras del alfabeto.
SEGUNDA GENERACIÓN     lenguaje ensamblador.    Los lenguajes ensambladores usan códigos como:a    para agregar                    subwf  restara una cantidadmvc   para mover                  btfss comparary así sucesivamente.Los programas de software de sistemas tales como los sistemas operativos y los programas de utilidad se escriben con frecuencia en un lenguaje ensamblador.
  TERCERA GENERACIÓNSon relativamente independientes del hardware. el programa se puede utilizar en computadoras diferentes Primeros lenguajes de alto nivel Cobol(Common Business Oriented Language)1958Algol (Algorithmic Language) 1960Apl (A Programming Language)1961Basic(Beginners All purpose Symbolic Instruction Code) 1964C               1970Pascal()
Diferencias entre Ensamblador, Compilador e Interpretes
EnsambladoresSe llaman ensambladores los programas encargados de traducir los programas escritos en ensamblador a código binario.
CompiladoresEl compilador es un programa que traduce el código de alto nivel a código binario. Es, por tanto, parecido al ensamblador, pero mucho más complejo, ya que las diferencias entre los lenguajes de alto nivel y el código binario son muy grandes.
IntérpretesEl intérprete es un programa que traduce el código de alto nivel a código binario pero, a diferencia del compilador, lo hace en tiempo de ejecución. Es decir, no se hace un proceso previo de traducción de todo el programa fuente a binario, sino que se va traduciendo y ejecutando instrucción por instrucción.
Compiladores frente a intérpretes             Un intérprete         Un compilador facilita la búsqueda de errores, pues la ejecución de un programa puede interrumpirse en cualquier momento para estudiar el entorno.El programa puede modificarse sobre la marcha, sin necesidad de volver a comenzar la ejecución.permite utilizar funciones y operadores más potentes, como por ejemplo ejecutar código contenido en una variable en forma de cadenas de caracteres.suele generar programas más rápidos y eficientes, ya que el análisis del lenguaje fuente se hace una sola vez, durante la generación del programa equivalente.Cualquier lenguaje puede ser ejecutado tanto vía intérprete o vía compilador, pero algunos lenguajes suelen asociarse más a una vía que a la otra, y por esto son llamados "lenguajes interpretados" o "lenguajes compilados" respectivamente.
LIGADORESUn ligador es un programa de sistema que combina dos o mas programas objeto separados y permite que se hagan referencias unos a otros, o sea, que cada uno de estos programas pueden hacer referencia a código ó variables de los otros programas con los que está enlazado.
CARGADORUn cargador es un programa que coloca en la memoria para su ejecución, el programa guardado en algún dispositivo de almacenamiento secundario.El cargador consiste en un juego de instrucciones que permiten al dispositivo de entrada ( teclado ó unidad de cinta ) asignar la dirección de inicio de la memoria y asegurar que el computador leerá el programa y lo cargara byte a byte.
La información que hace que el hardware de la computadora realice una determinada actividad se llama instrucciónSe denomina lenguaje máquina a la serie de datos que la parte física de la computadora o hardware, es capaz de interpretar.Las instrucciones así formadas equivalen a acciones elementales de la máquinaLenguaje de bajo nivelLa segunda parte de la instrucción es el operando, que indica la computadora dónde hallar o almacenar los datos y otras instrucciones que se van a manipular.El lenguaje máquina de una computadora consta de cadenas de números binarios (ceros y unos)La primera es el comando u operación, que dice a la computadora cuál es la función que va a realizar.
Apareció a principios de los 50con el fin de facilitar la labor de los programadoresUno de los primeros pasos para mejorar el proceso de preparación de programas fue sustituir los códigos de operaciones numéricos del lenguaje de máquina por símbolos alfabéticosLENGUAJE ENSAMBLADORse desarrollaron códigos nemotécnicospara las operaciones y direcciones simbólicas.ESTRUCTURA BucleLibreríasInicioCódigoFinEtiquetas
Las instrucciones más importantes que podemos manejar son las que proporciona el fabricante de un microprocesador para su producto.Directriz EQUSirve para “igualar” la posición de cualquier registro a un nombre personalizado que le hayamos dado nosotrosDirectriz ORGEsta directriz dice al ensamblador a partir de que posición de memoria se situarán las siguientes instrucciones. Directriz INCLUDEEsta instrucción índica qué archivos deberán tomarse en cuenta a la hora de compilar el código.Directriz ENDEsta debe ir incluida una sola vez en todo el programa. En concreto, esta debe situarse al final, para indicar al ensamblador que el programa ha finalizado.DIRECTRICES DEL ENSAMBLADORDirectriz LISTEste comando sirve para que el compilador tenga en cuenta sobre qué procesador se está trabajando. Este comando debe estar en todo proyecto, situado debajo del “include”, con la siguiente sintaxis. LIST   P=16F627ADirectriz #DEFINEDefine se usa para crear pequeñas macros. Con estas macros podremos poner nombres a pequeños fragmentos de código que nos facilitarán la realización y comprensión del algoritmo.  Directriz TITLEEsta directriz no sirve de mucho, pero será útil para aquellos que quieran que el compilador tenga en cuenta el título que le ha puesto a su código.  Directriz TITLEEsta directriz no sirve de mucho, pero será útil para aquellos que quieran que el compilador tenga en cuenta el título que le ha puesto a su código.
Para utilizar una macro, primero hay que declararla. En la declaración se establece el nombre que se le dará a la macro y el conjunto de instrucciones que representará. El programador escribirá el nombre de la macro en cada uno de los lugares donde se requiera la aplicación de las instrucciones por ella representadas. La declaración se realiza una sola vez, pero la utilización o invocación a la macro (macro llamada) puede hacerse cuantas veces sea necesario. Con el fin de evitar al programador la tediosa repetición de partes idénticas de un programa, los ensambladores y compiladores cuentan con macro procesadores que permiten definir una abreviatura para representar una parte de un programa y utilizar esa abreviatura cuantas veces sea necesario.La utilización de macros posibilita la reducción del tamaño del código fuente, aunque el código objeto tiende a ser mayor que cuando se utilizan funciones. MACROZ EN PROGRAMACION Es tan común el empleo de macroinstrucciones que se les considera como una extensión de los lenguajes.El macro procesador se encarga, en una primera pasada, de registrar todas las declaraciones de macros y de rastrear el programa fuente para detectar todas las macro llamadas.El macro procesador elabora dos tablas para el manejo de las
Sintaxis de una macroLa declaración de la macro se lleva a cabo de la siguiente forma:NombreMacro MACRO [parametro1, parametro2...]Aunque se tiene la funcionalidad de los parametros es posible crear una macro que no los necesite. Las partes que componen a una macro son: *Declaración de la macro*código de la macro*Directiva de terminación de la macroLa directiva de terminación de la macro es: ENDMPosicion MACRO Fila, ColumnaPUSH AXPUSH BXPUSH DXMOV AH, 02HMOV DH, FilaMOV DL, ColumnaMOV BH, 0INT 10HPOP DXPOP BXPOP AXENDM
Bibliotecas de macrosELEMENTOS DE ENSAMBLADORESson grupos de macros que pueden ser incluidas en un programa desde un archivo diferente.La creación de estas bibliotecas es muy sencilla, unicamente tenemos que escribir un archivo con todas las macros que se necesitarán y guardarlo como archivo de texto. FUNCIONESLa tarea fundamental de un ensamblador es traducir un programa en lenguaje de ensamblador al código correspondiente en lenguaje de máquina.Convertir los códigos a su código equivalente en lenguaje de máquina.
Convertir los operándoos simbólicos (las etiquetas o variables) en las direcciones correspondientes de los operándoos.Ejemplo:Suponiendo que se guardó el archivo de las macros con el nombre de MACROS.TXT la instrucción Include se utilizaría de la siguiente forma: ;Inicio del programaInclude MACROS.TXT.MODEL SMALL.DATA;Aqui van los datos.CODEInicio:;Aqui se inserta el código del programa.STACK;Se define la pilaEnd Inicio;Termina nuestro programaConstruir las instrucciones en lenguaje de máquina en el formato apropiado.
Convertir las constantes definidas en el programa en su verdadera representación.

Más contenido relacionado

PDF
Unidadi. lenguajes de interfaz
DOC
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
PPTX
Lenguaje ensamblador
PDF
5154 Tema3 Jose Rojas
PPTX
Lenguaje ensamblador
PPTX
LENGUAJE ENSAMBLADOR
PPTX
Lenguaje Ensamblador
PPTX
Lenguaje ensamblador
Unidadi. lenguajes de interfaz
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
Lenguaje ensamblador
5154 Tema3 Jose Rojas
Lenguaje ensamblador
LENGUAJE ENSAMBLADOR
Lenguaje Ensamblador
Lenguaje ensamblador

La actualidad más candente (20)

PPTX
Lenguaje Ensamblador
PDF
Ensamblador
PPTX
Lenguaje ensamblador
PDF
Programacion ensamblador-procesadoresk
PDF
Lenguaje ensamblador basico
PPTX
GRUPO 4 Elementos a traves de los lenguajes de programacion, lenguaje de maqu...
PPTX
LENGUAJE ENSAMBLADOR
PPTX
Lenguaje de ensamblador
PPTX
FUNDAMENTOS DEL LENGUAJE ENSAMBLADOR
PPTX
Lenguaje Ensamblador
PPTX
Lenguaje ensamblador
PPTX
Lenguaje ensamblador y Estructura del CPU
PPT
Compiladores
PDF
Clase10 ejemplos asm con tasm y tlink
PDF
programacion en lenguaje ensamblador con NASM
PPTX
Compiladores diapositivas
DOCX
Lenguaje Ensamblador00
PPTX
Compilador e interpretador
PPTX
Lenguaje maquina
Lenguaje Ensamblador
Ensamblador
Lenguaje ensamblador
Programacion ensamblador-procesadoresk
Lenguaje ensamblador basico
GRUPO 4 Elementos a traves de los lenguajes de programacion, lenguaje de maqu...
LENGUAJE ENSAMBLADOR
Lenguaje de ensamblador
FUNDAMENTOS DEL LENGUAJE ENSAMBLADOR
Lenguaje Ensamblador
Lenguaje ensamblador
Lenguaje ensamblador y Estructura del CPU
Compiladores
Clase10 ejemplos asm con tasm y tlink
programacion en lenguaje ensamblador con NASM
Compiladores diapositivas
Lenguaje Ensamblador00
Compilador e interpretador
Lenguaje maquina
Publicidad

Destacado (20)

PPTX
Tipos De Lenguajes
DOC
Relatório de Gestão 2008 - Sala Verde Judith Cortesão FURG
PDF
Unidad 1 interfaz
PPTX
Lenguaje de ensamblador daniel romo 9 a -san felipe
PPTX
Nivel de lenguaje ensamblador
PPTX
Lenguajeensamblador
PPT
Lenguaje Ensamblador
PPTX
Lenguaje ensamblador
PPTX
Lengujes de 2 generacion
PPTX
Lenguaje ensamblador
PPTX
programa 1 en lenguaje ensamblador
PPTX
Lenguaje de ensamblador
PPTX
Data segment
PPTX
Lenguaje ensamblador
PDF
Manejo de archivo
PPSX
Emulador 8086.
PPTX
Lenguaje ensamblador
PPTX
Generalidades del lenguaje ensamblador
DOC
Temario lenguaje ensamblador
Tipos De Lenguajes
Relatório de Gestão 2008 - Sala Verde Judith Cortesão FURG
Unidad 1 interfaz
Lenguaje de ensamblador daniel romo 9 a -san felipe
Nivel de lenguaje ensamblador
Lenguajeensamblador
Lenguaje Ensamblador
Lenguaje ensamblador
Lengujes de 2 generacion
Lenguaje ensamblador
programa 1 en lenguaje ensamblador
Lenguaje de ensamblador
Data segment
Lenguaje ensamblador
Manejo de archivo
Emulador 8086.
Lenguaje ensamblador
Generalidades del lenguaje ensamblador
Temario lenguaje ensamblador
Publicidad

Similar a Mipag web (20)

PDF
Clase3 guia1-introduccion-compiladores-conceptos
DOCX
Lenguaje ensamblador
PPT
Introduccion
PPT
Programacion Lenguaje Assembler 25 10 07
PPT
Lenguajes de programacion
PPTX
TEMA 1. MODELACION Y SIMULACION CONCURRENCIA
DOCX
DOCX
PDF
Assembler apesteguia (1)
PPTX
Clasificacion de los lenguajes abel
PPTX
Clasificacion de los
PPTX
Presentación1
PPTX
Presentación1
PPTX
Slideshard deisy
PDF
PPTX
Historia de la programacion
PPT
Software
PPTX
Lenguajes de desarrollo (programación)
PPT
Como programar un pic
PPTX
Actividades ac 2 computacion mtra elisa navarro lectura
Clase3 guia1-introduccion-compiladores-conceptos
Lenguaje ensamblador
Introduccion
Programacion Lenguaje Assembler 25 10 07
Lenguajes de programacion
TEMA 1. MODELACION Y SIMULACION CONCURRENCIA
Assembler apesteguia (1)
Clasificacion de los lenguajes abel
Clasificacion de los
Presentación1
Presentación1
Slideshard deisy
Historia de la programacion
Software
Lenguajes de desarrollo (programación)
Como programar un pic
Actividades ac 2 computacion mtra elisa navarro lectura

Último (20)

PDF
Como usar el Cerebro en las Aulas SG2 NARCEA Ccesa007.pdf
PDF
Ernst Cassirer - Antropologia Filosofica.pdf
PDF
2.0 Introduccion a processing, y como obtenerlo
PDF
Modelo Educativo SUB 2023versión final.pdf
PDF
ACERTIJO Súper Círculo y la clave contra el Malvado Señor de las Formas. Por ...
PDF
La Formacion Universitaria en Nuevos Escenarios Ccesa007.pdf
PDF
EL aprendizaje adaptativo bajo STEM+H.pdf
PDF
La Inteligencia Emocional - Fabian Goleman TE4 Ccesa007.pdf
PPTX
T2 Desarrollo del SNC, envejecimiento y anatomia.pptx
PDF
Introduccion a la Investigacion Cualitativa FLICK Ccesa007.pdf
PDF
5°-UNIDAD 5 - 2025.pdf aprendizaje 5tooo
PDF
Cronograma de clases de Práctica Profesional 2 2025 UDE.pdf
PPTX
Historia-Clinica-de-Emergencia-Obstetrica 1.10.pptx
DOC
4°_GRADO_-_SESIONES_DEL_11_AL_15_DE_AGOSTO.doc
PDF
Integrando la Inteligencia Artificial Generativa (IAG) en el Aula
PDF
Tomo 1 de biologia gratis ultra plusenmas
PPTX
Clase 3 del silabo-gestion y control financiero
PDF
Iniciación Al Aprendizaje Basado En Proyectos ABP Ccesa007.pdf
PDF
ACERTIJO EL CONJURO DEL CAZAFANTASMAS MATEMÁTICO. Por JAVIER SOLIS NOYOLA
PPTX
MATEMATICAS GEOMETRICA USO TRANSPORTADOR
Como usar el Cerebro en las Aulas SG2 NARCEA Ccesa007.pdf
Ernst Cassirer - Antropologia Filosofica.pdf
2.0 Introduccion a processing, y como obtenerlo
Modelo Educativo SUB 2023versión final.pdf
ACERTIJO Súper Círculo y la clave contra el Malvado Señor de las Formas. Por ...
La Formacion Universitaria en Nuevos Escenarios Ccesa007.pdf
EL aprendizaje adaptativo bajo STEM+H.pdf
La Inteligencia Emocional - Fabian Goleman TE4 Ccesa007.pdf
T2 Desarrollo del SNC, envejecimiento y anatomia.pptx
Introduccion a la Investigacion Cualitativa FLICK Ccesa007.pdf
5°-UNIDAD 5 - 2025.pdf aprendizaje 5tooo
Cronograma de clases de Práctica Profesional 2 2025 UDE.pdf
Historia-Clinica-de-Emergencia-Obstetrica 1.10.pptx
4°_GRADO_-_SESIONES_DEL_11_AL_15_DE_AGOSTO.doc
Integrando la Inteligencia Artificial Generativa (IAG) en el Aula
Tomo 1 de biologia gratis ultra plusenmas
Clase 3 del silabo-gestion y control financiero
Iniciación Al Aprendizaje Basado En Proyectos ABP Ccesa007.pdf
ACERTIJO EL CONJURO DEL CAZAFANTASMAS MATEMÁTICO. Por JAVIER SOLIS NOYOLA
MATEMATICAS GEOMETRICA USO TRANSPORTADOR

Mipag web

  • 1. Lenguaje ensambladorLenguaje de bajo nivelTipos de leguaje ensambladorCruzadosMacroensambladorEnsambladores de 1 faseEnsambladores de2 faces
  • 3. Sistemas Numéricos10 Decimal 0, 1, 2, 3, 4, 5, 6, 7, 8, 92 Binario 0, 116 Hexadecimal 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
  • 4. Notación posicionalEn esta notación el dígito de más a la izquierda (an-1)el que “pesa” más se denomina dígito más significativoEn esta notación el dígitomás a la derecha (a-m), es decir, el que “pesa” menos se le llama dígito menos significativo
  • 9. RAMSe puede usar para leer y escribir datos en ellaContador del programaROMSirve para la lectura de datos solamentePuertosSirven para la entrada o salida de datosAumenta el contador del programaLeva las direcciones de los registrosControlConvierte los datos de instrucción en código para que el procesador lo reconozcaOscilador o reloj del procesadorHace las pulsaciones para que el procesador haga operacionesMemoria principalALUArithmetic Logic Unit
  • 10. ¿Que es la gestión de memoria?La parte del sistema operativo que administra la memoria se llama administrador de memoria y su labor consiste llevar un registro de las partes de memoria que se estén utilizando y aquellas que no, con el fin de asignar espacio en memoria a los procesos cuando estos lo necesiten y liberándola cuando terminen.
  • 11. Direcciones lógicas y direcciones físicas El concepto de espacio de direcciones lógicas vinculado a un espacio de direcciones físicas separado es crucial para una buena gestión de memoriaDirección lógica : es la dirección que genera el proceso; también se conoce como dirección virtual
  • 12. Traducción de direcciones. Cuando un proceso es asignada al estado de ejecución, un registro base es cargado con la dirección física de inicio del proceso.Un registro limite es cargado con la dirección física final.Cuando una dirección relativa es encontrada es relacionada al registro base y comparada con el registro limite
  • 13. Registro base:determina la dirección física donde se comienza el espacio de memoria del procesoRegistro limite: establece la dirección donde se determina el espacio de memoria del proceso en relación al registro base
  • 14. A QUE SE LE LLAMA PROGRAMACION DE SISTEMAS Se entiende por programación de sistemas el conjunto de programas necesario para que una computadora de una imagen coherente y monolítica ante sus usuarios. Es un área especializada dentro de las ciencias de la computación. Así, mediante la programación de sistemas, no solo se manejan las computadoras por medio del lenguaje maquina (0 y 1) sino por otros sistemas operativos, sin lo cual sería muy difícil la interacción con la maquina.
  • 15. Evolución de los Lenguajes de Programación
  • 16. PRIMERA GENERACIÓNLo constituyen los lenguajes maquina.Estos se consideran como de bajo nivel por que no existe un programa de codificación menos complicado que el que utiliza los símbolos binarios 1 y 0. ASCII, utiliza ceros y unos para representar letras del alfabeto.
  • 17. SEGUNDA GENERACIÓN lenguaje ensamblador. Los lenguajes ensambladores usan códigos como:a para agregar subwf restara una cantidadmvc para mover btfss comparary así sucesivamente.Los programas de software de sistemas tales como los sistemas operativos y los programas de utilidad se escriben con frecuencia en un lenguaje ensamblador.
  • 18. TERCERA GENERACIÓNSon relativamente independientes del hardware. el programa se puede utilizar en computadoras diferentes Primeros lenguajes de alto nivel Cobol(Common Business Oriented Language)1958Algol (Algorithmic Language) 1960Apl (A Programming Language)1961Basic(Beginners All purpose Symbolic Instruction Code) 1964C 1970Pascal()
  • 19. Diferencias entre Ensamblador, Compilador e Interpretes
  • 20. EnsambladoresSe llaman ensambladores los programas encargados de traducir los programas escritos en ensamblador a código binario.
  • 21. CompiladoresEl compilador es un programa que traduce el código de alto nivel a código binario. Es, por tanto, parecido al ensamblador, pero mucho más complejo, ya que las diferencias entre los lenguajes de alto nivel y el código binario son muy grandes.
  • 22. IntérpretesEl intérprete es un programa que traduce el código de alto nivel a código binario pero, a diferencia del compilador, lo hace en tiempo de ejecución. Es decir, no se hace un proceso previo de traducción de todo el programa fuente a binario, sino que se va traduciendo y ejecutando instrucción por instrucción.
  • 23. Compiladores frente a intérpretes Un intérprete Un compilador facilita la búsqueda de errores, pues la ejecución de un programa puede interrumpirse en cualquier momento para estudiar el entorno.El programa puede modificarse sobre la marcha, sin necesidad de volver a comenzar la ejecución.permite utilizar funciones y operadores más potentes, como por ejemplo ejecutar código contenido en una variable en forma de cadenas de caracteres.suele generar programas más rápidos y eficientes, ya que el análisis del lenguaje fuente se hace una sola vez, durante la generación del programa equivalente.Cualquier lenguaje puede ser ejecutado tanto vía intérprete o vía compilador, pero algunos lenguajes suelen asociarse más a una vía que a la otra, y por esto son llamados "lenguajes interpretados" o "lenguajes compilados" respectivamente.
  • 24. LIGADORESUn ligador es un programa de sistema que combina dos o mas programas objeto separados y permite que se hagan referencias unos a otros, o sea, que cada uno de estos programas pueden hacer referencia a código ó variables de los otros programas con los que está enlazado.
  • 25. CARGADORUn cargador es un programa que coloca en la memoria para su ejecución, el programa guardado en algún dispositivo de almacenamiento secundario.El cargador consiste en un juego de instrucciones que permiten al dispositivo de entrada ( teclado ó unidad de cinta ) asignar la dirección de inicio de la memoria y asegurar que el computador leerá el programa y lo cargara byte a byte.
  • 26. La información que hace que el hardware de la computadora realice una determinada actividad se llama instrucciónSe denomina lenguaje máquina a la serie de datos que la parte física de la computadora o hardware, es capaz de interpretar.Las instrucciones así formadas equivalen a acciones elementales de la máquinaLenguaje de bajo nivelLa segunda parte de la instrucción es el operando, que indica la computadora dónde hallar o almacenar los datos y otras instrucciones que se van a manipular.El lenguaje máquina de una computadora consta de cadenas de números binarios (ceros y unos)La primera es el comando u operación, que dice a la computadora cuál es la función que va a realizar.
  • 27. Apareció a principios de los 50con el fin de facilitar la labor de los programadoresUno de los primeros pasos para mejorar el proceso de preparación de programas fue sustituir los códigos de operaciones numéricos del lenguaje de máquina por símbolos alfabéticosLENGUAJE ENSAMBLADORse desarrollaron códigos nemotécnicospara las operaciones y direcciones simbólicas.ESTRUCTURA BucleLibreríasInicioCódigoFinEtiquetas
  • 28. Las instrucciones más importantes que podemos manejar son las que proporciona el fabricante de un microprocesador para su producto.Directriz EQUSirve para “igualar” la posición de cualquier registro a un nombre personalizado que le hayamos dado nosotrosDirectriz ORGEsta directriz dice al ensamblador a partir de que posición de memoria se situarán las siguientes instrucciones. Directriz INCLUDEEsta instrucción índica qué archivos deberán tomarse en cuenta a la hora de compilar el código.Directriz ENDEsta debe ir incluida una sola vez en todo el programa. En concreto, esta debe situarse al final, para indicar al ensamblador que el programa ha finalizado.DIRECTRICES DEL ENSAMBLADORDirectriz LISTEste comando sirve para que el compilador tenga en cuenta sobre qué procesador se está trabajando. Este comando debe estar en todo proyecto, situado debajo del “include”, con la siguiente sintaxis. LIST   P=16F627ADirectriz #DEFINEDefine se usa para crear pequeñas macros. Con estas macros podremos poner nombres a pequeños fragmentos de código que nos facilitarán la realización y comprensión del algoritmo. Directriz TITLEEsta directriz no sirve de mucho, pero será útil para aquellos que quieran que el compilador tenga en cuenta el título que le ha puesto a su código. Directriz TITLEEsta directriz no sirve de mucho, pero será útil para aquellos que quieran que el compilador tenga en cuenta el título que le ha puesto a su código.
  • 29. Para utilizar una macro, primero hay que declararla. En la declaración se establece el nombre que se le dará a la macro y el conjunto de instrucciones que representará. El programador escribirá el nombre de la macro en cada uno de los lugares donde se requiera la aplicación de las instrucciones por ella representadas. La declaración se realiza una sola vez, pero la utilización o invocación a la macro (macro llamada) puede hacerse cuantas veces sea necesario. Con el fin de evitar al programador la tediosa repetición de partes idénticas de un programa, los ensambladores y compiladores cuentan con macro procesadores que permiten definir una abreviatura para representar una parte de un programa y utilizar esa abreviatura cuantas veces sea necesario.La utilización de macros posibilita la reducción del tamaño del código fuente, aunque el código objeto tiende a ser mayor que cuando se utilizan funciones. MACROZ EN PROGRAMACION Es tan común el empleo de macroinstrucciones que se les considera como una extensión de los lenguajes.El macro procesador se encarga, en una primera pasada, de registrar todas las declaraciones de macros y de rastrear el programa fuente para detectar todas las macro llamadas.El macro procesador elabora dos tablas para el manejo de las
  • 30. Sintaxis de una macroLa declaración de la macro se lleva a cabo de la siguiente forma:NombreMacro MACRO [parametro1, parametro2...]Aunque se tiene la funcionalidad de los parametros es posible crear una macro que no los necesite. Las partes que componen a una macro son: *Declaración de la macro*código de la macro*Directiva de terminación de la macroLa directiva de terminación de la macro es: ENDMPosicion MACRO Fila, ColumnaPUSH AXPUSH BXPUSH DXMOV AH, 02HMOV DH, FilaMOV DL, ColumnaMOV BH, 0INT 10HPOP DXPOP BXPOP AXENDM
  • 31. Bibliotecas de macrosELEMENTOS DE ENSAMBLADORESson grupos de macros que pueden ser incluidas en un programa desde un archivo diferente.La creación de estas bibliotecas es muy sencilla, unicamente tenemos que escribir un archivo con todas las macros que se necesitarán y guardarlo como archivo de texto. FUNCIONESLa tarea fundamental de un ensamblador es traducir un programa en lenguaje de ensamblador al código correspondiente en lenguaje de máquina.Convertir los códigos a su código equivalente en lenguaje de máquina.
  • 32. Convertir los operándoos simbólicos (las etiquetas o variables) en las direcciones correspondientes de los operándoos.Ejemplo:Suponiendo que se guardó el archivo de las macros con el nombre de MACROS.TXT la instrucción Include se utilizaría de la siguiente forma: ;Inicio del programaInclude MACROS.TXT.MODEL SMALL.DATA;Aqui van los datos.CODEInicio:;Aqui se inserta el código del programa.STACK;Se define la pilaEnd Inicio;Termina nuestro programaConstruir las instrucciones en lenguaje de máquina en el formato apropiado.
  • 33. Convertir las constantes definidas en el programa en su verdadera representación.
  • 34. 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
  • 35. Convertir los códigos a su código equivalente en lenguaje de máquina.
  • 36. Convertir los operándoos simbólicos (las etiquetas o variables) en las direcciones correspondientes de los operándoos.PROCESOLa mayoría de los ensambladores hacen su trabajo pasando dos veces por el programa fuente.Generar los valores de las constantes declaradas.Procesar el resto de las directrices.PRIMERA PASADA: Una primera vez se pasa para asignar a cada etiqueta su dirección correspondiente en el programa objeto.PRIMERA PASADA: La función principal es construir, lo que sé llama tabla de símbolos, donde se guardan los valores de todos los símbolos. Un símbolo es una etiqueta o un valor al que se le asigna un nombre simbólico por medio de una seudoinstrucción: espacio equ 100La función es generar el programa objeto y posiblemente, imprimir el listado de ensamblaje. Además, debe producir cierta información necesaria para que el programa ligado enlace procedimientos ensamblados en momentos diferentes.SEGUNDA PASADA: Pasa una Segunda ocasión por el programa fuente para llevar a cabo el ensamblaje de las instrucciones una vez ya tiene asignadas las direcciones de todas las etiquetas.Cambiar los mnemónicos a su código correspondiente en lenguaje de máquina.3.Procesar algunas de las directrices.Asignar una dirección de memoria a cada instrucción.Guardar en una tabla las direcciones de todas las etiquetas del programa.Poner las direcciones de los operándoos simbólicos o etiquetas en las instrucciones.
  • 37. MacroensambladoresSon 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.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.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.TIPOS DE ENSAMBLADORESEnsambladores residentes.Son aquellos que permanecen en la memoria principal de la computadora y cargan, para su ejecución, al programa objeto producido.Micro-ensambladoresEl programa que ayuda a realizar este microprograma se llama micro-ensamblador. Existen procesadores que permiten la modificación de sus microprogramas, para lo cual se utilizan micro-ensambladores.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.