SlideShare una empresa de Scribd logo
1 de 19
Descargar para leer sin conexión
12/02/2014
1
IMPORTANCIA DE LA PROGRAMACION EN
LENGUAJE ENSAMBLADOR
• Un programa escrito en lenguaje ensamblador requiere considerablemente
menos memoria y se ejecuta más rápidamente que un programa escrito en un
lenguaje de alto nivel como Pascal.
• El lenguaje ensamblador ofrece al programador la posibilidad de realizar
tareas muy específicas que sería muy difícil llevar a cabo en un lenguaje de
alto nivel.
• El conocimiento del lenguaje ensamblador permite una comprensión de la
arquitectura de la máquina que ningún lenguaje de alto nivel puede ofrecer.
12/02/2014
2
• Desarrollar aplicaciones en lenguajes de alto nivel resulta mucho más
productivo que hacerlo en ensamblador, pero este último resulta
especialmente atractivo cuando hay que optimizar determinadas rutinas que
suponen un cuello de botella para el rendimiento del sistema.
• Los programas residentes y las rutinas de servicio de interrupción casi
siempre se escriben en ensamblador.
• La carga inicial de un S.O. debe realizarse en ensamblador, pues hacerlo con
un lenguaje de alto nivel supondría usar instrucciones que en ese momento
no pueden ser ejecutadas por la máquina.
12/02/2014
3
Ventajas del lenguaje ensamblador:
• Velocidad de ejecución de los programas
• Mayor control sobre el hardware de la computadora
Desventajas del lenguaje ensamblador:
• Repetición constante de grupos de instrucciones
• No existe una sintaxis estandarizada
• Dificultad para encontrar errores en los programas.
¿QUÉ SON LOS REGISTROS?
UN REGISTRO ES UNA MEMORIA DE ALTA VELOCIDAD
Y POCA CAPACIDAD, INTEGRADA EN EL
MICROPROCESADOR, QUE PERMITE GUARDAR
TRANSITORIAMENTE DATOS.
12/02/2014
4
EL PROCESADOR
EL PROCESADOR SOLO ENTIENDE UN
LENGUAJE QUE SE CONOCE COMO:
LENGUAJE ENSAMBLADOR
O
LENGUAJE MAQUINA
REGISTROS
UNO DE LOS MÓDULOS PRINCIPALES QUE
UTILIZA EL LENGUAJE ENSAMBLADOR PARA
MANEJAR EL PROCESADOR SON LOS REGISTROS.
LOS REGISTROS SE EMPLEAN PARA CONTROLAR
INSTRUCCIONES EN EJECUCIÓN, MANEJAR
DIRECCIONAMIENTO DE MEMORIA Y
PROPORCIONAR CAPACIDAD ARITMÉTICA.
12/02/2014
5
LOS REGISTROS INTERNOS DEL PROCESADOR SE
PUEDE CLASIFICAR EN 6 TIPOS DIFERENTES:
• Registros de segmento
• Registros de propósito general
• Registro de apuntadores
• Registro de banderas
• Registros de Puntero de instrucción
• Registros de pila
MEMORIA
PRINCIPAL(RAM)
12/02/2014
6
MEMORIA:
• Es el espacio que necesita la CPU para poder guardar los
programas y los datos que se manipulan mientras están en
uso. Desde el punto de vista físico, la memoria consiste en
chips, ya sea en la tarjeta madre o en un pequeño tablero de
circuitos conectados a ésta.
LA MEMORIA PRINCIPAL O RAM (MEMORIA DE ACCESO
ALEATORIO)
• Es donde el ordenador guarda los datos que está utilizando
en el momento presente; son los "megas" famosos en
número de 32, 64 ó 128.
• Por su función, es una amiga inseparable del
microprocesador, con el cual se comunica a través de los
buses de datos.
12/02/2014
7
• Por ejemplo, cuando la CPU tiene que
ejecutar un programa, primero lo coloca
en la memoria y después lo empieza a
ejecutar.
• Esta clase de memoria es volátil, es decir
que, cuando se corta la energía eléctrica,
se borra toda la información que estuviera
almacenada en ella.
ROM O MEMORIA DE SOLO LECTURA
• contiene un conjunto de instrucciones de inicio que aseguran que
el resto de la memoria esté funcionando de manera apropiada;
verifica los dispositivos de hardware y busca un sistema operativo
en las unidades de disco de la computadora
12/02/2014
8
INTERRUPCIONES
¿QUE ES UNA INTERRUPCIÓN?
• Una interrupción es el rompimiento en la secuencia de un programa para para ejecutar un programa
especial.
12/02/2014
9
CLASES
• Interrupciones por software
• Son aquellas programadas por el usuario, es decir, el usuario decide cuando y donde ejecutarlas, generalmente
son usadas para realizar entrada y salida.
• Interrupciones por hardware
• Son aquellas que son provocadas por dispositivos
• externos al procesador
INTERRUPCIONES POR HARDWARE
EXISTEN 2 TIPOS
• Interrupciones por hardware enmascarables:
• Aquellas en las que el usuario decide si quiere o no ser interrumpido.
• Interrupciones por hardware no enmascarables (NMI):
• Aquellas que siempre interrumpen al programa.
12/02/2014
10
1.5 LLAMADAS AL SISTEMA
(SYSTEM CALL)
ES UN MÉTODO O FUNCIÓN QUE PUEDE INVOCAR UN PROCESO PARA
SOLICITAR CIERTO SERVICIO AL SISTEMA OPERATIVO .
LAS LLAMADAS SON PETICIONES A EJECUCIÓN DE RUTINAS,
PROPORCIONAN LA INTERFAZ ENTRE EL SISTEMA OPERATIVO Y UN
PROGRAMA EN EJECUCIÓN.
• SON INSTRUCCIONES DE LENGUAJE ENSAMBLADOR
• SE PRESENTAN EN LOS MANUALES QUE EMPLEAN LOS
PROGRAMADORES DE ESTE LENGUAJE.
Llamadas al sistema:
• TIME: Permite obtener la fecha y hora del sistema
• WRITE: Se emplea para escribir un dato en un cierto dispositivo de salida, tales
como una pantalla o un disco magnético
• READ: Es usada para leer de un dispositivo de entrada, tales como un teclado o un
disco magnético
• OPEN: Es usada para obtener un descriptor de un fiche del sistema, ese fichero
suele pasarse a write
12/02/2014
11
Algunos sistemas permiten efectuar llamadas al
sistema directamente desde un programa realizado en
el lenguaje a mayor nivel se asemejan a una función o
sub-rutinas que generan una llamada a una ruta en
especial de tiempo de ejecución.
Ejemplo: En el procesador INTEL es INT y en
UNIX son rutinas
El siguiente diagrama ilustra la relación entre la Shell y el
Kernel.
• El Shell es lo que el sistema operativo nos muestra, la
portada, el intérprete de comandos, etc.
• El Kernel es el núcleo del sistema operativo.
12/02/2014
12
INTRODUCCIÓN:
Modo de direccionamiento: mecanismo que permite conocer la ubicación de un dato o instrucción, una
computadora dispone de varios modos de direccionamiento.
Objeto: dato o instrucción que se desea direccionar.
Objetivos de los modos de direccionamiento:
• Reducir el espacio ocupado en memoria por las instrucciones.
• Permitir la reubicación del código.
• Facilitar el manejo de las estructuras de datos.
• Implícito: Llamado también inherente, el operando se especifica en la misma
definición de la instrucción.
• Inmediato: El operando es el que figura en la instrucción, no su dirección.
Este modo es útil para inicializar registros o palabras de memoria con un valor
constante.
• Directo: El campo de operando en la instrucción contiene la direccion en
memoria donde se encuentra el operando
• Indirecto: Aquí, el campo de operando de la instrucción indica la localización
de la dirección efectiva del operando.
12/02/2014
13
• EJECUCION
Para la ejecución del programa simplemente basta teclear su nombre en el
prompt de MS-DOS y teclear ENTER. Con esto el programa será cargado en
memoria y el sistema procederá a ejecutarlo. El proceso completo para poder
crear un programa ejecutable con el Microsoft Macro Assembler se muestra
abajo.
ESTRUCTURA GENERAL DE UN PROGRAMA EN LENGUAJE ENSAMBLADOR.
• Lenguaje ensamblador que usa servicios o funciones de MS-DOS (system calls) para imprimir el mensaje Hola
mundo!! en pantalla.
• ; HOLA.ASM
• ; Programa clasico de ejemplo. Despliega una leyenda en pantalla.
• STACK SEGMENT STACK ; Segmento de pila
• DW 64 DUP (?) ; Define espacio en la pila
• STACK ENDS
• DATA SEGMENT ; Segmento de datos
• SALUDO DB "Hola mundo!!",13,10,"$" ; Cadena
• DATA ENDS
• CODE SEGMENT ; Segmento de Codigo
• ASSUME CS:CODE, DS:DATA, SS:STACK
• INICIO: ; Punto de entrada al programa
• MOV AX,DATA ; Pone direccion en AX
• MOV DS,AX ; Pone la direccion en los registros
• MOV DX,OFFSET SALUDO ; Obtiene direccion del mensaje
• MOV AH,09H ; Funcion: Visualizar cadena
• INT 21H ; Servicio: Funciones alto nivel DOS
• MOV AH,4CH ; Funcion: Terminar
• INT 21H
• CODE ENDS
• END INICIO ; Marca fin y define INICIO
12/02/2014
14
• Estructura de una línea:
• INSTRUCCIÓN EN ENSAMBLADOR
• INSTRUCCIÓN EN LENGUAJE MÁQUINA
SINTAXIS DE UN LENGUAJE ENSAMBLADOR
DIRECCIÓN CÓDIGO DE OPERACIÓN DIRECCIÓN DE LOS
OPERANDOS
12/02/2014
15
• Etiqueta
• - Identifica la línea en la cual se encuentra.
• - Se asocia a la dirección en la cual se encuentra la instrucción o el dato, o a la constante definida.
• - Recomendaciones
• • Utilizar sólo letras o números (comenzar por una letra).
• • Colocar la primera letra de la etiqueta en el primer carácter de la línea.
• Nemotécnico
• - Identifica:
• • Un código de operación del lenguaje
• • Una pseudoinstrucción
• Campo de operandos
• - Identifica los operandos que intervienen en la instrucción o pseudoinstrucción.
• - Tipos de operandos:
• • Constantes
• ∗ Numéricas: decimales(D), binarias (%,B), octales (O,@,Q,C),
• hexadecimales (H,$).
• ∗ Alfabéticas: entre comillas.
• • Símbolos
• ∗ Predefinidos: registros, contador de dirección de ensamblado.
• ∗ Implícitos: etiquetas de dirección.
• ∗ Explícitos: mediante pseudoinstrucciones.
• • Expresiones
• Comentarios
• - Indicaciones para una mejor comprensión del programa ensamblador.
• - Pueden comenzar con el símbolo “;”.
CAMPOS DE UNA INSTRUCCIÓN EN ENSAMBLADOR
• Registros de datos
• Registros de segmento
• Registros punteros de la pila
• Registros índices
• Registro de instrucciones
• Registro de flags de estado
EL MICROPROCESADOR 8086 TIENE CATORCE
REGISTROS DE 16 BITS:
12/02/2014
16
• Los registros competos ax, bx, cx, dx trabajan sobre 16
bits, mientras la parte alta (ah, bh, ch, dh) y baja (al, bl, cl,
dl) de cada registro trabaja sobre 8 bits, es esencial
conocerlo para a la hora de programar no cometer errores
en mover datos de un registro a otro.
ax (ah - al) - acumulador
bx (bh - bl) - registro base
cx (ch - cl) - registro contador
dx (dh - dl) - registro de datos
sp - registro del apuntador de pila
REGISTROS DE DATOS
• SP - Puntero de pila
• BP - Puntero base de pila
• SI - Registro índice
• DI - Registro índice
• IP - Contador de programa
REGISTROS PUNTEROS: REGISTRO DEL APUNTADOR
DE PILA
12/02/2014
17
• CS - segmento de código
• DS - segmento de datos
• ES - segmento extra
• SS - segmento pila
REGISTROS DE SEGMENTO:
INSTRUCCIONES DE TRANSAFERENCIA DE DATOS
• mov: mueve o transfiere
• xchg: intercambia
• in: entrada
• out:salida
• xlat: traduce usando una tabla
• lea: carga la direccion efectiva
• lds: carga el segmento de
datos
• les: carga el segmento extra
lahf: carga los indicadores en ah
sahf: guarda ah en los
indicadores
push fuente: (sp)<- fuente
pop destino: destino <- (sp)
12/02/2014
18
INSTRUCCIONES ARITMÉTICAS
add: suma
adc: suma con acarreo
aaa: ajuste ascii para la suma
daa: ajuste decimal para la suma
sub: resta
sbb: resta con acarreo negativo
aas: ajuste ascii para la resta
das: ajuste decimal para la resta
mul: multiplicacion
imul: multiplicacion entera
aam: ajuste ascii para la multiplicacion
div: division
idiv: division entera
aad: ajuste ascii para la division
cbw: pasar octeto a palabra
cwd: pasar palabra a doble palabra
neg: negacion
sti: poner a 1 el indicador de interrupcion
cli: borrar el indicador de interrupcion
into: interrupcion por capacidad excedida(desbordamiento)
iret: retorno de interrupcion
int: interrupcion
int 21: interrupcion 21, esta manda llamar al sistema operativo que ejecuta las instrucciones anteriores
int 20: interrupcion 20, esta interrupcion ejecuta lo anterior y termina el programa para que no se cicle
INTERRUPCIONES
12/02/2014
19

