Introducción a las ciencias de la computación Antonio López Jaimes

Slides:



Advertisements
Presentaciones similares
Fermín Sánchez Carracedo Universitat Politècnica de Catalunya
Advertisements

Ingeniería de sw.
TRADUCTOR DE UN PROGRAMA
Introducción a la Ingeniería en Sistemas

LENGUAJE ENSAMBLADOR TIPOS DE LENGUAJES ENSAMBLADORES
Tipos de Lenguajes Ensamblador.
Clasificación de software
COMPUTER SCIENCE PARCIAL 1
JOSE ALBERTO JIMENEZ JIMENEZ KATTY HIPOLITO. 7.1 INTRODUCCION AL LENGUAJE EMSAMBLADOR.
El proceso ensamblador. José Luis Vergara Soberanis.
Omar Herrera Caamal Rigoberto Lizárraga Luis Cetina Luna.
P ROCESO DE E NSAMBLADO Cámara Vázquez Berenice Rubí.
Katty Evangelina Hipólito Chi.   Aunque cada maquina tiene un lenguaje ensamblador distinto, el proceso de ensamblador tiene suficiente similitudes.
Análisis de los algoritmos Unidad 7. Análisis La resolución práctica de un problema – algoritmo o método de resolución – y por otra un programa o codificación.
Tema II Unidad de memoria. 2.1 Definiciones y conceptos básicos. 2.2 Jerarquía de memorias. 2.3 Memorias de semiconductor. 2.4 Memorias asociativas. 2.5.
Una estrategia para evitar la sucesiones repetidas de instrucciones convertir la secuencia en un procedimiento e invocarlo cada vez que se necesite.
ALGORITMOS Y TIPOS DE DATOS Un algoritmo es un método para resolver un problema. Para la creación de un programa (resolver un problema) en un lenguaje.
TUTORIA 1 Lógica para la Computación TUTORIA 1 Facultad de Ciencias Naturales y Matemáticas.
PROGRAMACIÓN ORIENTADA A OBJETOS SEGUNDA UNIDAD: “CLASES, OBJETOS Y MÉTODOS” IRVING YAIR SALAS CHÁVEZ ING. EN SISTEMAS COMPUTACIONALES - ITSLP.
Tema 1 Fundamentos de Computación
Ingreso , proceso y salida de datos
LENGUAJES DE PROGRAMACIÓN
Repaso Programacion en C
ROBERTO PINEDA FLORES. ALEXIS JULIAN VELAZQUEZ NAVA.
2. Programación de Robots
PROGRAMACIÓN (1).
Diagramas de Flujo Algoritmos.
Datapath para las instrucciones de brinco
MANEJO DE ARRELOGS EN C Clase 8: Arreglos.
LENGUAJE DE PROGRAMACIÓN Y SOFTWARE PROPIETARIO
ADMINISTRACíON DE LA MEMORIA EN SISTEMAS RECIENTES
LENGUAJES Y REPRESENTACION TECNICA
PSEUDOCÓDIGO Prof. Rafael Mourglia.
Tema 6. Conceptos básicos de programación (Clase 2)
TUTORIAL PSeint.
Clase 7 Assembly - Simulador MSX88.
Cada maquina tiene un lenguaje ensamblador distinto
Tipos de Datos abstractos
Lenguaje y representación técnica
Software Es intangible, existe como información, ideas, conceptos, símbolos, pero no ocupa un espacio físico, se podría decir que no tiene sustancia. Se.
ALGORITMOS es un conjunto preescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos.
Unidad 2. Algoritmos Unidad 4. Control de flujo
ICAS REDES Y SUBREDES LIA. Reginaldo Sánchez Carranza.
Funciones Prof. M. Alonso
Algoritmo Capitulo Cinco.
TAREA DEFINICIONES: Software: Equipamiento lógico o soporte lógico de una computadora digital; comprende el conjunto de los componentes lógicos necesarios.
Lenguaje y representación técnica
Estas dos líneas de código permiten al Asm iniciar en Code Segment
CONCEPTOS PRELIMINARES (Cont)
Introducción al lenguaje de programación. Introducción  Los lenguajes de programación son aplicaciones específicas que han sido pensadas y diseñadas.
Programación.
Introducción a las ciencias de la computación Antonio López Jaimes
Estructuras de Repetición Pseudocodigo1 Estructuras de Repetición Algoritmos Mientras Hacer-Mientras Para.
P P AGINACION FACULTAD DE INGENIERIA INDUSTRIAL Y DE SISTEMAS FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS.
Introducción al Visual Basic  Un programa en sentido informático está constituido en un sentido general por variables que contienen los datos con los.
CURSO PROGRAMACIÓN BÁSICA SEMANA 3 ¿Qué es un programa?
FUDAMENTOS BÀSICOS computación
ABSTRACCION DE DATOS   Estructura de Datos Básicos: En programación una estructurad de datos, es una forma particular de organizar datos en una computadora.
Fundamentos de la Programación I
ACCIONES Y ESTRUCTURAS
Operaciones con Acumuladores
Informática Ingeniería en Electrónica y Automática Industrial
Tema 6. Conceptos básicos de programación (Clase 2)
Estructuras de Repetición Algoritmos
Programación Modular Programación de Computadoras - Hugo Vega Grupo2: Reina Rodríguez Miriam Salluca.
Lenguaje de Programación II
El procesador Datapath y control.
CONTROLES Y ESTRUCTURAS BÁSICAS DE PROGRAMACIÓN  1. Algoritmos: conjunto de instrucciones programadas para resolver una tarea específica.  2. Datos:
PROGRAMACIÓN BÁSICA CONCEPTOS BÁSICOS Software. TEMAS:  Software y sus funciones  Tipos de Software  Software de Sistemas  Software de Aplicación.
Transcripción de la presentación:

