SlideShare una empresa de Scribd logo
1 de 29
UNIVERSIDAD TÉCNICA DEL
NORTE
INGENIERIA EN ELECTRONICA Y REDES DE
COMUNICACION
1
‘’LENGUAJE ENSAMBLADOR’’
SISTEMAS OPERTATIVOS
DIAZ JOHN
Introducción
• El ordenador solo
entiende el lenguaje de
código binario o código
maquina ,solo utiliza 0 y
1 para de codificar
cualquier acción .
2
Lenguaje de bajo nivel
• Son lenguajes
totalmente
dependientes de la
maquina .
• Dentro de este grupo se
encuentra el lenguaje
ensamblador.
3
Lenguaje Ensamblador
• Derivado del lenguaje
maquina , formado por
abreviaturas de letras y
números llamadas
mnemotécnicos .
4
¿Qué es un lenguaje ensamblador?
5
•Es un lenguaje en el que cada enunciado produce
exactamente una instrucción maquina.
•Los lenguajes ensambladores tienen acceso a todas
las características e instrucciones disponibles en la
maquina.
•En resumen todo lo que puede hacerse en lenguaje
maquina puede hacerse en lenguaje ensamblador.
Importancia
• El lenguaje
ensamblador es
importante por que el
es considerado de
primera generación a
partir de el se derivaron
todos los demás
lenguajes hasta llegar a
los de alto nivel.
6
Características
7
•Ensamblador es directamente traducible al Lenguaje
de Máquina, y viceversa.
•La computadora no entiende directamente al Lenguaje
Ensamblador; es necesario traducirle a Lenguaje de
Máquina.
• Se utilizan traductores que convierten el código fuente
(en Lenguaje Ensamblador) a código objeto.
•El usar los traductores de código son con el fin de
facilitar la programación y tener el control del harware.
Ventajas y desventajas del Lenguaje
Ensamblador vs lenguaje de alto nivel
8
Lenguaje Ensamblador.
1. Velocidad
2. Eficiencia de tamaño.
3. Flexibilidad
Lenguaje de alto nivel.
1. Tiempo de programación
2. Programas fuente grandes
3. Peligro de afectar recursos
inesperadamente.
4. Falta de portabilidad
Velocidad
9
•Implica un proceso de cómputo
adicional al que el programador
quiere realizar.
•Un intérprete es siempre más
lento que realizar la misma acción
en Lenguaje Ensamblador.
•Los compiladores son mucho más
rápidos que los intérpretes, pues
hacen la traducción una vez y
dejan el código objeto.
•Mayor parte de las veces, el
código generado por un compilador
es menos eficiente que el código
equivalente que un programador
escribiría.
Tamaño
• Existen programas
donde el uso de las
memoria es critico para
esos casos es eficiente el
lenguaje ensamblador
por la mínima cantidad
de recursos de los que
dispone
10
Flexibilidad
11
Las razones anteriores son cuestión 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.
Tiempo de programación
12
Requiere más
instrucciones para realizar
el mismo proceso.
Por otro lado, requiere de
más cuidado por parte del
programador
Programa fuentes grandes
• Crecen los programas
fuentes; simplemente,
requerimos más
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.
13
Peligro de afectar recursos
• El problema es que todo
error que podamos
cometer, o todo riesgo
que podamos tener,
podemos tenerlo también
en este Lenguaje. Dicho
de otra forma, tener
mucho poder es útil pero
también es peligroso.
14
Falta de portabilidad
• Como ya se mencionó,
existe un lenguaje
ensamblador para cada
máquina; por ello,
evidentemente no es una
selección apropiada de
lenguaje cuando deseamos
codificar en una máquina
y luego llevar los
programas a otros SO.
15
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
16
Registros
• Los registros del
procesador se emplean
para controlar
instrucciones en
ejecución, manejar
direccionamiento de
memoria y
proporcionar capacidad
aritmética.
17
Registros de segmento
• Codifica la dirección de
inicio de cada segmento
y su dirección en un
registro de segmento
supone cuatro bits 0 a
su derecha.
• Registro CS
• Registro DS
• Registro SS
• Registro ES
• Registro FS y GS
18
Registro Apuntador
• Los registros
apuntadores están
asociados con el
registro SS y permiten
al procesador accesar
datos en el segmento de
pila los registros
apuntadores son dos.
• El registro SP
• El registro BP
19
Registros de propósitos 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
20
Registro índice.
• Los registros SI y DI
están disponibles para
direccionamientos
indexados y para sumas
y restas. Que son la
operaciones de punta.
• SI y DI
21
El proceso de ensamblado
• El lenguaje interactúa
directamente con los
dispositivos de
hardware y dispositivos
lógicos como las
memorias y el CPU
22
Programa
Compilar
Lenguaje ensamblador
Ensamble
CPU
Programación Hibrida
• La programación híbrida
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 más
rápidos y eficientes.
23
Bajo Nivel
Alto
Nivel
Aplicaciones
• El uso del lenguaje ensamblador
no es para la gente común y
corriente, sino para profesionistas
en el área de computación que
están obligados a conocer este
lenguaje, ya que proporciona una
serie de características que no se
pueden encontrar en los lenguajes
de alto nivel.
24
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 vía
interrupciones de
software
• Se pueden programar
drivers de cualquier
dispositivo.
• Programación de
Microcontroloadores
• Creación de compiladores
• Se puede acceder
directamente a los
dispositivos de entrada
y/o salida.
25
Ramas en las que se aplica
• Sistemas Embebidos: impresoras,
cámaras, autos, juguetes, etc.
• Industria y Manufactura: adquisición
datos y control, eg robots.
• Transporte y Aeronaútica: barcos,
aviones, sondas espaciales, etc.
• Graficación, Multimedia, Cine y
Video Juegos
• Procesamiento de Señales, Voz e
Imágenes
• Armamento y Defensa
26
Conclusiones
• El lenguaje ensamblador a
pesar de ser mas rápido de
cualquier otro lenguaje es
también el mas complejo por
eso es utilizado para
complementar los limitantes
de los lenguajes de
programación de alto nivel.
27
Conclusiones
• Pero existen ramas
donde es imprescindible
el uso de lenguaje
ensamblador como lo
es la electrónica donde
los recursos de los
aparatos son limitados y
es necesario utilizar
lenguaje ensamblador
28
Bibliografía
*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 Yazmín 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
29