Más contenido relacionado

La actualidad más candente

Autómatas de Pila
Autómatas de PilaAutómatas de Pila
Autómatas de Pila
Pablo Guerra
 
Equipo 6 programacion hibrida
Equipo 6 programacion hibridaEquipo 6 programacion hibrida
Equipo 6 programacion hibrida
gabo
 
Amplitud modulada (am)
Amplitud modulada (am)Amplitud modulada (am)
Amplitud modulada (am)
Juan Miguel
 
Codificación Convolucional, Decodificador de Viterbi y Turbo Código
Codificación Convolucional, Decodificador de Viterbi y Turbo CódigoCodificación Convolucional, Decodificador de Viterbi y Turbo Código
Codificación Convolucional, Decodificador de Viterbi y Turbo Código
Oscar Javier Jimenez Revelo
 
Organización y estructura interna del cpu
Organización y estructura interna del cpuOrganización y estructura interna del cpu
Organización y estructura interna del cpu
Isaí Beto Matz Mijes
 
Interrupciones del microprocesador
Interrupciones del microprocesadorInterrupciones del microprocesador
Interrupciones del microprocesador
Jorge Luis Tinoco
 
Actividad 2 Analizador léxico, sintáctico y semántico
Actividad 2 Analizador léxico, sintáctico y semántico Actividad 2 Analizador léxico, sintáctico y semántico
Actividad 2 Analizador léxico, sintáctico y semántico
maryr_
 

