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

Registros de control y estados de la CPU
Registros de control y estados de la CPURegistros de control y estados de la CPU
Registros de control y estados de la CPU
Ivan Porras
 
Autómatas Finitos Deterministas y Lenguajes Formales
Autómatas Finitos Deterministas y Lenguajes FormalesAutómatas Finitos Deterministas y Lenguajes Formales
Autómatas Finitos Deterministas y Lenguajes Formales
Sandy Rafael Garcia
 
Ejercicios con Lenguajes Formales
Ejercicios con Lenguajes FormalesEjercicios con Lenguajes Formales
Ejercicios con Lenguajes Formales
vmtorrealba
 
Análisis Semántico con Cup
Análisis Semántico con CupAnálisis Semántico con Cup
Análisis Semántico con Cup
LAUNASA NOVENO B
 
Lenguajes regulares
Lenguajes regularesLenguajes regulares
Lenguajes regulares
Kenia Adams
 
Características del convertidor analógico digital
Características del convertidor analógico digitalCaracterísticas del convertidor analógico digital
Características del convertidor analógico digital
Sandra Olmos
 
Transductores y actuadores
Transductores y actuadoresTransductores y actuadores
Transductores y actuadores
toragyl
 

La actualidad más candente (20)

PCM y Delta - Telecomunicaciones III
PCM y Delta - Telecomunicaciones IIIPCM y Delta - Telecomunicaciones III
PCM y Delta - Telecomunicaciones III
 
Registros de control y estados de la CPU
Registros de control y estados de la CPURegistros de control y estados de la CPU
Registros de control y estados de la CPU
 
Autómatas Finitos Deterministas y Lenguajes Formales
Autómatas Finitos Deterministas y Lenguajes FormalesAutómatas Finitos Deterministas y Lenguajes Formales
Autómatas Finitos Deterministas y Lenguajes Formales
 
Compiladores - Flex y Bison
Compiladores - Flex y BisonCompiladores - Flex y Bison
Compiladores - Flex y Bison
 
Registro de banderas y alu
Registro de banderas y aluRegistro de banderas y alu
Registro de banderas y alu
 
Ejercicios con Lenguajes Formales
Ejercicios con Lenguajes FormalesEjercicios con Lenguajes Formales
Ejercicios con Lenguajes Formales
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Análisis Semántico con Cup
Análisis Semántico con CupAnálisis Semántico con Cup
Análisis Semántico con Cup
 
Tópicos Avanzados de Programación - Unidad 2 componentes y librerias
Tópicos Avanzados de Programación - Unidad 2 componentes y libreriasTópicos Avanzados de Programación - Unidad 2 componentes y librerias
Tópicos Avanzados de Programación - Unidad 2 componentes y librerias
 
Lenguajes regulares
Lenguajes regularesLenguajes regulares
Lenguajes regulares
 
Unidad1 Lenguajes y automatas
Unidad1 Lenguajes y automatasUnidad1 Lenguajes y automatas
Unidad1 Lenguajes y automatas
 
Ensamblador y enlazador
Ensamblador y enlazadorEnsamblador y enlazador
Ensamblador y enlazador
 
15 Instrucciones Aritmeticas y Logicas
15 Instrucciones Aritmeticas y Logicas15 Instrucciones Aritmeticas y Logicas
15 Instrucciones Aritmeticas y Logicas
 
Autómatas finitos no deterministas
Autómatas finitos no deterministasAutómatas finitos no deterministas
Autómatas finitos no deterministas
 
Características del convertidor analógico digital
Características del convertidor analógico digitalCaracterísticas del convertidor analógico digital
Características del convertidor analógico digital
 
Fundamentos de Telecomunicaciones Unidad 5 Dispositivos de Comunicación
Fundamentos de TelecomunicacionesUnidad 5 Dispositivos de ComunicaciónFundamentos de TelecomunicacionesUnidad 5 Dispositivos de Comunicación
Fundamentos de Telecomunicaciones Unidad 5 Dispositivos de Comunicación
 
Generación código intermedio 2
Generación código intermedio 2Generación código intermedio 2
Generación código intermedio 2
 
Interrupción informatica
Interrupción informaticaInterrupción informatica
Interrupción informatica
 
Transductores y actuadores
Transductores y actuadoresTransductores y actuadores
Transductores y actuadores
 