Más contenido relacionado

La actualidad más candente

Estructura de un sistema operativo
Estructura de un sistema operativoEstructura de un sistema operativo
Estructura de un sistema operativoIan Berzeker Tovar
 
Conceptos Basicos Programacion
Conceptos Basicos ProgramacionConceptos Basicos Programacion
Conceptos Basicos ProgramacionMichele André
 
Diagrama de bloques de una computadora
Diagrama de bloques de una computadoraDiagrama de bloques de una computadora
Diagrama de bloques de una computadoravixtor
 
tipos de lenguaje de programación
tipos de lenguaje de programacióntipos de lenguaje de programación
tipos de lenguaje de programaciónpefrayo5
 
Introduction to Computer
Introduction to ComputerIntroduction to Computer
Introduction to Computerzaheeriqbal41
 
Lenguaje de programacion
Lenguaje de programacionLenguaje de programacion
Lenguaje de programacionElder Giron
 
Estructura de lenguaje ensamblador
Estructura de lenguaje ensambladorEstructura de lenguaje ensamblador
Estructura de lenguaje ensambladorEustakiu Padilla
 
Presentacion de lenguajes de programacion grado 9.2
Presentacion de lenguajes de programacion grado 9.2Presentacion de lenguajes de programacion grado 9.2
Presentacion de lenguajes de programacion grado 9.2danny7206
 