La actualidad más candente (20)

Fundamentos de Telecomunicaciones Unidad 2 medios de transmisión y caracterís...
Fundamentos de Telecomunicaciones Unidad 2 medios de transmisión y caracterís...Fundamentos de Telecomunicaciones Unidad 2 medios de transmisión y caracterís...
Fundamentos de Telecomunicaciones Unidad 2 medios de transmisión y caracterís...
 
macros Lenguaje ensamblador
macros Lenguaje ensambladormacros Lenguaje ensamblador
macros Lenguaje ensamblador
 
Ensamblador y enlazador
Ensamblador y enlazadorEnsamblador y enlazador
Ensamblador y enlazador
 
Autómatas de Pila
Autómatas de PilaAutómatas de Pila
Autómatas de Pila
 
Lenguajes autómatas.
Lenguajes autómatas.Lenguajes autómatas.
Lenguajes autómatas.
 
Equipo 6 programacion hibrida
Equipo 6 programacion hibridaEquipo 6 programacion hibrida
Equipo 6 programacion hibrida
 
Analizador léxico
Analizador léxicoAnalizador léxico
Analizador léxico
 
Compilador
CompiladorCompilador
Compilador
 
Amplitud modulada (am)
Amplitud modulada (am)Amplitud modulada (am)
Amplitud modulada (am)
 