Introducción a las ciencias de la computación Antonio López Jaimes Lenguaje ensamblador Introducción a las ciencias de la computación Antonio López Jaimes Casa abierta al tiempo

Plan de la presentación Modos de direccionamiento Lenguaje ensamblador Variables Pseudoinstrucciones Etiquetas 20-sep-18

Plan de la presentación Modos de direccionamiento Lenguaje ensamblador Variables Pseudoinstrucciones Etiquetas 20-sep-18

Modos de direccionamiento Direccionamiento inmediato. El dato con el que se opera se especifica inmediantemente después del código de la instrucción. Direccionamiento directo. El parámetro o dato de la operación se especifica mediante una dirección escrita enseguida el código de la instrucción. Direccionamiento indirecto. La operación se aplica al dato contenido en una dirección2 direccionada por la celda con una dirección1 especificada. Direccionamiento indizado. Toma la dirección dada y la suma con el contenido de un registro especial de la UCP llamado índice. 20-sep-18

Plan de la presentación Modos de direccionamiento Lenguaje ensamblador Variables Pseudoinstrucciones Etiquetas 20-sep-18

El problema de la traducción Programa fuente Programa objeto Transcribir o traducir el lenguaje de mnemónicos a lenguaje máquina. Escrito en lenguaje máquina, el cual entiende directamente la computadora CARGA 20 SUMA 21 GUARDA 22 ALTO 2020 3021 0222 70 010100 010100 011110 010101 000010 010110 1000110 Escrito en lenguaje mnemónico, el cual está más cercano al lenguaje natural. 20-sep-18

El problema de la traducción Para evitar hablar con la computadora en lenguaje de máquina utilizamos un lenguaje simbólico que utiliza mnemónicos. Puesto que la máquina sólo entiende lenguaje máquina, necesitamos resolver el problema de traducir el programa fuente (escrito con mnemónicos) a lenguaje máquina. Esta tarea la puede hacer un programa que haga la traducción de un programa fuente escrito en lenguaje mnemónico al programa objeto escrito en lenguaje máquina. 20-sep-18

