Está en la página 1de 35

INGENIERIA EN SISTEMAS COMPUTAIONALES

ARQUITECTURA DE COMPUTADORAS
UNIDAD I LENGUAJE ENSAMBLADOR TITULAR: M.C EDGAR OMAR BAUELOS INTEGRANTES: IVAN ARTURO GARDEA PORRAS. MARTIN ANDRES VALLES GUTIERREZ. JUAN SOTERO DE JESUS. EDWIN RAFAEL VALDEZ SEAEZ. SERGIO JESUS CHAVEZ VILLALOBOS.

Agenda
La siguiente presentacin describir las principales caractersticas, estructura , sintaxis bsicas del lenguaje ensamblador para proporcionar una nocin terica de las capacidades del lenguaje.
2

Introduccion
El ordenador solo entiende el lenguaje de cdigo binario o cdigo maquina ,solo utiliza 0 y 1 para de codificar cualquier accin .

Lenguaje de bajo nivel


Son lenguajes totalmente dependientes de la maquina . Dentro de este grupo se encuentra el lenguaje ensamblador.

Lenguaje Ensamblador
Derivado del lenguaje maquina , formado por abreviaturas de letras y nmeros llamadas mnemotcnicos .

Qu es un lenguaje ensamblador?
Es un lenguaje en el que cada enunciado produce exactamente una instruccin maquina.

Los lenguajes ensambladores tienen acceso a todas las caractersticas e instrucciones disponibles en la maquina.
En resumen todo lo que puede hacerse en lenguaje maquina puede hacerse en lenguaje ensamblador.
6

Importancia
El lenguaje ensamblador es importante por que el es considerado de primera generacin a partir de el se derivaron todos los dems lenguajes hasta llegar a los de alto nivel.

Caractersticas
Ensamblador es directamente traducible al Lenguaje de Mquina, y viceversa. La computadora no entiende directamente al Lenguaje Ensamblador; es necesario traducirle a Lenguaje de Mquina. Se utilizan traductores que convierten el cdigo fuente (en Lenguaje Ensamblador) a cdigo objeto. El usar los traductores de codigo son con el fin de facilitar la programacion y tener el control del harware.

Ventajas y desventajas del Lenguaje Ensamblador vs lenguaje de alto nivel

Lenguaje Ensamblador.
1. Velocidad 2. Eficiencia de tamao. 3. Flexibilidad

Lenguaje de alto nivel. 1. Tiempo de programacin 2. Programas fuente grandes 3. Peligro de afectar recursos inesperadamente. 4. Falta de portabilidad

Velocidad
Implica un proceso de cmputo adicional al que el programador quiere realizar.

Un intrprete es siempre ms lento que realizar la misma accin en Lenguaje Ensamblador.


Los compiladores son mucho ms rpidos que los intrpretes, pues hacen la traduccin una vez y dejan el cdigo objeto. Mayor parte de las veces, el cdigo generado por un compilador es menos eficiente que el cdigo equivalente que un programador escribira.
10

Tamao
Existen programas donde el uso de las memoria es critico para esos casos es eficiente el lenguaje ensamblador por la mnima cantidad de recursos de los que dispone

11

Flexibilidad
Las razones anteriores son cuestin de grado: Los lenguajes de alto nivel tienen limitantes en el control; al hacer abstracciones, limitan su propia capacidad. En cambio, en ensamblador es sumamente sencillo, pues tenemos el acceso directo al hardware del monitor.

12

Tiempo de programacin
Requiere ms instrucciones para realizar el mismo proceso. Por otro lado, requiere de ms cuidado por parte del programador

13

Programa fuentes grandes


Crecen los programas fuentes; simplemente, requerimos ms instrucciones primitivas para describir procesos equivalentes. Esto es una desventaja porque dificulta el mantenimiento de los programas, y nuevamente reduce la productividad de los programadores.
14

Peligro de afectar recursos


El problema es que todo error que podamos cometer, o todo riesgo que podamos tener, podemos tenerlo tambin en este Lenguaje. Dicho de otra forma, tener mucho poder es til pero tambin es peligroso.
15

Falta de portabilidad
Como ya se mencion, existe un lenguaje ensamblador para cada mquina; por ello, evidentemente no es una seleccin apropiada de lenguaje cuando deseamos codificar en una mquina y luego llevar los programas a otros SO.
16

Estructura de un programa
model small Stack 100h Data Code {Cuerpo del programa} end.

17

Instrucciones en ensamblador
Mov.-mueve el valor de un registro o un numero hacia otro registro ejmplo mov Bx,5 , movAX,bx. add.-Sumar el valor de un registro a otro registro ADD BX,5 sub.-Rest el valor de un registro o valor especifico a un registro sub cx,2 inc incrementa en 1 el valor del registro inc bx dec.-Decrementa en 1 el valor del registo dec bx

18

Brincos