Tópicos Avanzados de Programación - Unidad 4 Acceso a datos
Tópicos Avanzados de Programación - Unidad 4 Acceso a datosTópicos Avanzados de Programación - Unidad 4 Acceso a datos
Tópicos Avanzados de Programación - Unidad 4 Acceso a datos
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Codificación Convolucional, Decodificador de Viterbi y Turbo Código
Codificación Convolucional, Decodificador de Viterbi y Turbo CódigoCodificación Convolucional, Decodificador de Viterbi y Turbo Código
Codificación Convolucional, Decodificador de Viterbi y Turbo Código
 
Investigacion errores lexicos
Investigacion errores lexicosInvestigacion errores lexicos
Investigacion errores lexicos
 
Organización y estructura interna del cpu
Organización y estructura interna del cpuOrganización y estructura interna del cpu
Organización y estructura interna del cpu
 
Codigos de Linea - Telecomunicaciones III
Codigos de Linea - Telecomunicaciones IIICodigos de Linea - Telecomunicaciones III
Codigos de Linea - Telecomunicaciones III
 
Investigacion sobre traductor, interprete y compilador
Investigacion sobre traductor, interprete y compilador   Investigacion sobre traductor, interprete y compilador
Investigacion sobre traductor, interprete y compilador
 
Variables, constantes y tipos de datos en C
Variables, constantes y tipos de datos en CVariables, constantes y tipos de datos en C
Variables, constantes y tipos de datos en C
 
Interrupciones del microprocesador
Interrupciones del microprocesadorInterrupciones del microprocesador
Interrupciones del microprocesador
 
Actividad 2 Analizador léxico, sintáctico y semántico
Actividad 2 Analizador léxico, sintáctico y semántico Actividad 2 Analizador léxico, sintáctico y semántico
Actividad 2 Analizador léxico, sintáctico y semántico
 
Jose luisroisic6a 20042015
Jose luisroisic6a 20042015Jose luisroisic6a 20042015
Jose luisroisic6a 20042015
 

Destacado

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
DanielRomoDR
 
Nivel de lenguaje ensamblador
Nivel de lenguaje ensamblador Nivel de lenguaje ensamblador
Nivel de lenguaje ensamblador
evelynm10
 
Lenguaje Ensamblador
Lenguaje EnsambladorLenguaje Ensamblador
Lenguaje Ensamblador
gbermeo
 
Lengujes de 2 generacion
Lengujes de 2 generacionLengujes de 2 generacion
Lengujes de 2 generacion
Miguel Angel
 

Destacado (20)

Lenguaje Ensamblador
Lenguaje EnsambladorLenguaje Ensamblador
Lenguaje Ensamblador
 
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
 
Tipos De Lenguajes
Tipos De LenguajesTipos De Lenguajes
Tipos De Lenguajes
 
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
 
Ots 2014 2 a5
Ots 2014 2 a5Ots 2014 2 a5
Ots 2014 2 a5
 
Nivel de lenguaje ensamblador
Nivel de lenguaje ensamblador Nivel de lenguaje ensamblador
Nivel de lenguaje ensamblador
 
Lenguajeensamblador
LenguajeensambladorLenguajeensamblador
Lenguajeensamblador
 
Mipag web
Mipag webMipag web
Mipag web
 
Lenguaje Ensamblador
Lenguaje EnsambladorLenguaje Ensamblador
Lenguaje Ensamblador
 
Lengujes de 2 generacion
Lengujes de 2 generacionLengujes de 2 generacion
Lengujes de 2 generacion
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
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
 
5154 Tema3 Jose Rojas
5154 Tema3 Jose Rojas5154 Tema3 Jose Rojas
5154 Tema3 Jose Rojas
 
Data segment
Data segmentData segment
Data segment
 
Lenguaje de ensamblador
Lenguaje de ensambladorLenguaje de ensamblador
Lenguaje de ensamblador
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Manejo de archivo
Manejo de archivoManejo de archivo
Manejo de archivo
 
Emulador 8086.
Emulador 8086.Emulador 8086.
Emulador 8086.
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 

Similar a Unidad 1 interfaz

Sistemas Operativos: Tendencias, Hardware, Software, Memoria Fija
Sistemas Operativos: Tendencias, Hardware, Software, Memoria FijaSistemas Operativos: Tendencias, Hardware, Software, Memoria Fija
Sistemas Operativos: Tendencias, Hardware, Software, Memoria Fija
Student A
 
C21 cm23 eq4-arquitecturadecomputadoraspresentacion-primer parcial
C21 cm23 eq4-arquitecturadecomputadoraspresentacion-primer parcialC21 cm23 eq4-arquitecturadecomputadoraspresentacion-primer parcial
C21 cm23 eq4-arquitecturadecomputadoraspresentacion-primer parcial
Hugo Strks
 