Programa traductor Programa «traductor» 2020 3021 0222 70 Programa fuente Programa objeto CARGA 20 SUMA 21 GUARDA 22 ALTO Programa «traductor» 2020 3021 0222 70 Escrito en lenguaje máquina, el cual entiende directamente la computadora Escrito en lenguaje mnemónico, el cual está más cercano al lenguaje natural. 20-sep-18

Algoritmo del programa traductor (v1) 0: Para cada renglón del programa fuente hacer: 1: Buscar la palabra mnemónica en el diccionario de equivalencias. 2: Si está, entonces traducirla al lenguaje máquina. En caso contrario, advierte un error al usuario. 3: Fin del programa. 20-sep-18

Ensamblador El programa traductor se llama ensamblador, el cual permite que el usuario se comunique con la computadora en un lenguaje con un nivel superior que el del lenguaje máquina. El lenguaje simbólico con el que se escriben los programas recibe el nombre de lenguaje ensamblador o simplemente ensamblador. 20-sep-18

Plan de la presentación Modos de direccionamiento Lenguaje ensamblador Variables Pseudoinstrucciones Etiquetas 20-sep-18

Variables En el lenguaje ensamblador el usuario ya no tiene que escoger celdas particulares de memoria, ya que dicha tarea es delegada al traductor. Una variable es un nombre simbólico asociado con una celda cualquiera. El traductor se encargará de hacer tal asociación. Las variables dan flexibilidad al programa, ya que si una celda particular está ocupada, el programa traductor asignará otra celda. 20-sep-18

Variables Ejemplo: El programador podrá escribir las variables simbólicas ALFA, BETA y GAMA, sin preocuparse a cuáles celdas estarán asociadas. CARGA 10 SUMA 11 GUARDA 12 ALTO Programa fuente anterior CARGA ALFA SUMA BETA GUARDA GAMA ALTO Nuevo programa fuente Programa objeto Programa traductor 20 10 30 11 02 12 70 El traductor automáticamente asociará a cada variable una celda, por ejemplo la 10, 11 y 12. 20-sep-18

Tabla de símbolos Para realizar la asociación entre variables y celdas, el traductor utiliza una tabla de símbolos en la cual guarda las direcciones que asignó a las variables para reconocerlas cuando sea preciso. La tabla de símbolos del programa anterior es: Variable simbólica Dirección asignada ALFA 10 BETA 11 GAMA 12 20-sep-18

Tabla de símbolos Cuando el traductor encuetra una variable por primera vez, le asigna una dirección y la guarda en la tabla de símbolos. La segunda vez, simplemente reemplaza la dirección asignada en el programa objeto. Tabla de símbolos El traductor lee IN GUARDA ALFA GUARDA BETA CARGA ALFA SUMA BETA GUARDA GAMA ALTO 10 ALFA Dirección Variable El traductor lee 10 ALFA Dirección Variable El traductor lee El traductor lee 12 GAMA 11 BETA 10 ALFA Dirección Variable 11 BETA 10 ALFA Dirección Variable El traductor lee 11 BETA 10 ALFA Dirección Variable El traductor lee 11 BETA 10 ALFA Dirección Variable El traductor lee Variable Dirección 20-sep-18

Plan de la presentación Modos de direccionamiento Lenguaje ensamblador Variables Pseudoinstrucciones Etiquetas 20-sep-18

Pseudoinstrucciones Para facilitar el trabajo del traductor, el programador escribe pseudoinstrucciones, es decir, instrucciones dirigidas solamente al traductor. Las pseudoinstrucciones no son pensadas para la UCP, por lo que no aparecen en el programa objeto. 20-sep-18

