Lenguaje ensamblador Resumen en diapositivas

Slides:



Advertisements
Presentaciones similares
III - Gestión de memoria
Advertisements

Nuestro reto es educar al pensamiento, para que razone de acuerdo a ciertas reglas; con ello podremos ser más eficientes al momento en que ordenamos.
CLASE 4 EL ENSAMBLADOR.
INSTITUTO TECNOLOGICO DE APIZACO Integrantes del equipo: José Luis Cocoletzi López Edgar Lozano Velázquez TEMA: Lenguaje Ensamblador.
La maquina de Turing La máquina de Turing es una caja negra (tan simple como una máquina de escribir y tan compleja como un ser humano) capaz no sólo de.
Lenguajes de programación
INSTTUTO TECNOLOGICO DE APIZACO
Introducción a la Programación
INTRODUCCION A LOS ALGORITMOS (Conceptos previos)
DIAGRAMAS DE FLUJO Y PSEUDOCÓDIGO
Concepto de programa. Directorio Concepto de programa. Analisis del problema. Resolucion del problema. Desarroollo de un programa. Partes constitutivas.
Introducción a la programación
3. INTRODUCCIÓN A LA PROGRAMACIÓN
Teoría de lenguajes y compiladores
Arquitectura de Conjunto de Instrucciones (ISA)
Tema 3. Optimización de Código
Funciones en lenguaje C
Tema 6: Clases Antonio J. Sierra.
Al término de la clase, el alumno reconoce las ventajas de usar JAVASCRIPT para un proyecto web.
TRADUCTOR DE UN PROGRAMA
MIPS Intermedio.
Introducción a la Ingeniería en Sistemas
Semana 5 Subprogramas..
M.C. Meliza Contreras González
PRINCIPIOS DE PROGRAMACION ESTRUCTURADA
Tecnología de la información Unidad: 3 El software Profesor: Fernando J. Martini.
Valor X Valor Y Punto (0,0) Coordenadas.
Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),
Un programa no es nada mas que una serie de instrucciones dadas al ordenador en un lenguaje entendido por el, para decirle exactamente lo que queremos.
SISTEMA OPERATIVO Un sistema operativo es un programa que actúa como intermediario entre el usuario y el hardware de un computador y su propósito es proporcionar.
Asignación de Espacio No Contiguo
PBN © Jaime Alberto Parra Plaza CLASE 5 LOS SEGMENTOS.
1.4 Traductor y Su estructura
Tipos de Datos. Entrada-Salida.. La entrada-salida (I/O) le permite a un programa comunicarse con el mundo exterior. Esta comunicación puede realizarse.
Capítulo 7 Gestión de memoria.
Unidad I: Registros e Interrupciones Facilitador: Ing. Eduardo Brando.
Unidad II Introducción a la programación en C++
Programación de Sistemas
Introducción a la Ingeniería de Sistemas
Lenguajes de programación. Lenguaje máquina El ordenador sólo sabe hacer un número limitado de tareas (muy pocas) definidas electrónicamente en su procesador.
Unidad 1: FUNDAMENTOS DE COMPUTACIÓN Y PSEUDOLENGUAJE

Algorit moAlgorit mo An á lisisAn á lisis Argumen toArgumen to Asignación Asociación Cometar ioCometar io Compilación Constan teConstan te Definición.
Introducción a los programas
Objetivo Mostrar los fundamentos de la programación a través de ejemplos y prácticas utilizadas cotidianamente en el desarrollo de aplicaciones.
Términos algoritmo diseñar algoritmo implementar algoritmo
Metodología de la programación
Capítulo 4 CPU y la memoria.
TEMA1:Introducción 1 1. Programación 2. Lenguajes de Programación 3. Ordenador.
SEMANA 01_2.
 Un lenguaje se puede definir como un conjunto de palabras y formas de expresión por medio de las cuales se comunican y relacionan miembros de una comunidad.