Hardware y Software (S.O)
Hardware y Software (S.O)Hardware y Software (S.O)
Hardware y Software (S.O)
Javier Alvarez
 
Abf leccion 03
Abf leccion 03Abf leccion 03
Abf leccion 03
victdiazm
 

Similar a Unidad 1 interfaz (20)

Introduccion a la programacion
Introduccion a la programacionIntroduccion a la programacion
Introduccion a la programacion
 
Modelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasModelos de arquitecturas de computadoras
Modelos de arquitecturas de computadoras
 
Clase 3
Clase 3Clase 3
Clase 3
 
Sistemas Operativos: Tendencias, Hardware, Software, Memoria Fija
Sistemas Operativos: Tendencias, Hardware, Software, Memoria FijaSistemas Operativos: Tendencias, Hardware, Software, Memoria Fija
Sistemas Operativos: Tendencias, Hardware, Software, Memoria Fija
 
Arquirectura y programacion de un microprocesador x86
Arquirectura y programacion de un microprocesador x86Arquirectura y programacion de un microprocesador x86
Arquirectura y programacion de un microprocesador x86
 
Arquirectura y programacion de un microprocesador x86
Arquirectura y programacion de un microprocesador x86Arquirectura y programacion de un microprocesador x86
Arquirectura y programacion de un microprocesador x86
 
MICROCONTROLADOR
MICROCONTROLADORMICROCONTROLADOR
MICROCONTROLADOR
 
Microcontroladores Ciscx
Microcontroladores CiscxMicrocontroladores Ciscx
Microcontroladores Ciscx
 
Arquitectura de computadoras laura molina z
Arquitectura de computadoras laura molina zArquitectura de computadoras laura molina z
Arquitectura de computadoras laura molina z
 
C21 cm23 eq4-arquitecturadecomputadoraspresentacion-primer parcial
C21 cm23 eq4-arquitecturadecomputadoraspresentacion-primer parcialC21 cm23 eq4-arquitecturadecomputadoraspresentacion-primer parcial
C21 cm23 eq4-arquitecturadecomputadoraspresentacion-primer parcial
 
JONATHAN JOEL CRUZ
JONATHAN JOEL CRUZJONATHAN JOEL CRUZ
JONATHAN JOEL CRUZ
 
JONATHAN JOEL CRUZ
JONATHAN JOEL CRUZJONATHAN JOEL CRUZ
JONATHAN JOEL CRUZ
 
Introduccion al assembler[1]
Introduccion al assembler[1]Introduccion al assembler[1]
Introduccion al assembler[1]
 
Introduccion al assembler
Introduccion al assemblerIntroduccion al assembler
Introduccion al assembler
 
Segundo blog arquitectura de hardware tercer corte
Segundo blog arquitectura de hardware tercer corteSegundo blog arquitectura de hardware tercer corte
Segundo blog arquitectura de hardware tercer corte
 
Arquitectura del cpu
Arquitectura del cpuArquitectura del cpu
Arquitectura del cpu
 
Unidad central de procesamiento
Unidad central de procesamientoUnidad central de procesamiento
Unidad central de procesamiento
 
Hardware y Software (S.O)
Hardware y Software (S.O)Hardware y Software (S.O)
Hardware y Software (S.O)
 
Abf leccion 03
Abf leccion 03Abf leccion 03
Abf leccion 03
 
Arquitectura de Computadores
Arquitectura de ComputadoresArquitectura de Computadores
Arquitectura de Computadores
 

Último

4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdf
4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdf4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdf
4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdf
nicolascastaneda8
 
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptxNTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptx
BRAYANJOSEPTSANJINEZ
 
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
gustavoiashalom
 
MODIFICADO - CAPITULO II DISEÑO SISMORRESISTENTE DE VIGAS Y COLUMNAS.pdf
MODIFICADO - CAPITULO II DISEÑO SISMORRESISTENTE DE VIGAS Y COLUMNAS.pdfMODIFICADO - CAPITULO II DISEÑO SISMORRESISTENTE DE VIGAS Y COLUMNAS.pdf
MODIFICADO - CAPITULO II DISEÑO SISMORRESISTENTE DE VIGAS Y COLUMNAS.pdf
vladimirpaucarmontes
 

Último (20)

Principales aportes de la carrera de William Edwards Deming
Principales aportes de la carrera de William Edwards DemingPrincipales aportes de la carrera de William Edwards Deming
Principales aportes de la carrera de William Edwards Deming
 
4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdf
4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdf4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdf
4º Clase Laboratorio (2024) Completo Mezclas Asfalticas Caliente (1).pdf
 
TIPOS DE SOPORTES - CLASIFICACION IG.pdf
TIPOS DE SOPORTES - CLASIFICACION IG.pdfTIPOS DE SOPORTES - CLASIFICACION IG.pdf
TIPOS DE SOPORTES - CLASIFICACION IG.pdf
 
MANTENIBILIDAD Y CONFIABILIDAD DE LOS SISTEMAS MECANICOS
MANTENIBILIDAD Y CONFIABILIDAD DE LOS SISTEMAS MECANICOSMANTENIBILIDAD Y CONFIABILIDAD DE LOS SISTEMAS MECANICOS
MANTENIBILIDAD Y CONFIABILIDAD DE LOS SISTEMAS MECANICOS
 
clasificasion de vias arteriales , vias locales
clasificasion de vias arteriales , vias localesclasificasion de vias arteriales , vias locales
clasificasion de vias arteriales , vias locales
 
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptxNTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptx
 
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHTAPORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
 
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
 