Taller de Base de Datos - Unidad 7 Conectividad
Taller de Base de Datos - Unidad 7 ConectividadTaller de Base de Datos - Unidad 7 Conectividad
Taller de Base de Datos - Unidad 7 Conectividad
 

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

Último (20)

27311861-Cuencas-sedimentarias-en-Colombia.ppt
27311861-Cuencas-sedimentarias-en-Colombia.ppt27311861-Cuencas-sedimentarias-en-Colombia.ppt
27311861-Cuencas-sedimentarias-en-Colombia.ppt
 
Six Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo processSix Sigma Process and the dmaic metodo process
Six Sigma Process and the dmaic metodo process
 
Lineamientos del Plan Oferta y Demanda sesión 5
Lineamientos del Plan Oferta y Demanda sesión 5Lineamientos del Plan Oferta y Demanda sesión 5
Lineamientos del Plan Oferta y Demanda sesión 5
 
EFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptx
EFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptxEFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptx
EFICIENCIA ENERGETICA-ISO50001_INTEC_2.pptx
 
Análisis_y_Diseño_de_Estructuras_con_SAP_2000,_5ta_Edición_ICG.pdf
Análisis_y_Diseño_de_Estructuras_con_SAP_2000,_5ta_Edición_ICG.pdfAnálisis_y_Diseño_de_Estructuras_con_SAP_2000,_5ta_Edición_ICG.pdf
Análisis_y_Diseño_de_Estructuras_con_SAP_2000,_5ta_Edición_ICG.pdf
 
TIPOS DE SOPORTES - CLASIFICACION IG.pdf
TIPOS DE SOPORTES - CLASIFICACION IG.pdfTIPOS DE SOPORTES - CLASIFICACION IG.pdf
TIPOS DE SOPORTES - CLASIFICACION IG.pdf
 
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...
 
ingenieria grafica para la carrera de ingeniera .pptx
ingenieria grafica para la carrera de ingeniera .pptxingenieria grafica para la carrera de ingeniera .pptx
ingenieria grafica para la carrera de ingeniera .pptx
 
2. Cristaloquimica. ingenieria geologica
2. Cristaloquimica. ingenieria geologica2. Cristaloquimica. ingenieria geologica
2. Cristaloquimica. ingenieria geologica
 
semana-08-clase-transformadores-y-norma-eep.ppt
semana-08-clase-transformadores-y-norma-eep.pptsemana-08-clase-transformadores-y-norma-eep.ppt
semana-08-clase-transformadores-y-norma-eep.ppt
 
PostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCDPostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCD
 
Sistema de lubricación para motores de combustión interna
Sistema de lubricación para motores de combustión internaSistema de lubricación para motores de combustión interna
Sistema de lubricación para motores de combustión interna
 
NTC 3883 análisis sensorial. metodología. prueba duo-trio.pdf
NTC 3883 análisis sensorial. metodología. prueba duo-trio.pdfNTC 3883 análisis sensorial. metodología. prueba duo-trio.pdf
NTC 3883 análisis sensorial. metodología. prueba duo-trio.pdf
 
Clasificación de Equipos e Instrumentos en Electricidad.docx
Clasificación de Equipos e Instrumentos en Electricidad.docxClasificación de Equipos e Instrumentos en Electricidad.docx
Clasificación de Equipos e Instrumentos en Electricidad.docx
 
Presentacion de la ganaderia en la región
Presentacion de la ganaderia en la regiónPresentacion de la ganaderia en la región
Presentacion de la ganaderia en la región
 
[1LLF] UNIDADES, MAGNITUDES FÍSICAS Y VECTORES.pdf
[1LLF] UNIDADES, MAGNITUDES FÍSICAS Y VECTORES.pdf[1LLF] UNIDADES, MAGNITUDES FÍSICAS Y VECTORES.pdf
[1LLF] UNIDADES, MAGNITUDES FÍSICAS Y VECTORES.pdf
 
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVOESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
ESPECIFICACIONES TECNICAS COMPLEJO DEPORTIVO
 
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
 
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
 
Ficha Tecnica de Ladrillos de Tabique de diferentes modelos
Ficha Tecnica de Ladrillos de Tabique de diferentes modelosFicha Tecnica de Ladrillos de Tabique de diferentes modelos
Ficha Tecnica de Ladrillos de Tabique de diferentes modelos
 

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