LENGUAJE ENSAMBLADOR

15
LENGUAJE ENSAMBLADOR INTEGRANTES: Alcira Gonzales Muñoz Universidad Politécnica Amazónica Lisbeth Alexandra Vásquez Cieza

Transcript of LENGUAJE ENSAMBLADOR

Page 1: LENGUAJE ENSAMBLADOR

LENGUAJE ENSAMBLADOR

INTEGRANTES: Alcira Gonzales Muñoz

Universidad Politécnica Amazónica

Lisbeth Alexandra Vásquez Cieza

Page 2: LENGUAJE ENSAMBLADOR

DEFINICIÓN

Consiste en un conjunto de mnemónicos que representan instrucciones básicas para las computadoras, microprocesadores, microcontroladores y otros circuitos integrados programables. Implementa una representación simbólica de los códigos de máquina binarios y otras constantes necesarias para programar una arquitectura de procesador y constituye la representación más directa del código máquina específico para cada arquitectura legible por un programador.

Page 3: LENGUAJE ENSAMBLADOR

CARACTERISTICAS

El código escrito en lenguaje ensamblador posee una cierta dificultad de ser entendido directamente por un ser humano.

El lenguaje ensamblador es difícilmente portable, es decir, un código escrito para un Microprocesador, suele necesitar ser modificado.

Los programas hechos en lenguaje ensamblador, al ser programado directamente sobre Hardware.

Con el lenguaje ensamblador se tiene un control muy preciso de las tareas realizadas por un Microprocesador.

También se puede controlar el tiempo en que tarda una rutina en ejecutarse.

Page 4: LENGUAJE ENSAMBLADOR

VENTAJAS DEL LENGUAJE ENSAMBLADOR

EFICIENCIA DE TAMAÑO; un programa en ensamblador no ocupa mucho espacio en memoria porque no cargan librerías. Un programa escrito en el lenguaje ensamblador requiere considerablemente menos memoria y tiempo de ejecución que un programa escrito en los conocidos lenguajes de alto nivel como: C, C++, Java, etc.

FLEXIBILIDAD; porque todo lo que puede hacerse con una máquina, puede hacerse en el lenguaje ensamblador de esta máquina; los lenguajes de alto nivel tienen en una u otra forma limitantes para explotar al máximo los recursos de la máquina. Ósea que el lenguaje ensamblador se pueden hacer tareas específicas que en un lenguaje de alto nivel no se pueden llevar acabo porque tiene ciertas limitantes que no se lo permite.

Page 5: LENGUAJE ENSAMBLADOR

DESVENTAJAS DEL LENGUAJE ENSAMBLADOR

TIEMPO DE PROGRAMACIÓN; como es un lenguaje de bajo nivel requiere más instrucciones para realizar el mismo proceso, en comparación con un lenguaje de alto nivel.

  PROGRAMAS FUENTE GRANDES; por las mismas razones que aumenta el

tiempo, crecen los programas fuentes, simplemente requerimos más instrucciones primitivas para describir procesos equivalentes.

PELIGRO DE AFECTAR RECURSOS INESPERADAMENTE; que todo error que podamos cometer, o todo riesgo que podamos tener, podemos afectar los recursos de la máquina

FALTA DE PORTABILIDAD; porque para cada máquina existe un lenguaje ensamblador, por ello, evidentemente no es una selección apropiada de lenguaje.

Page 6: LENGUAJE ENSAMBLADOR

ADD• Suma los dos operandos y guarda el resultado en el operando destino..

SUB• Resta el operando fuente del destino.

DIV• El divisor puede ser un byte o palabra y es el operando que se le da a la

instrucción.

MUL

• Consiste en lo mismo que la instrucción DIV, solo que esta última realiza la operación con signo.IDIV

• El ensamblador asume que el multiplicando será del mismo tamaño que el del multiplicador, por lo tanto multiplica el valor almacenado en el registro.

INSTRUCCIONES ARITMETICAS

Page 7: LENGUAJE ENSAMBLADOR

AND• Con esta instrucción se lleva a cabo la operación “y” lógica de los dos operandos.

OR• Lleva a cabo, bit por bit, la disyunción inclusiva lógica de los dos operandos.

XOR• Su función es efectuar, bit por bit, la disyunción exclusiva lógica de los dos operandos.

XOR• Realiza una conjunción. Bit por bit, de los operandos a diferencia de AND esta instrucción no

coloca el resultado en el operando destino, solo tiene efecto sobre el estado de las banderas.

NEG• Esta instrucción genera el complemento a 2 del operando destino y lo almacena en este