2. Cristaloquimica. ingenieria geologica
2. Cristaloquimica. ingenieria geologica2. Cristaloquimica. ingenieria geologica
2. Cristaloquimica. ingenieria geologica
 
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
 
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADO
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADOPERFORACIÓN Y VOLADURA EN MINERÍA APLICADO
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADO
 
Quimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdfQuimica Raymond Chang 12va Edicion___pdf
Quimica Raymond Chang 12va Edicion___pdf
 
Estadística Anual y Multianual del Sector Eléctrico Ecuatoriano
Estadística Anual y Multianual del Sector Eléctrico EcuatorianoEstadística Anual y Multianual del Sector Eléctrico Ecuatoriano
Estadística Anual y Multianual del Sector Eléctrico Ecuatoriano
 
Controladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y VentajasControladores Lógicos Programables Usos y Ventajas
Controladores Lógicos Programables Usos y Ventajas
 
Mapas y cartas topográficas y de suelos.pptx
Mapas y cartas topográficas y de suelos.pptxMapas y cartas topográficas y de suelos.pptx
Mapas y cartas topográficas y de suelos.pptx
 
Ejemplos aplicados de flip flops para la ingenieria
Ejemplos aplicados de flip flops para la ingenieriaEjemplos aplicados de flip flops para la ingenieria
Ejemplos aplicados de flip flops para la ingenieria
 
Aportes a la Arquitectura de Le Corbusier y Mies Van der Rohe
Aportes a la Arquitectura de Le Corbusier y Mies Van der RoheAportes a la Arquitectura de Le Corbusier y Mies Van der Rohe
Aportes a la Arquitectura de Le Corbusier y Mies Van der Rohe
 
Maquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdfMaquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdf
 
MODIFICADO - CAPITULO II DISEÑO SISMORRESISTENTE DE VIGAS Y COLUMNAS.pdf
MODIFICADO - CAPITULO II DISEÑO SISMORRESISTENTE DE VIGAS Y COLUMNAS.pdfMODIFICADO - CAPITULO II DISEÑO SISMORRESISTENTE DE VIGAS Y COLUMNAS.pdf
MODIFICADO - CAPITULO II DISEÑO SISMORRESISTENTE DE VIGAS Y COLUMNAS.pdf
 
Sesion 6 _ Curso Integrador II_TSZVQJ.pdf
Sesion 6 _ Curso Integrador II_TSZVQJ.pdfSesion 6 _ Curso Integrador II_TSZVQJ.pdf
Sesion 6 _ Curso Integrador II_TSZVQJ.pdf
 