Introduccion a los microprocesadores
Introduccion a los microprocesadoresIntroduccion a los microprocesadores
Introduccion a los microprocesadoresRuderocker Billy
 
Grupo 3 descripción a nivel de registros del proceso de ejecución de instrucc...
Grupo 3 descripción a nivel de registros del proceso de ejecución de instrucc...Grupo 3 descripción a nivel de registros del proceso de ejecución de instrucc...
Grupo 3 descripción a nivel de registros del proceso de ejecución de instrucc...viviana_12
 
Arquitectura del procesador
Arquitectura del procesadorArquitectura del procesador
Arquitectura del procesadorYESENIA CETINA
 
Presentation on computer language
Presentation on computer languagePresentation on computer language
Presentation on computer languageSwarnima Tiwari
 
Jerarquía de la computadora
Jerarquía de la computadoraJerarquía de la computadora
Jerarquía de la computadoraredesIIunivo
 
Arquitectura de computador 11111
Arquitectura de computador 11111Arquitectura de computador 11111
Arquitectura de computador 11111marcela murillo
 
Arquitectura de los computadores
Arquitectura de los computadoresArquitectura de los computadores
Arquitectura de los computadoresJ David Martinez
 

La actualidad más candente (20)

Estructura de un sistema operativo
Estructura de un sistema operativoEstructura de un sistema operativo
Estructura de un sistema operativo
 
Conceptos Basicos Programacion
Conceptos Basicos ProgramacionConceptos Basicos Programacion
Conceptos Basicos Programacion
 
Diagrama de bloques de una computadora
Diagrama de bloques de una computadoraDiagrama de bloques de una computadora
Diagrama de bloques de una computadora
 
Lenguaje maquina
Lenguaje maquinaLenguaje maquina
Lenguaje maquina
 
Arquitecturas de computadoras
Arquitecturas de computadorasArquitecturas de computadoras
Arquitecturas de computadoras
 
tipos de lenguaje de programación
tipos de lenguaje de programacióntipos de lenguaje de programación
tipos de lenguaje de programación
 
Introduction to Computer
Introduction to ComputerIntroduction to Computer
Introduction to Computer
 
Lenguaje de programacion
Lenguaje de programacionLenguaje de programacion
Lenguaje de programacion
 
Lenguaje de programación
Lenguaje de programaciónLenguaje de programación
Lenguaje de programación
 
Estructura de lenguaje ensamblador
Estructura de lenguaje ensambladorEstructura de lenguaje ensamblador
Estructura de lenguaje ensamblador
 
Presentacion de lenguajes de programacion grado 9.2
Presentacion de lenguajes de programacion grado 9.2Presentacion de lenguajes de programacion grado 9.2
Presentacion de lenguajes de programacion grado 9.2
 
Introduccion a los microprocesadores
Introduccion a los microprocesadoresIntroduccion a los microprocesadores
Introduccion a los microprocesadores
 
Funciones del Procesador
Funciones del ProcesadorFunciones del Procesador
Funciones del Procesador
 
Grupo 3 descripción a nivel de registros del proceso de ejecución de instrucc...
Grupo 3 descripción a nivel de registros del proceso de ejecución de instrucc...Grupo 3 descripción a nivel de registros del proceso de ejecución de instrucc...
Grupo 3 descripción a nivel de registros del proceso de ejecución de instrucc...
 
Arquitectura del procesador
Arquitectura del procesadorArquitectura del procesador
Arquitectura del procesador
 
Presentation on computer language
Presentation on computer languagePresentation on computer language
Presentation on computer language
 
Jerarquía de la computadora
Jerarquía de la computadoraJerarquía de la computadora
Jerarquía de la computadora
 
Programming languages
Programming languagesProgramming languages
Programming languages
 
Arquitectura de computador 11111
Arquitectura de computador 11111Arquitectura de computador 11111
Arquitectura de computador 11111
 