Teoría de lenguajes y compiladores
PRINCIPIOS DE PROGRAMACIÓN
Elaboración de algoritmos usando lógica de programación
M.S.C. Ivette Hernández Dávila
PROGRAMACIÓN ESTRUCTURADA LOS DIAGRAMAS DE ESTADO
Tipos de Lenguajes Ensamblador.
UNIDAD 4: Introducción a la Lógica Computacional Objetivo : Interpretar y aplicar adecuadamente los fundamentos básicos de la estructura y funcionamiento.
Práctica Profesional PHP.
Programación de Sistemas
 Panorama General Fundamentos de Programación M.I. Jaime Alfonso Reyes Cortés.
Curso: Fundamentos de Computación
Fundamentos de Programación Unidad I Conceptos Básicos.
Lenguaje ensamblador Conceptos introductorios. Formatos de Instrucción. Modos de Direccionamiento. Conjunto de instrucciones básico. Introducción al Lenguaje.
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.
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) IV. IMPLANTACION DE ALGORITMOS.
Transcripción de la presentación:

Lenguaje ensamblador Resumen en diapositivas Flavio A. Claussell Albornoz Berenice Camara Vazquez

¿Qué es el lenguaje ensamblador? Un lenguaje ensamblador puro es un lenguaje en el que cada enunciado produce exactamente una instrucción de maquina. En otras palabras, existe una correspondencia uno a uno entre las instrucciones de maquina y los enunciados del programa en ensamblador. Ejemplo: Programa ensamblador programa en lenguaje maquina N lineas N palabras

introducción Los traductores se dividen en dos grupos dependiendo de la relación entre el lenguaje fuente y el lenguaje objetivo. Lenguaje fuente esencial con una representación simbólica de un lenguaje de maquina numérico: El traductor se llama ensamblador y el lenguaje fuente lenguaje ensamblador Lenguaje fuente con de alto nivel (Java o C) con una representación de maquina numérico: El traductor se llama compilador.

De preferencias… La programación en lenguaje ensamblador es en la practica, mas fácil a comparación del lenguaje maquina(hexadecimal). Esto es debido al uso de nombres simbólicos y direcciones simbólicas en lugar de direcciones binarias u octales , esto marca una gran diferencia. La mayoría de nosotros podemos recordad mas fácilmente las abreviaturas para sumar, restar , multiplicar y dividir; ADD, SUB, MUL Y DIV El programador solo debe recordar nombres simbólicos porque el ensamblador los traduce a instrucciones maquina. Una diferencia importante es que el lenguaje ensamblador solo puede ejecutarse en una familia de maquinas. Mientras que un lenguaje de alto nivel puede ejecutarse en muchas maquinas.

1 para ensamblador 0 para lenguaje maquina Otra propiedad de los lenguajes ensamblador además de la correspondencia uno a uno, es que el programador: Tiene acceso a todas las características e instrucciones de disponibles en la maquina objetivo. El programador en lenguaje de alto nivel NO. Ejemplo: Si una maquina tiene un bit de desbordamiento, un programa en l. ensamblador puede probarlo, un programa en java NO puede hacerlo directamente. Todo lo que puede hacerse en lenguaje de maquina puede hacerse en lenguaje ensamblador, pero muchas instrucciones, registros y características similares no están disponibles para el programador en lenguaje de alto nivel.

C un hibrido! Los lenguajes para programación de sistemas como C suelen ser un hibrido entre estos 2 tipos. Contienen la sintaxis de alto nivel pero con una buena parte del acceso a la maquina que un lenguaje ensamblador.

Porque usar lenguaje ensamblador? Desempeño Acceso a la maquina Se usa en: Código de una tarjeta inteligente Código de un teléfono celular Controladores de dispositivos La rutina del BIOS Ciclos interiores de aplicaciones Debido a que este tipo de casos demanda cualquiera de los 2 puntos con efectividad. No es para debiles ni cobardes. Toma mucho mas tiempo en escribir el programa y tambien tarda mucho mas en depurarse y es mucho mas dificil de mantenerse.