Brincos condicionales JG=si es mayor JB=SI ES MENOR JE=SI ES IGUAL JGE=si es mayor o igual JBE=si es menor o igual Brinco incondicional Jmp Etiqueta: Brinca a cualquier etiqueta asignada Formato de etiquetas Nombre de etiquetas: { instrucciones}

19

Registros
Los registros del procesador se emplean para controlar instrucciones en ejecucin, manejar direccionamiento de memoria y proporcionar capacidad aritmtica.

20

Registros de segmento
Codifica la direccin de inicio de cada segmento y su direccin en un registro de segmento supone cuatro bits 0 a su derecha. Registro CS Registro DS Registro SS Registro ES Registro FS y GS

21

Registro Apuntador
Los registros El registro SP apuntadores estn El registro BP asociados con el registro SS y permiten al procesador accesar datos en el segmento de pila los registros apuntadores son dos.

22

Registros de propsitos generales


son los caballos de batalla o las herramientas del sistema. Son los nicos en el sentido de que se puede direccionarlos como una palabra o como una parte de un byte. AX, BX, CX y DX

23

Registro ndice.
Los registros SI y DI estn disponibles para direccionamientos indexados y para sumas y restas. Que son la operaciones de punta. SI y DI

24

Ejemplo#1 Un programa que teniendo pendiente 3 valores nos diga cual es el mayor de ellos, el mayor que lo ponga en Dx

25

Ejemplo#1

.model small .stack 100h .data .code Mov AX Mov BX Mov BX Cmp AX,BX JG compA Cmp BX,CX Jmp Mover B X:mov DX,CX Jmp Fin fin :end. Compa:cmo AC,CX JG Mover A Jmp x MoverB:mov DX,BX Jmp fin Mover A: mov DX,AX Jmp fin
26

El proceso de ensamblado
El lenguaje interacta directamente con los dispositivos de hardware y dispositivos lgicos como las memorias y el CPU
Programa

Compilar

Lenguaje ensamblador

Ensamble

CPU
27

Programacin Hibrida
La programacin hbrida proporciona un mecanismo por medio del cual podemos aprovechar las ventajas del lenguaje ensamblador y los lenguajes de alto nivel, todo esto con el fin escribir programas ms rpidos y eficientes.

Alto Nivel

Bajo Nivel

28

Programa hibrido pascal y ensamblador


Uses Crt; Var N1,N2,Res : integer; Begin Writeln(Introduce un nmero: ); Readln(N1); Writeln(Introduce un nmero: ); Readln(N2); Asm Mov AX,N1; Add AX,N2; Mov Res,AX End; Writeln(El resultado de la suma es: ,Res); Readln; End.

29

Aplicaciones
El uso del lenguaje ensamblador no es para la gente comn y corriente, sino para profesionistas en el rea de computacin que estn obligados a conocer este lenguaje, ya que proporciona una serie de caractersticas que no se pueden encontrar en los lenguajes de alto nivel.
30

Aplicaciones
Se puede acceder a cualquier localidad de la memoria RAM . Se pueden programar virus, debido a que se tiene un acceso total a casi todo el hardware de la computadora va interrupciones de software Se pueden programar drivers de cualquier dispositivo. Programacin de Microcontroloadores Creacin de compiladores Se puede acceder directamente a los dispositivos de entrada y/o salida. 31

Ramas en las que se aplica


Sistemas Embebidos: impresoras, cmaras, autos, juguetes, etc. Industria y Manufactura: adquisicin datos y control, eg robots. Transporte y Aeronatica: barcos, aviones, sondas espaciales, etc. Graficacin, Multimedia, Cine y Video Juegos Procesamiento de Seales, Voz e Imgenes Armamento y Defensa

32

Conclusiones
El lenguaje ensamblador a pesar de ser mas rpido de cualquier otro lenguaje es tambin el mas complejo por eso es utilizado para complementar los limitantes de los lenguajes de programacin de alto nivel.

33

Conclusiones
Pero existen ramas donde es imprescindible el uso de lenguaje ensamblador como lo es la electrnica donde los recursos de los aparatos son limitados y es necesario utilizar lenguaje ensamblador
34

Bibliografa *Avila, M. e. (s.f.). Principia. Recuperado el 20 de septiembre de 2009, de Lenguaje Ensamblador para Intel 808x/80x86: http://homepage.mac.com/eravila/asmix86.html *Monografias. Miriam Yazmn Mendoza Caamal Haumi Sabeli Pech Peraza (s.f.). Recuperado el 20 de septiembre de 2009, de Monografias Lenguaje ensamblador: http://www.monografias.com/trabajos14/lenguaje-ensamblad *Tanenbaum, A. Organizacion de computadoras un enfoque estructurado. Pentice Hall. *Wikipedia. (s.f.). Recuperado el 20 de septiembre de 2009, de Wikipedia Lenguaje Ensamblador: http://es.wikipedia.org/wiki/Lenguaje_ensamblador

35

También podría gustarte