Arquitectura de los computadores
Arquitectura de los computadoresArquitectura de los computadores
Arquitectura de los computadores
 

Destacado (20)

Ensamblador expo
Ensamblador expoEnsamblador expo
Ensamblador expo
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Lengujes de 2 generacion
Lengujes de 2 generacionLengujes de 2 generacion
Lengujes de 2 generacion
 
Lenguaje ensamblador basico
Lenguaje ensamblador basicoLenguaje ensamblador basico
Lenguaje ensamblador basico
 
Lenguaje Ensamblador
Lenguaje EnsambladorLenguaje Ensamblador
Lenguaje Ensamblador
 
Lenguaje Ensamblador
Lenguaje EnsambladorLenguaje Ensamblador
Lenguaje Ensamblador
 
Conferencia1
Conferencia1Conferencia1
Conferencia1
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Ots 2014 2 a5
Ots 2014 2 a5Ots 2014 2 a5
Ots 2014 2 a5
 
Lenguaje Ensamblador
Lenguaje EnsambladorLenguaje Ensamblador
Lenguaje Ensamblador
 
Tipos De Lenguajes
Tipos De LenguajesTipos De Lenguajes
Tipos De Lenguajes
 
Relatório de Gestão 2008 - Sala Verde Judith Cortesão FURG
Relatório de Gestão 2008 - Sala Verde Judith Cortesão FURGRelatório de Gestão 2008 - Sala Verde Judith Cortesão FURG
Relatório de Gestão 2008 - Sala Verde Judith Cortesão FURG
 
Unidad 1 interfaz
Unidad 1 interfazUnidad 1 interfaz
Unidad 1 interfaz
 
Lenguaje de ensamblador daniel romo 9 a -san felipe
Lenguaje de ensamblador daniel romo 9 a -san felipeLenguaje de ensamblador daniel romo 9 a -san felipe
Lenguaje de ensamblador daniel romo 9 a -san felipe
 
Nivel de lenguaje ensamblador
Nivel de lenguaje ensamblador Nivel de lenguaje ensamblador
Nivel de lenguaje ensamblador
 
Lenguaje Ensamblador
Lenguaje EnsambladorLenguaje Ensamblador
Lenguaje Ensamblador
 
Mipag web
Mipag webMipag web
Mipag web
 
Lenguajeensamblador
LenguajeensambladorLenguajeensamblador
Lenguajeensamblador
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
programa 1 en lenguaje ensamblador
programa 1 en lenguaje ensambladorprograma 1 en lenguaje ensamblador
programa 1 en lenguaje ensamblador
 

Similar a Lenguaje de ensamblador

lenguaje ensamblador.ppt
lenguaje ensamblador.pptlenguaje ensamblador.ppt
lenguaje ensamblador.pptCesarSaucedo17
 
Presentación lenguajedeprogramacion
Presentación lenguajedeprogramacionPresentación lenguajedeprogramacion
Presentación lenguajedeprogramacionmichelledelgado97
 
Conceptos básicos y metodología de la programación
Conceptos básicos y metodología de la programaciónConceptos básicos y metodología de la programación
Conceptos básicos y metodología de la programaciónMarco Chunab
 
Diapositivas lenguaje ensamblador
Diapositivas lenguaje ensambladorDiapositivas lenguaje ensamblador
Diapositivas lenguaje ensambladorDANIELCUEVASUAREZ
 
02- Clase 1 - UD2 - Lenguajes.pdf
02- Clase 1 - UD2 -  Lenguajes.pdf02- Clase 1 - UD2 -  Lenguajes.pdf
02- Clase 1 - UD2 - Lenguajes.pdfNancyHerrera88
 
Lenjuage_ensamblador_UTEQ
Lenjuage_ensamblador_UTEQLenjuage_ensamblador_UTEQ
Lenjuage_ensamblador_UTEQGabriel Nuñez
 