mismo operando..

NOT• Lleva a cabo la negación bit por bit del operando destino.

INSTRUCCIONES LÓGICAS

Page 8: LENGUAJE ENSAMBLADOR

TRANSFERENCIA

Son utilizadas para mover los contenidos de los operandos. Cada instrucción se puede usar con diferentes modos de direccionamiento.

MOV: Transferencia de datos entre celdas de memoria, registros y acumulador.

MOVS: Mover cadenas de bytes o palabras desde la fuente, direccionada por SI, hasta el destino direccionado por DI.

Page 9: LENGUAJE ENSAMBLADOR

CARGA

Son instrucciones específicas de los registros. Son usados para cargar en algún registro bytes o cadenas de bytes.

LODS: Toma la cadena que se encuentre en la dirección especificada por SI, la carga al registro AL y suma o resta 1 a SI si la transferencia es de bytes o 2 si la transferencia es de palabras.

LAHF: Permite verificar el estado de las banderas durante la ejecución de nuestro programa.

LDS: El operando fuente debe ser una palabra doble en memoria. La palabra asociada con la dirección más grande es transferida a DS, o sea que se toma como la dirección del segmento.

LEA: El operando fuente debe estar ubicado en memoria, y se coloca su desplazamiento en el registro índice o apuntador especificado en destino.

LES: El operando fuente debe ser un operando en memoria de palabra doble. El

contenido de la palabra con la dirección mayor se interpreta como la dirección del desplazamiento y se coloca en el registro especificado en el parámetro destino.

Page 10: LENGUAJE ENSAMBLADOR

PILA

Estas instrucciones permiten el uso de la pila para almacenar y extraer datos.

POP: Esta instrucción transfiere el último valor almacenado en la pila al operando destino, después incrementa en dos el registro SP.

POPF: Este comando transfiere bits de la palabra almacenada en la parte superior de la pila hacia el registro de banderas.

PUSH: Decrementa en dos el valor de SP y luego transfiere el contenido del operando fuente a la nueva dirección resultante en el registro recién modificado.

PUSHF: Decrementa en 2 el valor del registro SP y luego se transfiere el contenido del registro de banderas a la pila, en la dirección indicada por SP.

Page 11: LENGUAJE ENSAMBLADOR

A los programas que permiten pasar del programa escrito con instrucciones simbólicas del lenguaje maquina (programa fuente, en ensamblador) al lenguaje máquina también se les denomina normalmente ensambladores. Un programa escrito en el lenguaje ensamblador requiere considerablemente menos memoria y tiempo de ejecución que un programa escrito en los conocidos lenguajes de alto nivel, como Pascal y C. Aunque la mayoría de los especialistas en Software desarrolla aplicaciones en lenguajes de alto nivel, que son más fáciles de escribir y de dar mantenimiento, una práctica común es recodificar en lenguaje ensamblador aquellas rutinas que han causado cuellos de botella en el procesamiento. Los programas residentes y rutinas de servicio de interrupción casi siempre son desarrollados en el lenguaje ensamblador.

RESUMEN

Page 12: LENGUAJE ENSAMBLADOR

RECOMENDACIONES

Es importante como se puede ver, el Lenguaje Ensamblador es directamente traducible al Lenguaje de Máquina, y viceversa; simplemente, es una abstracción que facilita su uso para los seres humanos.

Por otro lado, la computadora no entiende directamente al Lenguaje Ensamblador; es necesario traducirle a Lenguaje de Máquina. Pero, al ser tan directa la traducción, pronto aparecieron los programas Ensambladores, que son traductores que convierten el código fuente (en Lenguaje Ensamblador) a código objeto (es decir, a Lenguaje de Máquina). Surge como una necesidad de facilitar al programador la tarea de trabajar con lenguaje máquina sin perder el control directo con el hardware.

Page 13: LENGUAJE ENSAMBLADOR

El Lenguaje Ensamblador a pesar de ser más rápido de cualquier otro lenguaje es también el más complejo por eso es utilizado para complementar los limitantes de los lenguajes de programación de alto nivel.

Existen ramas donde es imprescindible el uso del lenguaje ensamblador como lo es la electrónica donde los recursos de los aparatos son limitados y es necesario utilizar lenguaje ensamblador.

CONCLUSIONES

Page 14: LENGUAJE ENSAMBLADOR

Este Lenguaje Ensamblador es muy importante porque es considerado de primera generación a partir de él se derivaron todos los demás lenguajes hasta llegar a los de alto nivel.

APRECIACION DE EQUIPO

Page 15: LENGUAJE ENSAMBLADOR