Pseudoinstrucciones DATO. Reserva espacio para una variable asociada a a un nombre simbólico y define la cantidad de celdas de memoria que ocupará: <etiqueta>: DATO <tamaño> ORIGEN. Especifica la dirección inicial que el traductor empleará para cargar datos e instrucciones del programa: ORIGEN <dirección> PROGRAMA ... FIN. Indican al traductor dónde comienzan y terminan las instrucciones del programa fuente. 20-sep-18

Nuevo programa fuente Programa traductor Programa objeto 10: 13: 14: ORIGEN 10 ALFA: DATO 1 BETA: DATO 1 GAMA: DATO 1 PROGRAMA IN GUARDA ALFA GUARDA BETA CARGA ALFA SUMA BETA GUARDA GAMA ALTO FIN Programa objeto 10: 13: 14: 16: 17: 19: 21: 23: 25: 00 00 00 10 02 10 02 11 20 10 30 11 02 12 70 Programa traductor Variable Dirección ALFA 10 BETA 11 GAMA 12 20-sep-18

Plan de la presentación Modos de direccionamiento Lenguaje ensamblador Variables Pseudoinstrucciones Etiquetas 20-sep-18

Etiquetas Las etiquetas son nombres simbólicos de las direcciones utilizadas en el programa para dirigir saltos condicionales e incondicionales. Al igual que las variables, las etiquetas son guardadas en la tabla de símbolos. Por ejemplo: PROGRAMA BR E1 . . . E1:Instr. 1 Instr. 2 Instr. n FIN 20-sep-18

Ejemplo: el mínimo de tres números 20-sep-18

Traducción en dos pasos ¿Qué pasa cuando el traductor lee la instrucción BR<= E1? PROGRAMA ... CARGA ALFA GUARDA MIN COMP BETA BR<= E1 E1:COMP GAMA ALTO FIN Variable Dirección ALFA 10 BETA 11 GAMA 12 MIN 13 E1 ? El traductor lee 20-sep-18

Traducción en dos pasos La utilización de etiquetas obliga al ensamblador a efectuar dos lecturas sobre el mismo programa fuente: En la primera guarda las direcciones de todas las etiquetas en la tabla de símbolos calculando sus direcciones. En la segunda vuelta reemplaza las etiquetas por sus direcciones respectivas y se crea el código objeto del programa. 20-sep-18

Plan de la presentación Modos de direccionamiento Lenguaje ensamblador Variables Pseudoinstrucciones Etiquetas Otras pseudoinstrucciones 20-sep-18

Otras pseudoinstrucciones EQU. Permite al programador definir constantes simbólicas: <etiqueta>: EQU <valor> El ensamblador sustituye la etiqueta por el valor definido siempre que aparezca en el programa fuente. Esta directiva no reserva celdas de la memoria. Ejemplo: SI : EQU 1 NO : EQU 0 DIEZ: EQU 10 20-sep-18

Otras pseudoinstrucciones VALOR. Reserva espacio para una variable y le asigna un valor inicial: <etiqueta>: VALOR <valor> A diferencia de EQU, la directiva VALOR reserva una celda de la memoria. Ejemplo: ALFA : VALOR 5 CONTADOR: VALOR 1 SUMA : VALOR 0 20-sep-18

Otras pseudoinstrucciones LISTA. Reserva espacio para un conjuntos de valores, asociándole al primer elemento su etiqueta: <etiqueta>: LISTA <valor,...> Ejemplo: NÚMERO: LISTA 0,1,2,4 DÍAS : LISTA 1,2,3,5,6,7 20-sep-18

La nueva tabla de símbolos Los valores iniciales que definen la pseudoinstrucciones anteriores se guardan también en la tabla de símbolos del ensamblador. Programa fuente Tabla de símbolos INICIO: EQU 700 LÍMITE: EQU 8 ORIGEN INICIO ALFA : DATO 1 BETA : VALOR LÍMITE+2 ... Nombre simbólico Dirección Valor INICIO --- 700 LÍMITE 8 ALFA - BETA 701 10 20-sep-18