Assembler apesteguia (1)
Assembler apesteguia (1)Assembler apesteguia (1)
Assembler apesteguia (1)tonytenorio2
 
Compilador e interpretador
Compilador e interpretadorCompilador e interpretador
Compilador e interpretadorFrancisco Leal
 
Conceptos básicos y metodología de la programación
Conceptos básicos y metodología de la programaciónConceptos básicos y metodología de la programación
Conceptos básicos y metodología de la programaciónjusto morales
 
02_Lenguajes_de_programacion_y_compiladores.pdf
02_Lenguajes_de_programacion_y_compiladores.pdf02_Lenguajes_de_programacion_y_compiladores.pdf
02_Lenguajes_de_programacion_y_compiladores.pdfJORGEWILLIAMDEJESUSD
 
lenguajes de programacion
lenguajes de programacion lenguajes de programacion
lenguajes de programacion MJhoana Quispe
 
Assembler
AssemblerAssembler
Assemblerwai258
 

Similar a Lenguaje de ensamblador (20)

LENGUAJE ENSAMBLADOR
LENGUAJE ENSAMBLADORLENGUAJE ENSAMBLADOR
LENGUAJE ENSAMBLADOR
 
lenguaje ensamblador.ppt
lenguaje ensamblador.pptlenguaje ensamblador.ppt
lenguaje ensamblador.ppt
 
Presentación lenguajedeprogramacion
Presentación lenguajedeprogramacionPresentación lenguajedeprogramacion
Presentación lenguajedeprogramacion
 
Conceptos básicos y metodología de la programación
Conceptos básicos y metodología de la programaciónConceptos básicos y metodología de la programación
Conceptos básicos y metodología de la programación
 
Diapositivas lenguaje ensamblador
Diapositivas lenguaje ensambladorDiapositivas lenguaje ensamblador
Diapositivas lenguaje ensamblador
 
02- Clase 1 - UD2 - Lenguajes.pdf
02- Clase 1 - UD2 -  Lenguajes.pdf02- Clase 1 - UD2 -  Lenguajes.pdf
02- Clase 1 - UD2 - Lenguajes.pdf
 
Lenjuage_ensamblador_UTEQ
Lenjuage_ensamblador_UTEQLenjuage_ensamblador_UTEQ
Lenjuage_ensamblador_UTEQ
 
Introduccion ensamblador
Introduccion ensambladorIntroduccion ensamblador
Introduccion ensamblador
 
Clases/Tipos de lenguajes de programación
Clases/Tipos de lenguajes de programaciónClases/Tipos de lenguajes de programación
Clases/Tipos de lenguajes de programación
 
Assembler apesteguia (1)
Assembler apesteguia (1)Assembler apesteguia (1)
Assembler apesteguia (1)
 
Compilador e interpretador
Compilador e interpretadorCompilador e interpretador
Compilador e interpretador
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Conceptos básicos y metodología de la programación
Conceptos básicos y metodología de la programaciónConceptos básicos y metodología de la programación
Conceptos básicos y metodología de la programación
 
02_Lenguajes_de_programacion_y_compiladores.pdf
02_Lenguajes_de_programacion_y_compiladores.pdf02_Lenguajes_de_programacion_y_compiladores.pdf
02_Lenguajes_de_programacion_y_compiladores.pdf
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
lenguajes de programacion
lenguajes de programacion lenguajes de programacion
lenguajes de programacion
 
Assembler
AssemblerAssembler
Assembler
 
C y siistemas operativos
C y siistemas operativosC y siistemas operativos
C y siistemas operativos
 
Lenguaje C _ C++
Lenguaje C _ C++Lenguaje C _ C++
Lenguaje C _ C++
 
Lenguaje c
Lenguaje cLenguaje c
Lenguaje c
 

Último

Presentación de html, css y javascript.
Presentación  de html, css y javascript.Presentación  de html, css y javascript.
Presentación de html, css y javascript.CeteliInmaculada
 
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOSISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOELIAMARYTOVARFLOREZD
 