Porque usar lenguaje ensamblador? Podría usarse una estrategia mixta con los dos lenguajes lo cual ayudaría a reducir tiempo de ejecución al implementarse la parte critica del programa(la mas pequeña, pero mas tardada) en lenguaje ensamblador. A lo que llamamos «afinación» Hay por lo menos otras 4 razones por las cuales estudiar lenguaje ensamblador. El éxito o fracaso de un proyecto podría depender de la capacidad para exprimir algún procedimiento hasta mejorar su desempeño El código ensamblador a veces es la única alternativa debido a la escases de memoria Un compilador debe producir salidas que un ensamblador pueda usar o bien realizar el proceso de ensamblado el mismo. El estudio del lenguaje ensamblador pone al descubierto la maquina real.

Enunciados en lenguaje ensamblador Cuentan con 4 partes: Campo de etiqueta Campo de operación (código de operación) Campo de operandos Campo de comentarios

Seudoinstrucciones Son comandos para el ensamblador y suelen ser llamados Seudoinstrtucciones o abecés Directrices de ensamblador . Un ejemplo seria, pedirle que asigne espacio en la memoria o que saque una nueva pagina de listado, en la figura anterior se muestran ejemplos.

seudoinstrucciones Algunas Seudoinstrucciones: SEGMENT: inicia un nuevo segmento ENDS: termina un segmento ALIGN: siguiente línea se coloque en una dirección que sea un múltiplo de su argumento. Ej. 61 bytes ALIGN 4 = 64( dirección asignada) EQU: asignar nombre simbólico a una expresión. Ej, «BASE EQU 1000» pudiéndose usar en cualquier punto, BASE en lugar de 1000 ENDM: delimitan una función de macro

Seudoinstrucciones PAGE: controla el listado que el ensamblador puede producir si se solicita. END: marca el final del programa. PUBLIC y EXTERN: controlan la visibilidad de los símbolos INCLUDE: hace que el ensamblador traiga otro archivo y lo incluya entero dentro del archivo actual COMMENT: cambia el delimitador de comentarios a algo distinto del «. Y ,»

QUE ES EL MACROS? Es una solución fácil y eficiente al problema de necesitar repetidamente la misma o casi la misma secuencia de instrucciones. Es una abreviatura para un fragmento de texto. Una vez que se defina una macro ,el programador puede escribir el nombre de la macro en lugar del fragmento de programa.

Definición, llamada y expansión de macros Lenguaje ensamblador para Pentium II: (intercambia dos veces el contenido de las variables p & q) MOV EAX ,P MOV EBX, Q MOV Q, EAX MOV P , EBX

PARTES BASICAS EN UNA DEFINICION DE MACRO: 1.UNA CABECERA DE MACRO (da el nombre de la macro que esa definido) 2.EL TEXTO QUE CONSTITUYE EL CUERPO DE LA MACRO 3.UNA SEUDO INSTRUCCIÓN QUE MARCA EL FINAL DE LA DEFINICION (EDM)

LA EXPANSIÓN DE MACRO SE EFECTUA DURANTE EL PROCESO DE ENSAMBLADO Y NO DURANTE LA EJECUCION DEL PROGRAMA. LLAMADA MACRO: Es una instrucción dirigida a ensamblador para que sustituya el nombre de la macro por el cuerpo de la misma

LLAMADA A PROCEDIMIENTO: Es una instrucción de maquina que se inserta en el programa objeto y que después se ejecutara para llamar al procedimiento.

MACROS CON PARAMETROS Cuando una macro se expande, cada parámetro formal que aparece en el cuerpo de la macro es sustituido por el parámetro real correspondiente.

CARACTERISTICAS Duplicación de etiquetas Si la macro se llama dos o mas veces, la etiqueta se duplicara y causara un error de ensamblador. Las macros pueden llamar a otras macros, incluidas ellas mismas. Si una macro es recursiva debera pasarse a si misma un parametro que se modificara en cada expansión y debera terminar cuando llegue a cierto valor.

IMPLEMENTACIÓN UN ENSAMBLADOR DEBE REALIZAR 2 FUNCIONES: GUARDAR DEFINICIONES DE MACROS(debe tener una tabla de todos los nombres de macros) EXPANDIR LLAMADAS DE MACROS Nota: cuando se invoca una macro ,el ensamblador suspende temporalmente la lectura del dispositivo de entrada y comienza a leer del cuerpo almacenado de la macro. La presencia de un “&” antes de los parámetros formales permite al ensamblador reconocerlos fácilmente.