La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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

Presentaciones similares


Presentación del tema: "Introducción a las ciencias de la computación Antonio López Jaimes"— Transcripción de la presentación:

1 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

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

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

4 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

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

6 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 Escrito en lenguaje mnemónico, el cual está más cercano al lenguaje natural. 20-sep-18

7 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

8 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

9 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

10 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

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

12 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

13 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

14 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

15 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

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

17 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

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

19 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: 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

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

21 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

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

23 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

24 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

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

26 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

27 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

28 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

29 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


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

Presentaciones similares


Anuncios Google