Introducción a Plone CMS - World Plone Day 2024
Introducción a Plone CMS - World Plone Day 2024Introducción a Plone CMS - World Plone Day 2024
Introducción a Plone CMS - World Plone Day 2024Leonardo J. Caballero G.
 
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxMacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxcalzadillasluis134
 
Theme design in Plone 6 - World Plone Day 2024
Theme design in Plone 6 - World Plone Day 2024Theme design in Plone 6 - World Plone Day 2024
Theme design in Plone 6 - World Plone Day 2024Leonardo J. Caballero G.
 
Semana 5-Conceptualización del lenguaje de programación C++
Semana 5-Conceptualización del lenguaje de programación C++Semana 5-Conceptualización del lenguaje de programación C++
Semana 5-Conceptualización del lenguaje de programación C++luzgaray6
 

Último (6)

Presentación de html, css y javascript.
Presentación  de html, css y javascript.Presentación  de html, css y javascript.
Presentación de html, css y javascript.
 
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOSISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
 
Introducción a Plone CMS - World Plone Day 2024
Introducción a Plone CMS - World Plone Day 2024Introducción a Plone CMS - World Plone Day 2024
Introducción a Plone CMS - World Plone Day 2024
 
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxMacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
 
Theme design in Plone 6 - World Plone Day 2024
Theme design in Plone 6 - World Plone Day 2024Theme design in Plone 6 - World Plone Day 2024
Theme design in Plone 6 - World Plone Day 2024
 
Semana 5-Conceptualización del lenguaje de programación C++
Semana 5-Conceptualización del lenguaje de programación C++Semana 5-Conceptualización del lenguaje de programación C++
Semana 5-Conceptualización del lenguaje de programación C++
 