Unidad 1 interfaz

  • 1. 12/02/2014 1 IMPORTANCIA DE LA PROGRAMACION EN LENGUAJE ENSAMBLADOR • Un programa escrito en lenguaje ensamblador requiere considerablemente menos memoria y se ejecuta más rápidamente que un programa escrito en un lenguaje de alto nivel como Pascal. • El lenguaje ensamblador ofrece al programador la posibilidad de realizar tareas muy específicas que sería muy difícil llevar a cabo en un lenguaje de alto nivel. • El conocimiento del lenguaje ensamblador permite una comprensión de la arquitectura de la máquina que ningún lenguaje de alto nivel puede ofrecer.
  • 2. 12/02/2014 2 • Desarrollar aplicaciones en lenguajes de alto nivel resulta mucho más productivo que hacerlo en ensamblador, pero este último resulta especialmente atractivo cuando hay que optimizar determinadas rutinas que suponen un cuello de botella para el rendimiento del sistema. • Los programas residentes y las rutinas de servicio de interrupción casi siempre se escriben en ensamblador. • La carga inicial de un S.O. debe realizarse en ensamblador, pues hacerlo con un lenguaje de alto nivel supondría usar instrucciones que en ese momento no pueden ser ejecutadas por la máquina.
  • 3. 12/02/2014 3 Ventajas del lenguaje ensamblador: • Velocidad de ejecución de los programas • Mayor control sobre el hardware de la computadora Desventajas del lenguaje ensamblador: • Repetición constante de grupos de instrucciones • No existe una sintaxis estandarizada • Dificultad para encontrar errores en los programas. ¿QUÉ SON LOS REGISTROS? UN REGISTRO ES UNA MEMORIA DE ALTA VELOCIDAD Y POCA CAPACIDAD, INTEGRADA EN EL MICROPROCESADOR, QUE PERMITE GUARDAR TRANSITORIAMENTE DATOS.
  • 4. 12/02/2014 4 EL PROCESADOR EL PROCESADOR SOLO ENTIENDE UN LENGUAJE QUE SE CONOCE COMO: LENGUAJE ENSAMBLADOR O LENGUAJE MAQUINA REGISTROS UNO DE LOS MÓDULOS PRINCIPALES QUE UTILIZA EL LENGUAJE ENSAMBLADOR PARA MANEJAR EL PROCESADOR SON LOS REGISTROS. LOS REGISTROS SE EMPLEAN PARA CONTROLAR INSTRUCCIONES EN EJECUCIÓN, MANEJAR DIRECCIONAMIENTO DE MEMORIA Y PROPORCIONAR CAPACIDAD ARITMÉTICA.
  • 5. 12/02/2014 5 LOS REGISTROS INTERNOS DEL PROCESADOR SE PUEDE CLASIFICAR EN 6 TIPOS DIFERENTES: • Registros de segmento • Registros de propósito general • Registro de apuntadores • Registro de banderas • Registros de Puntero de instrucción • Registros de pila MEMORIA PRINCIPAL(RAM)
  • 6. 12/02/2014 6 MEMORIA: • Es el espacio que necesita la CPU para poder guardar los programas y los datos que se manipulan mientras están en uso. Desde el punto de vista físico, la memoria consiste en chips, ya sea en la tarjeta madre o en un pequeño tablero de circuitos conectados a ésta. LA MEMORIA PRINCIPAL O RAM (MEMORIA DE ACCESO ALEATORIO) • Es donde el ordenador guarda los datos que está utilizando en el momento presente; son los "megas" famosos en número de 32, 64 ó 128. • Por su función, es una amiga inseparable del microprocesador, con el cual se comunica a través de los buses de datos.
  • 7. 12/02/2014 7 • Por ejemplo, cuando la CPU tiene que ejecutar un programa, primero lo coloca en la memoria y después lo empieza a ejecutar. • Esta clase de memoria es volátil, es decir que, cuando se corta la energía eléctrica, se borra toda la información que estuviera almacenada en ella. ROM O MEMORIA DE SOLO LECTURA • contiene un conjunto de instrucciones de inicio que aseguran que el resto de la memoria esté funcionando de manera apropiada; verifica los dispositivos de hardware y busca un sistema operativo en las unidades de disco de la computadora
  • 8. 12/02/2014 8 INTERRUPCIONES ¿QUE ES UNA INTERRUPCIÓN? • Una interrupción es el rompimiento en la secuencia de un programa para para ejecutar un programa especial.
  • 9. 12/02/2014 9 CLASES • Interrupciones por software • Son aquellas programadas por el usuario, es decir, el usuario decide cuando y donde ejecutarlas, generalmente son usadas para realizar entrada y salida. • Interrupciones por hardware • Son aquellas que son provocadas por dispositivos • externos al procesador INTERRUPCIONES POR HARDWARE EXISTEN 2 TIPOS • Interrupciones por hardware enmascarables: • Aquellas en las que el usuario decide si quiere o no ser interrumpido. • Interrupciones por hardware no enmascarables (NMI): • Aquellas que siempre interrumpen al programa.
  • 10. 12/02/2014 10 1.5 LLAMADAS AL SISTEMA (SYSTEM CALL) ES UN MÉTODO O FUNCIÓN QUE PUEDE INVOCAR UN PROCESO PARA SOLICITAR CIERTO SERVICIO AL SISTEMA OPERATIVO . LAS LLAMADAS SON PETICIONES A EJECUCIÓN DE RUTINAS, PROPORCIONAN LA INTERFAZ ENTRE EL SISTEMA OPERATIVO Y UN PROGRAMA EN EJECUCIÓN. • SON INSTRUCCIONES DE LENGUAJE ENSAMBLADOR • SE PRESENTAN EN LOS MANUALES QUE EMPLEAN LOS PROGRAMADORES DE ESTE LENGUAJE. Llamadas al sistema: • TIME: Permite obtener la fecha y hora del sistema • WRITE: Se emplea para escribir un dato en un cierto dispositivo de salida, tales como una pantalla o un disco magnético • READ: Es usada para leer de un dispositivo de entrada, tales como un teclado o un disco magnético • OPEN: Es usada para obtener un descriptor de un fiche del sistema, ese fichero suele pasarse a write
  • 11. 12/02/2014 11 Algunos sistemas permiten efectuar llamadas al sistema directamente desde un programa realizado en el lenguaje a mayor nivel se asemejan a una función o sub-rutinas que generan una llamada a una ruta en especial de tiempo de ejecución. Ejemplo: En el procesador INTEL es INT y en UNIX son rutinas El siguiente diagrama ilustra la relación entre la Shell y el Kernel. • El Shell es lo que el sistema operativo nos muestra, la portada, el intérprete de comandos, etc. • El Kernel es el núcleo del sistema operativo.
  • 12. 12/02/2014 12 INTRODUCCIÓN: Modo de direccionamiento: mecanismo que permite conocer la ubicación de un dato o instrucción, una computadora dispone de varios modos de direccionamiento. Objeto: dato o instrucción que se desea direccionar. Objetivos de los modos de direccionamiento: • Reducir el espacio ocupado en memoria por las instrucciones. • Permitir la reubicación del código. • Facilitar el manejo de las estructuras de datos. • Implícito: Llamado también inherente, el operando se especifica en la misma definición de la instrucción. • Inmediato: El operando es el que figura en la instrucción, no su dirección. Este modo es útil para inicializar registros o palabras de memoria con un valor constante. • Directo: El campo de operando en la instrucción contiene la direccion en memoria donde se encuentra el operando • Indirecto: Aquí, el campo de operando de la instrucción indica la localización de la dirección efectiva del operando.
  • 13. 12/02/2014 13 • EJECUCION Para la ejecución del programa simplemente basta teclear su nombre en el prompt de MS-DOS y teclear ENTER. Con esto el programa será cargado en memoria y el sistema procederá a ejecutarlo. El proceso completo para poder crear un programa ejecutable con el Microsoft Macro Assembler se muestra abajo. ESTRUCTURA GENERAL DE UN PROGRAMA EN LENGUAJE ENSAMBLADOR. • Lenguaje ensamblador que usa servicios o funciones de MS-DOS (system calls) para imprimir el mensaje Hola mundo!! en pantalla. • ; HOLA.ASM • ; Programa clasico de ejemplo. Despliega una leyenda en pantalla. • STACK SEGMENT STACK ; Segmento de pila • DW 64 DUP (?) ; Define espacio en la pila • STACK ENDS • DATA SEGMENT ; Segmento de datos • SALUDO DB "Hola mundo!!",13,10,"$" ; Cadena • DATA ENDS • CODE SEGMENT ; Segmento de Codigo • ASSUME CS:CODE, DS:DATA, SS:STACK • INICIO: ; Punto de entrada al programa • MOV AX,DATA ; Pone direccion en AX • MOV DS,AX ; Pone la direccion en los registros • MOV DX,OFFSET SALUDO ; Obtiene direccion del mensaje • MOV AH,09H ; Funcion: Visualizar cadena • INT 21H ; Servicio: Funciones alto nivel DOS • MOV AH,4CH ; Funcion: Terminar • INT 21H • CODE ENDS • END INICIO ; Marca fin y define INICIO
  • 14. 12/02/2014 14 • Estructura de una línea: • INSTRUCCIÓN EN ENSAMBLADOR • INSTRUCCIÓN EN LENGUAJE MÁQUINA SINTAXIS DE UN LENGUAJE ENSAMBLADOR DIRECCIÓN CÓDIGO DE OPERACIÓN DIRECCIÓN DE LOS OPERANDOS
  • 15. 12/02/2014 15 • Etiqueta • - Identifica la línea en la cual se encuentra. • - Se asocia a la dirección en la cual se encuentra la instrucción o el dato, o a la constante definida. • - Recomendaciones • • Utilizar sólo letras o números (comenzar por una letra). • • Colocar la primera letra de la etiqueta en el primer carácter de la línea. • Nemotécnico • - Identifica: • • Un código de operación del lenguaje • • Una pseudoinstrucción • Campo de operandos • - Identifica los operandos que intervienen en la instrucción o pseudoinstrucción. • - Tipos de operandos: • • Constantes • ∗ Numéricas: decimales(D), binarias (%,B), octales (O,@,Q,C), • hexadecimales (H,$). • ∗ Alfabéticas: entre comillas. • • Símbolos • ∗ Predefinidos: registros, contador de dirección de ensamblado. • ∗ Implícitos: etiquetas de dirección. • ∗ Explícitos: mediante pseudoinstrucciones. • • Expresiones • Comentarios • - Indicaciones para una mejor comprensión del programa ensamblador. • - Pueden comenzar con el símbolo “;”. CAMPOS DE UNA INSTRUCCIÓN EN ENSAMBLADOR • Registros de datos • Registros de segmento • Registros punteros de la pila • Registros índices • Registro de instrucciones • Registro de flags de estado EL MICROPROCESADOR 8086 TIENE CATORCE REGISTROS DE 16 BITS:
  • 16. 12/02/2014 16 • Los registros competos ax, bx, cx, dx trabajan sobre 16 bits, mientras la parte alta (ah, bh, ch, dh) y baja (al, bl, cl, dl) de cada registro trabaja sobre 8 bits, es esencial conocerlo para a la hora de programar no cometer errores en mover datos de un registro a otro. ax (ah - al) - acumulador bx (bh - bl) - registro base cx (ch - cl) - registro contador dx (dh - dl) - registro de datos sp - registro del apuntador de pila REGISTROS DE DATOS • SP - Puntero de pila • BP - Puntero base de pila • SI - Registro índice • DI - Registro índice • IP - Contador de programa REGISTROS PUNTEROS: REGISTRO DEL APUNTADOR DE PILA
  • 17. 12/02/2014 17 • CS - segmento de código • DS - segmento de datos • ES - segmento extra • SS - segmento pila REGISTROS DE SEGMENTO: INSTRUCCIONES DE TRANSAFERENCIA DE DATOS • mov: mueve o transfiere • xchg: intercambia • in: entrada • out:salida • xlat: traduce usando una tabla • lea: carga la direccion efectiva • lds: carga el segmento de datos • les: carga el segmento extra lahf: carga los indicadores en ah sahf: guarda ah en los indicadores push fuente: (sp)<- fuente pop destino: destino <- (sp)
  • 18. 12/02/2014 18 INSTRUCCIONES ARITMÉTICAS add: suma adc: suma con acarreo aaa: ajuste ascii para la suma daa: ajuste decimal para la suma sub: resta sbb: resta con acarreo negativo aas: ajuste ascii para la resta das: ajuste decimal para la resta mul: multiplicacion imul: multiplicacion entera aam: ajuste ascii para la multiplicacion div: division idiv: division entera aad: ajuste ascii para la division cbw: pasar octeto a palabra cwd: pasar palabra a doble palabra neg: negacion sti: poner a 1 el indicador de interrupcion cli: borrar el indicador de interrupcion into: interrupcion por capacidad excedida(desbordamiento) iret: retorno de interrupcion int: interrupcion int 21: interrupcion 21, esta manda llamar al sistema operativo que ejecuta las instrucciones anteriores int 20: interrupcion 20, esta interrupcion ejecuta lo anterior y termina el programa para que no se cicle INTERRUPCIONES