Lenguaje de ensamblador

  • 1. UNIVERSIDAD TÉCNICA DEL NORTE INGENIERIA EN ELECTRONICA Y REDES DE COMUNICACION 1 ‘’LENGUAJE ENSAMBLADOR’’ SISTEMAS OPERTATIVOS DIAZ JOHN
  • 2. Introducción • El ordenador solo entiende el lenguaje de código binario o código maquina ,solo utiliza 0 y 1 para de codificar cualquier acción . 2
  • 3. Lenguaje de bajo nivel • Son lenguajes totalmente dependientes de la maquina . • Dentro de este grupo se encuentra el lenguaje ensamblador. 3
  • 4. Lenguaje Ensamblador • Derivado del lenguaje maquina , formado por abreviaturas de letras y números llamadas mnemotécnicos . 4
  • 5. ¿Qué es un lenguaje ensamblador? 5 •Es un lenguaje en el que cada enunciado produce exactamente una instrucción maquina. •Los lenguajes ensambladores tienen acceso a todas las características 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 generación a partir de el se derivaron todos los demás lenguajes hasta llegar a los de alto nivel. 6
  • 7. Características 7 •Ensamblador es directamente traducible al Lenguaje de Máquina, y viceversa. •La computadora no entiende directamente al Lenguaje Ensamblador; es necesario traducirle a Lenguaje de Máquina. • Se utilizan traductores que convierten el código fuente (en Lenguaje Ensamblador) a código objeto. •El usar los traductores de código son con el fin de facilitar la programación y tener el control del harware.
  • 8. Ventajas y desventajas del Lenguaje Ensamblador vs lenguaje de alto nivel 8 Lenguaje Ensamblador. 1. Velocidad 2. Eficiencia de tamaño. 3. Flexibilidad Lenguaje de alto nivel. 1. Tiempo de programación 2. Programas fuente grandes 3. Peligro de afectar recursos inesperadamente. 4. Falta de portabilidad
  • 9. Velocidad 9 •Implica un proceso de cómputo adicional al que el programador quiere realizar. •Un intérprete es siempre más lento que realizar la misma acción en Lenguaje Ensamblador. •Los compiladores son mucho más rápidos que los intérpretes, pues hacen la traducción una vez y dejan el código objeto. •Mayor parte de las veces, el código generado por un compilador es menos eficiente que el código equivalente que un programador escribiría.
  • 10. Tamaño • Existen programas donde el uso de las memoria es critico para esos casos es eficiente el lenguaje ensamblador por la mínima cantidad de recursos de los que dispone 10
  • 11. Flexibilidad 11 Las razones anteriores son cuestión 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 programación 12 Requiere más instrucciones para realizar el mismo proceso. Por otro lado, requiere de más cuidado por parte del programador
  • 13. Programa fuentes grandes • Crecen los programas fuentes; simplemente, requerimos más 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. 13
  • 14. Peligro de afectar recursos • El problema es que todo error que podamos cometer, o todo riesgo que podamos tener, podemos tenerlo también en este Lenguaje. Dicho de otra forma, tener mucho poder es útil pero también es peligroso. 14
  • 15. Falta de portabilidad • Como ya se mencionó, existe un lenguaje ensamblador para cada máquina; por ello, evidentemente no es una selección apropiada de lenguaje cuando deseamos codificar en una máquina y luego llevar los programas a otros SO. 15
  • 16. 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 16
  • 17. Registros • Los registros del procesador se emplean para controlar instrucciones en ejecución, manejar direccionamiento de memoria y proporcionar capacidad aritmética. 17
  • 18. Registros de segmento • Codifica la dirección de inicio de cada segmento y su dirección en un registro de segmento supone cuatro bits 0 a su derecha. • Registro CS • Registro DS • Registro SS • Registro ES • Registro FS y GS 18
  • 19. Registro Apuntador • Los registros apuntadores están asociados con el registro SS y permiten al procesador accesar datos en el segmento de pila los registros apuntadores son dos. • El registro SP • El registro BP 19
  • 20. Registros de propósitos 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 20
  • 21. Registro índice. • Los registros SI y DI están disponibles para direccionamientos indexados y para sumas y restas. Que son la operaciones de punta. • SI y DI 21
  • 22. El proceso de ensamblado • El lenguaje interactúa directamente con los dispositivos de hardware y dispositivos lógicos como las memorias y el CPU 22 Programa Compilar Lenguaje ensamblador Ensamble CPU
  • 23. Programación Hibrida • La programación híbrida 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 más rápidos y eficientes. 23 Bajo Nivel Alto Nivel
  • 24. Aplicaciones • El uso del lenguaje ensamblador no es para la gente común y corriente, sino para profesionistas en el área de computación que están obligados a conocer este lenguaje, ya que proporciona una serie de características que no se pueden encontrar en los lenguajes de alto nivel. 24
  • 25. 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 vía interrupciones de software • Se pueden programar drivers de cualquier dispositivo. • Programación de Microcontroloadores • Creación de compiladores • Se puede acceder directamente a los dispositivos de entrada y/o salida. 25
  • 26. Ramas en las que se aplica • Sistemas Embebidos: impresoras, cámaras, autos, juguetes, etc. • Industria y Manufactura: adquisición datos y control, eg robots. • Transporte y Aeronaútica: barcos, aviones, sondas espaciales, etc. • Graficación, Multimedia, Cine y Video Juegos • Procesamiento de Señales, Voz e Imágenes • Armamento y Defensa 26
  • 27. Conclusiones • El lenguaje ensamblador a pesar de ser mas rápido de cualquier otro lenguaje es también el mas complejo por eso es utilizado para complementar los limitantes de los lenguajes de programación de alto nivel. 27
  • 28. Conclusiones • Pero existen ramas donde es imprescindible el uso de lenguaje ensamblador como lo es la electrónica donde los recursos de los aparatos son limitados y es necesario utilizar lenguaje ensamblador 28
  • 29. Bibliografía *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 Yazmín 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 29