SlideShare una empresa de Scribd logo
1 de 27
Descargar para leer sin conexión
Microprocesadores Ing. Carlos Ortega H. 1
Universidad Nacional de Ingeniería
Microprocesadores
Unidad II: Arquitectura y Programación de un
Microprocesador (8086)
2
Contenidos
➢Arquitectura Von Newman
➢Arquitectura Harvard.
➢Microprocesador 8086
➢Organizacion de la Memoria
➢Registros del 8086
➢Lenguaje de Programacion: Ensamblador.
➢Ventajas y Desventajas.
➢Estructura de ub Programa en Ensamblador
➢Modos de Direccionamiento
Microprocesadores Ing. Carlos Ortega H.
3
Arquitectura Von Newman
– La CPU accede a una única memoria que tiene zonas separadas
de código y datos.
– Suelen ser CISC
– El formato de instrucciones es de longitud variable y el juego de
instrucciones es más completo. Hoy se tiende a un núcleo RISC
(Reduced Instruction Set Computing), y sobre éste, se implementa
las instrucciones complejas (CISC) mediante microinstrucciones.
Microprocesadores Ing. Carlos Ortega H.
4
Arquitectura Harvard
- Son independientes la memoria de instrucciones y la memoria de datos y cada
una dispone de su propio sistema de buses para el acceso, lo que permite
optimizar sus características propiciando el paralelismo.
- El formato de instrucciones es de longitud fija y el juego es reducido.
Microprocesadores Ing. Carlos Ortega H.
5
Arquitectura Harvard
●En una arquitectura Harvard la instrucción es buscada de la
memoria de programa en un solo ciclo.
●Mientras la memoria de programa está siendo accesada, la
memoria de datos puede ser leída o escrita.
●Esta arquitectura de buses separados permiten que una
instrucción pueda ser ejecutada mientras la próxima es
buscada.
●Los procesadores modernos usan la técnica de tuberías (pipe-
line) para procesar instrucciones, que consiste en la
segmentación del procesador descomponiéndolo en etapas,
que operan paralelamente para poder procesar varias
instrucciones a la vez.
Microprocesadores Ing. Carlos Ortega H.
6
Microprocesador 8086
Organizacion de la Memoria
Memoria Lineal
El microprocesador ve a la memoria como un arreglo lineal de localidades de memoria
de un byte y en el que las direcciones de las localidades de memoria son los índices de
los elementos del arreglo.
El esquema de memoria lineal es usado por lo general en microprocesadores con
capacidad de direccionamiento reducido, por lo general aquellos en los que la memoria
no excede a los 64 KB.
Memoria Segmentada
Se visualiza a la memoria como dividida en segmentos de memoria y a cada segmento
lo visualiza como un arreglo lineal de localidades de memoria de un byte. Cada
segmento tiene una dirección llamada dirección de segmento.
Este esquema de memoria es usado por lo general en microprocesadores con
capacidad de direccionamiento que excede a los 64 KB. Uno de estos procesadores es
el procesador 8086 de Intel.
Microprocesadores Ing. Carlos Ortega H.
7
Registros del 8086
Son componentes dentro del microprocesador que nos
permiten almacenar datos. Estos datos pueden representar
valores sobre los cuales se van a realizar operaciones,
resultados de las operaciones, direcciones de localidades de
memoria donde se encuentran datos e instrucciones,
direcciones de los dispositivos de entrada/salida sobre los que
deseamos escribir o leer, o los datos a escribir o leídos de
esos dispositivos.
A la descripción del número, tamaño y uso de los registros de
un microprocesador se le conoce como el modelo de
programación del microprocesador.
Microprocesadores Ing. Carlos Ortega H.
8
Registros del 8086
Microprocesadores Ing. Carlos Ortega H.
9
Registros de Proposito General
Se utilizan en la forma en que lo desee el programador.
AX, AH, AL (Acumulador): a menudo conserva el resultado temporal
después de una operación aritmética o lógica.
BX, BH, BL (Base): Se utiliza para guardar la dirección base de listas
de datos en la memoria.
CX, CH, CL (Contador): Contiene el conteo para ciertas instrucciones
de corrimientos y rotaciones, de iteraciones en el ciclo loop y
operaciones repetidas de cadenas.
DX, DH, DL (Datos): Contiene la parte más significativa de un producto
después de una multiplicación; la parte más significativa del dividendo
antes de la división.
Microprocesadores Ing. Carlos Ortega H.
10
Registros Apuntadores e Indices
SP (Apuntador de pila): Contiene el desplazamiento con respecto al
segmento de pila del tope de la pila del programa.
BP (Apuntador de base): Contiene el desplazamiento con respecto al
segmento de pila de datos almacenados en la pila de un programa.
SI (Índice fuente): Contiene el desplazamiento con respecto al segmento
de datos de un elemento de un arreglo o cadena.
DI (Índice destino): Contiene el desplazamiento con respecto al
segmento extra de un elemento de una cadena o arreglo.
IP (Apuntador de instrucciones): Contiene siempre el desplazamiento
con respecto al segmento de código de la localidad de memoria que
contiene la siguiente instrucción que va a ejecutar el microprocesador.
Microprocesadores Ing. Carlos Ortega H.
11
Registros de Segmentos
CS (Código): Tiene la dirección lógica del segmento en que se
encuentra el código de un programa. Si el código ocupa más de un
segmento, contiene la dirección lógica de uno de los segmentos.
DS (Datos): Tiene la dirección lógica del segmento en que se
encuentran los datos estáticos de un programa. Si los datos ocupan
más de un segmento, contiene la dirección lógica de uno de los
segmentos.
ES (Extra): Este registro también tiene la dirección lógica de uno de
los segmentos en que se encuentran los datos estáticos de un
programa. Este registro se utiliza en ciertas operaciones del
microprocesador para el manejo de cadenas.
SS (Pila): Tiene la dirección lógica del segmento en que se
encuentran la pila del sistema. La pila no puede ser mayor a un
segmento.
Microprocesadores Ing. Carlos Ortega H.
12
Registro Banderas
C (Acarreo): Indica un acarreo después de una suma o un préstamo
después de una resta.
P (Paridad): 0 = Impar y un 1 = par.
A (Acarreo auxiliar): Esta bandera sólo se utiliza en las operaciones daa
y das
Z (Cero): Z = 1 si el resultado de una operación aritmética o lógica es
cero y si Z = 0, el resultado no es cero.
S (Signo): Si S = 1, el resultado es negativo. Si S = 0, el resultado es
positivo.
O (Sobreflujo): Es una condición que ocurre cuando se suman o se
restan números con signo.
Microprocesadores Ing. Carlos Ortega H.
13
T (Trampa): Activa, si se pone a 1, o desactiva, si se pone a 0, el
modo de ejecución paso a paso. Este modo es utilizado por los
depuradores para ejecutar las instrucciones una a la vez y permitir
observar el efecto de la instrucción sobre los registros y la memoria.
I (Interrupción): Habilita, si se pone a 1, o deshabilita, si se pone a
0, las interrupciones al microprocesador. El estado de esta bandera
se controla con las instrucciones sti (habilitar interrupciones) y cli
(desactivar las interrupciones).
D (Dirección): Controla la selección de autoincremento o
autodecremento de los registros DI o SI durante las instrucciones de
cadenas y arreglos. Si D = 1 hay autodecremento en los registros y si
D = 0 hay autoincremento. El estado de esta bandera se controla con
las instrucciones std (habilitar dirección) y cld (desactivar dirección).
Registro Banderas
Microprocesadores Ing. Carlos Ortega H.
14
Lenguaje de Programacion
Es un conjunto de símbolos y reglas sintácticas y semánticas que definen su
estructura y el significado de sus elementos y expresiones, y utilizado para controlar
el comportamiento físico y lógico de una máquina.
Lenguajes de bajo nivel
Son lenguajes de programación que se acercan al funcionamiento de una
computadora. El lenguaje de más bajo nivel es, por excelencia, el código máquina. A
éste le sigue el lenguaje ensamblador, ya que al programar en ensamblador se
trabajan con los registros y memoria de la computadora de forma directa.
Lenguaje ensamblador
El lenguaje ensamblador es un tipo de lenguaje de bajo nivel utilizado para escribir
programas informáticos, y constituye la representación más directa del código
máquina específico para cada arquitectura de computadoras legible por un
programador.
Microprocesadores Ing. Carlos Ortega H.
15
Ventajas y Desventajas del Lenguaje
Ensamblador
Ventajas
Velocidad: De 5 a 10 veces mas rapidos
Eficiencia de tamaño: Ocupa la mitad de tamaño
Flexibilidad: Se pueden crear segmentos de codigo imposibles en otros
lenguajes.
Desventajas
Tiempo de programación: Mas dificil de Aprender, entender y depurar
Programas fuente grandes
Peligro de afectar recursos inesperadamente
Falta de portabilidad
Microprocesadores Ing. Carlos Ortega H.
16
[etiqueta] [instrucción|directiva [operandos]] [;comentario]
Son los campos de la proposición.Los campos
se separan por caracteres blancos: caracteres
de espacio y/o de tabulación. Todos los
campos son opcionales, pero el campo
operandos sólo pueden estar presente si existe
el campo instrucción|directiva.
Estructura de un Programa en Ensamblador
Microprocesadores Ing. Carlos Ortega H.
17
Las etiquetas asignan un nombre a una instrucción.
Esto permite hacer referencia a ellas en el resto del
programa. Pueden tener una máximo de 31
caracteres y deben terminar en “:”.
Las directivas son comandos que afectan al
ensamblador, no al procesador. Se puede usar para
preparar segmentos y procedimientos, definir
símbolos, reservar memoria, etc. La mayoría de las
directivas no generan código objeto.
Estructura de un Programa en Ensamblador
Microprocesadores Ing. Carlos Ortega H.
18
Las directivas más comunes son:
.MODEL para usar las directivas simplificadas es necesario incluir esta
directiva que define el modelo de memoria que debe usarse. Algunos de los
argumentos que puede tomar son:
TINY: para programa con un solo segmento para datos y código (tipo
.COM)
SMALL: para programas con un solo segmento de datos (64K, incluida
la pila) y otro de código (64K)
LARGE: varios segmentos de datos y código (1Mb para cada uno).
MEDIUM: Varios segmentos de código y 1 de datos.
COMPACT: 1 segmento de código y varios de datos.
Con esta directiva se preparan todos los segmentos y el ensamblador
reconoce, a partir de este momento, las directivas .DATA, .STACK y .CODE.
Estructura de un Programa en Ensamblador
Microprocesadores Ing. Carlos Ortega H.
19
.STACK nos sirve para fijar un tamaño n del segmento de pila, por defecto
1K.
.DATA abre el segmento de datos.
.CODE abre el segmento de código, al final código debe aparecer END.
Justo después de la directiva .CODE hay que inicializar el segmento de datos
(ya que la directiva no genera código):
MOV AX, @DATA
MOV DS, AX
Los comentarios permiten describir las sentencias de un programa,
facilitando su comprensión. Comienzan por “;”, el ensamblador ignora el resto
de la línea.
Ejemplo:
INI_CONT: MOV CX, DI ; inicia el contador
Estructura de un Programa en Ensamblador
Microprocesadores Ing. Carlos Ortega H.
20
Modos de Direccionamientos
Los modos de direccionamiento indican la manera de obtener
los operandos y son:
Direccionamiento de Registro
Direccionamiento Inmediato
Direccionamiento Directo
Direccionamiento Indirecto.
Direccionamiento Indirecto con Indice o Indexado
Direccionamiento con base e indice o Indexado a base
El tipo de direccionamiento se determina en función de los
operandos de la instrucción.
Microprocesadores Ing. Carlos Ortega H.
21
Modos de Direccionamientos
La instrucción MOV realiza transferencia de datos desde un
operando origen a un operando destino. Su formato es el
siguiente:
MOV destino, origen
Direccionamiento de registro
Transfiere un byte o palabra desde un registro fuente hasta un
registro destino.
NOTA! No se permite el acceso entre
registros de segmentos ni de distintos
tamaños.
MOV AX,CX ;transfiere el contenido de
CX en AX
Microprocesadores Ing. Carlos Ortega H.
22
Direccionamiento inmediato
Transfiere un byte o palabra de datos inmediatos hacia el
operando destino. Este modo es usado para inicializar
registros o localidades de memoria y para operar sobre
ellos con valores constantes de datos.
MOV AX,0ABCDh ;carga en AX el valor 0ABCDh.
Modos de Direccionamientos
Microprocesadores Ing. Carlos Ortega H.
23
Modos de Direccionamiento
Direccionamiento directo
Cuando el operando es una dirección de memoria.
Ésta puede ser especificada con su valor entre [ ], o
bien mediante una variable definida previamente (Se
verá más adelante).
Ejemplo:
MOV AL,[1234H]; almacena en
AL el contenido de la dirección
de memoria DS:1234.
Microprocesadores Ing. Carlos Ortega H.
24
Direccionamiento indirecto
Cuando el operando esta en memoria en una posición
contenida en un registro (BX, BP, SI o DI).
MOV AX,[BX] ; almacena en AX el contenido de la
dirección de memoria DS:[BX].
Modos de Direccionamiento
Microprocesadores Ing. Carlos Ortega H.
25
Direccionamiento Indirecto con Indice o Indexado
El operando se encuentra en una dirección determinada
por la suma de un registro de segmento*16, un
registro de índice, SI o DI y un desplazamiento de 8 ó
16 bits.
Ejemplos:
MOV AX,[DI+DESP] ó MOV AX,desp[DI]
ADD [SI+DESP],BX ó ADD desp[SI],BX
Modos de Direccionamiento
Microprocesadores Ing. Carlos Ortega H.
26
Direccionamiento con base e indice o Indexado a
base
El operando se encuentra en una dirección especificada
por la suma de un registro de segmento*16, uno de base,
uno de índice y opcionalmente un desplazamiento de 8 ó
16 bits:
MOV AX,ES:[BX+DI+DESP] ó MOV AX,ES:desp[BX][DI]
MOV CS:[BX+SI+DESP],CX ó MOV CS:desp[BX][SI],CX
Modos de Direccionamiento
Microprocesadores Ing. Carlos Ortega H.
27
Microprocesadores Ing. Carlos Ortega H.

Más contenido relacionado

Similar a Arquirectura y programacion de un microprocesador x86

Trabajo de maricarmen andrea
Trabajo de maricarmen   andreaTrabajo de maricarmen   andrea
Trabajo de maricarmen andrea
mOnii PiChona
 
Trabajo de maricarmen andrea
Trabajo de maricarmen   andreaTrabajo de maricarmen   andrea
Trabajo de maricarmen andrea
mOnii PiChona
 

Similar a Arquirectura y programacion de un microprocesador x86 (20)

Emsamblador
EmsambladorEmsamblador
Emsamblador
 
Emsamblador
EmsambladorEmsamblador
Emsamblador
 
Arquitectura isa 1
Arquitectura isa 1Arquitectura isa 1
Arquitectura isa 1
 
Arquitectura isa 1
Arquitectura isa 1Arquitectura isa 1
Arquitectura isa 1
 
INTRODUCCION A LOS SISTEMAS OPERATIVOS
INTRODUCCION A LOS SISTEMAS OPERATIVOSINTRODUCCION A LOS SISTEMAS OPERATIVOS
INTRODUCCION A LOS SISTEMAS OPERATIVOS
 
INTRODUCCION A LOS SISTEMAS OPERATIVOS
INTRODUCCION A LOS SISTEMAS OPERATIVOSINTRODUCCION A LOS SISTEMAS OPERATIVOS
INTRODUCCION A LOS SISTEMAS OPERATIVOS
 
SISTEMA OPERATIVOS
SISTEMA OPERATIVOSSISTEMA OPERATIVOS
SISTEMA OPERATIVOS
 
SISTEMA OPERATIVOS
SISTEMA OPERATIVOSSISTEMA OPERATIVOS
SISTEMA OPERATIVOS
 
Arquitectura de una computadora
Arquitectura de una computadoraArquitectura de una computadora
Arquitectura de una computadora
 
Arquitectura de una computadora
Arquitectura de una computadoraArquitectura de una computadora
Arquitectura de una computadora
 
Yeimir rincon 20%
Yeimir rincon 20%Yeimir rincon 20%
Yeimir rincon 20%
 
Yeimir rincon 20%
Yeimir rincon 20%Yeimir rincon 20%
Yeimir rincon 20%
 
Trabajo de maricarmen andrea
Trabajo de maricarmen   andreaTrabajo de maricarmen   andrea
Trabajo de maricarmen andrea
 
Trabajo de maricarmen andrea
Trabajo de maricarmen   andreaTrabajo de maricarmen   andrea
Trabajo de maricarmen andrea
 
Arquitectura x86_ Registros
Arquitectura x86_ RegistrosArquitectura x86_ Registros
Arquitectura x86_ Registros
 
Arquitectura x86_ Registros
Arquitectura x86_ RegistrosArquitectura x86_ Registros
Arquitectura x86_ Registros
 
Unidad central de procesamiento
Unidad central de procesamientoUnidad central de procesamiento
Unidad central de procesamiento
 
Unidad central de procesamiento
Unidad central de procesamientoUnidad central de procesamiento
Unidad central de procesamiento
 
Definiciones y diferencias
Definiciones y diferenciasDefiniciones y diferencias
Definiciones y diferencias
 
Definiciones y diferencias
Definiciones y diferenciasDefiniciones y diferencias
Definiciones y diferencias
 

Último

Pasos para enviar una tarea en SIANET - sólo estudiantes.pdf
Pasos para enviar una tarea en SIANET - sólo estudiantes.pdfPasos para enviar una tarea en SIANET - sólo estudiantes.pdf
Pasos para enviar una tarea en SIANET - sólo estudiantes.pdf
NELLYKATTY
 
PLAN LECTOR QUINTO 2023 educación primaria de menores Quinto grado
PLAN LECTOR QUINTO 2023  educación primaria de menores Quinto gradoPLAN LECTOR QUINTO 2023  educación primaria de menores Quinto grado
PLAN LECTOR QUINTO 2023 educación primaria de menores Quinto grado
Santosprez2
 
Escucha tu Cerebro en Nuevos Escenarios PE3 Ccesa007.pdf
Escucha tu Cerebro en Nuevos Escenarios  PE3  Ccesa007.pdfEscucha tu Cerebro en Nuevos Escenarios  PE3  Ccesa007.pdf
Escucha tu Cerebro en Nuevos Escenarios PE3 Ccesa007.pdf
Demetrio Ccesa Rayme
 
FICHA DE LA VIRGEN DE FÁTIMA.pdf educación religiosa primaria de menores
FICHA DE LA VIRGEN DE FÁTIMA.pdf educación religiosa primaria de menoresFICHA DE LA VIRGEN DE FÁTIMA.pdf educación religiosa primaria de menores
FICHA DE LA VIRGEN DE FÁTIMA.pdf educación religiosa primaria de menores
Santosprez2
 

Último (20)

Motivados por la esperanza. Esperanza en Jesús
Motivados por la esperanza. Esperanza en JesúsMotivados por la esperanza. Esperanza en Jesús
Motivados por la esperanza. Esperanza en Jesús
 
TÉCNICAS OBSERVACIONALES Y TEXTUALES.pdf
TÉCNICAS OBSERVACIONALES Y TEXTUALES.pdfTÉCNICAS OBSERVACIONALES Y TEXTUALES.pdf
TÉCNICAS OBSERVACIONALES Y TEXTUALES.pdf
 
EL CARDENALITO Lengua y Literatura de 6 grado
EL CARDENALITO Lengua y Literatura de 6 gradoEL CARDENALITO Lengua y Literatura de 6 grado
EL CARDENALITO Lengua y Literatura de 6 grado
 
En un aposento alto himno _letra y acordes.pdf
En un aposento alto himno _letra y acordes.pdfEn un aposento alto himno _letra y acordes.pdf
En un aposento alto himno _letra y acordes.pdf
 
Pasos para enviar una tarea en SIANET - sólo estudiantes.pdf
Pasos para enviar una tarea en SIANET - sólo estudiantes.pdfPasos para enviar una tarea en SIANET - sólo estudiantes.pdf
Pasos para enviar una tarea en SIANET - sólo estudiantes.pdf
 
cuadernillo_cuentos_de_los_valores_elprofe20 (1).docx
cuadernillo_cuentos_de_los_valores_elprofe20 (1).docxcuadernillo_cuentos_de_los_valores_elprofe20 (1).docx
cuadernillo_cuentos_de_los_valores_elprofe20 (1).docx
 
PLAN LECTOR QUINTO 2023 educación primaria de menores Quinto grado
PLAN LECTOR QUINTO 2023  educación primaria de menores Quinto gradoPLAN LECTOR QUINTO 2023  educación primaria de menores Quinto grado
PLAN LECTOR QUINTO 2023 educación primaria de menores Quinto grado
 
4. MATERIALES QUE SE EMPLEAN EN LAS ESTRUCTURAS.pptx
4. MATERIALES QUE SE EMPLEAN EN LAS ESTRUCTURAS.pptx4. MATERIALES QUE SE EMPLEAN EN LAS ESTRUCTURAS.pptx
4. MATERIALES QUE SE EMPLEAN EN LAS ESTRUCTURAS.pptx
 
Escucha tu Cerebro en Nuevos Escenarios PE3 Ccesa007.pdf
Escucha tu Cerebro en Nuevos Escenarios  PE3  Ccesa007.pdfEscucha tu Cerebro en Nuevos Escenarios  PE3  Ccesa007.pdf
Escucha tu Cerebro en Nuevos Escenarios PE3 Ccesa007.pdf
 
Estudios Sociales libro 8vo grado Básico
Estudios Sociales libro 8vo grado BásicoEstudios Sociales libro 8vo grado Básico
Estudios Sociales libro 8vo grado Básico
 
Revista Faro Normalista 6, 18 de mayo 2024
Revista Faro Normalista 6, 18 de mayo 2024Revista Faro Normalista 6, 18 de mayo 2024
Revista Faro Normalista 6, 18 de mayo 2024
 
SESION DE APRENDIZAJE PARA3ER GRADO -EL SISTEMA DIGESTIVO
SESION DE APRENDIZAJE PARA3ER GRADO -EL SISTEMA DIGESTIVOSESION DE APRENDIZAJE PARA3ER GRADO -EL SISTEMA DIGESTIVO
SESION DE APRENDIZAJE PARA3ER GRADO -EL SISTEMA DIGESTIVO
 
Diapositivas unidad de trabajo 7 sobre Coloración temporal y semipermanente
Diapositivas unidad de trabajo 7 sobre Coloración temporal y semipermanenteDiapositivas unidad de trabajo 7 sobre Coloración temporal y semipermanente
Diapositivas unidad de trabajo 7 sobre Coloración temporal y semipermanente
 
Realitat o fake news? – Què causa el canvi climàtic? - La desertització
Realitat o fake news? – Què causa el canvi climàtic? - La desertitzacióRealitat o fake news? – Què causa el canvi climàtic? - La desertització
Realitat o fake news? – Què causa el canvi climàtic? - La desertització
 
ACERTIJO EL NÚMERO PI COLOREA EMBLEMA OLÍMPICO DE PARÍS. Por JAVIER SOLIS NOYOLA
ACERTIJO EL NÚMERO PI COLOREA EMBLEMA OLÍMPICO DE PARÍS. Por JAVIER SOLIS NOYOLAACERTIJO EL NÚMERO PI COLOREA EMBLEMA OLÍMPICO DE PARÍS. Por JAVIER SOLIS NOYOLA
ACERTIJO EL NÚMERO PI COLOREA EMBLEMA OLÍMPICO DE PARÍS. Por JAVIER SOLIS NOYOLA
 
ACERTIJO SOPA DE LETRAS OLÍMPICA. Por JAVIER SOLIS NOYOLA
ACERTIJO SOPA DE LETRAS OLÍMPICA. Por JAVIER SOLIS NOYOLAACERTIJO SOPA DE LETRAS OLÍMPICA. Por JAVIER SOLIS NOYOLA
ACERTIJO SOPA DE LETRAS OLÍMPICA. Por JAVIER SOLIS NOYOLA
 
FICHA DE LA VIRGEN DE FÁTIMA.pdf educación religiosa primaria de menores
FICHA DE LA VIRGEN DE FÁTIMA.pdf educación religiosa primaria de menoresFICHA DE LA VIRGEN DE FÁTIMA.pdf educación religiosa primaria de menores
FICHA DE LA VIRGEN DE FÁTIMA.pdf educación religiosa primaria de menores
 
4ª SESION la misión santificadora del Espíritu Santo en la vida de la Iglesi...
4ª SESION  la misión santificadora del Espíritu Santo en la vida de la Iglesi...4ª SESION  la misión santificadora del Espíritu Santo en la vida de la Iglesi...
4ª SESION la misión santificadora del Espíritu Santo en la vida de la Iglesi...
 
04.UNIDAD DE APRENDIZAJE III CICLO-Cuidamos nuestro medioambiente (1).docx
04.UNIDAD DE APRENDIZAJE III CICLO-Cuidamos nuestro medioambiente (1).docx04.UNIDAD DE APRENDIZAJE III CICLO-Cuidamos nuestro medioambiente (1).docx
04.UNIDAD DE APRENDIZAJE III CICLO-Cuidamos nuestro medioambiente (1).docx
 
ACERTIJO CÁLCULOS MATEMÁGICOS EN LA CARRERA OLÍMPICA. Por JAVIER SOLIS NOYOLA
ACERTIJO CÁLCULOS MATEMÁGICOS EN LA CARRERA OLÍMPICA. Por JAVIER SOLIS NOYOLAACERTIJO CÁLCULOS MATEMÁGICOS EN LA CARRERA OLÍMPICA. Por JAVIER SOLIS NOYOLA
ACERTIJO CÁLCULOS MATEMÁGICOS EN LA CARRERA OLÍMPICA. Por JAVIER SOLIS NOYOLA
 

Arquirectura y programacion de un microprocesador x86

  • 1. Microprocesadores Ing. Carlos Ortega H. 1 Universidad Nacional de Ingeniería Microprocesadores Unidad II: Arquitectura y Programación de un Microprocesador (8086)
  • 2. 2 Contenidos ➢Arquitectura Von Newman ➢Arquitectura Harvard. ➢Microprocesador 8086 ➢Organizacion de la Memoria ➢Registros del 8086 ➢Lenguaje de Programacion: Ensamblador. ➢Ventajas y Desventajas. ➢Estructura de ub Programa en Ensamblador ➢Modos de Direccionamiento Microprocesadores Ing. Carlos Ortega H.
  • 3. 3 Arquitectura Von Newman – La CPU accede a una única memoria que tiene zonas separadas de código y datos. – Suelen ser CISC – El formato de instrucciones es de longitud variable y el juego de instrucciones es más completo. Hoy se tiende a un núcleo RISC (Reduced Instruction Set Computing), y sobre éste, se implementa las instrucciones complejas (CISC) mediante microinstrucciones. Microprocesadores Ing. Carlos Ortega H.
  • 4. 4 Arquitectura Harvard - Son independientes la memoria de instrucciones y la memoria de datos y cada una dispone de su propio sistema de buses para el acceso, lo que permite optimizar sus características propiciando el paralelismo. - El formato de instrucciones es de longitud fija y el juego es reducido. Microprocesadores Ing. Carlos Ortega H.
  • 5. 5 Arquitectura Harvard ●En una arquitectura Harvard la instrucción es buscada de la memoria de programa en un solo ciclo. ●Mientras la memoria de programa está siendo accesada, la memoria de datos puede ser leída o escrita. ●Esta arquitectura de buses separados permiten que una instrucción pueda ser ejecutada mientras la próxima es buscada. ●Los procesadores modernos usan la técnica de tuberías (pipe- line) para procesar instrucciones, que consiste en la segmentación del procesador descomponiéndolo en etapas, que operan paralelamente para poder procesar varias instrucciones a la vez. Microprocesadores Ing. Carlos Ortega H.
  • 6. 6 Microprocesador 8086 Organizacion de la Memoria Memoria Lineal El microprocesador ve a la memoria como un arreglo lineal de localidades de memoria de un byte y en el que las direcciones de las localidades de memoria son los índices de los elementos del arreglo. El esquema de memoria lineal es usado por lo general en microprocesadores con capacidad de direccionamiento reducido, por lo general aquellos en los que la memoria no excede a los 64 KB. Memoria Segmentada Se visualiza a la memoria como dividida en segmentos de memoria y a cada segmento lo visualiza como un arreglo lineal de localidades de memoria de un byte. Cada segmento tiene una dirección llamada dirección de segmento. Este esquema de memoria es usado por lo general en microprocesadores con capacidad de direccionamiento que excede a los 64 KB. Uno de estos procesadores es el procesador 8086 de Intel. Microprocesadores Ing. Carlos Ortega H.
  • 7. 7 Registros del 8086 Son componentes dentro del microprocesador que nos permiten almacenar datos. Estos datos pueden representar valores sobre los cuales se van a realizar operaciones, resultados de las operaciones, direcciones de localidades de memoria donde se encuentran datos e instrucciones, direcciones de los dispositivos de entrada/salida sobre los que deseamos escribir o leer, o los datos a escribir o leídos de esos dispositivos. A la descripción del número, tamaño y uso de los registros de un microprocesador se le conoce como el modelo de programación del microprocesador. Microprocesadores Ing. Carlos Ortega H.
  • 9. 9 Registros de Proposito General Se utilizan en la forma en que lo desee el programador. AX, AH, AL (Acumulador): a menudo conserva el resultado temporal después de una operación aritmética o lógica. BX, BH, BL (Base): Se utiliza para guardar la dirección base de listas de datos en la memoria. CX, CH, CL (Contador): Contiene el conteo para ciertas instrucciones de corrimientos y rotaciones, de iteraciones en el ciclo loop y operaciones repetidas de cadenas. DX, DH, DL (Datos): Contiene la parte más significativa de un producto después de una multiplicación; la parte más significativa del dividendo antes de la división. Microprocesadores Ing. Carlos Ortega H.
  • 10. 10 Registros Apuntadores e Indices SP (Apuntador de pila): Contiene el desplazamiento con respecto al segmento de pila del tope de la pila del programa. BP (Apuntador de base): Contiene el desplazamiento con respecto al segmento de pila de datos almacenados en la pila de un programa. SI (Índice fuente): Contiene el desplazamiento con respecto al segmento de datos de un elemento de un arreglo o cadena. DI (Índice destino): Contiene el desplazamiento con respecto al segmento extra de un elemento de una cadena o arreglo. IP (Apuntador de instrucciones): Contiene siempre el desplazamiento con respecto al segmento de código de la localidad de memoria que contiene la siguiente instrucción que va a ejecutar el microprocesador. Microprocesadores Ing. Carlos Ortega H.
  • 11. 11 Registros de Segmentos CS (Código): Tiene la dirección lógica del segmento en que se encuentra el código de un programa. Si el código ocupa más de un segmento, contiene la dirección lógica de uno de los segmentos. DS (Datos): Tiene la dirección lógica del segmento en que se encuentran los datos estáticos de un programa. Si los datos ocupan más de un segmento, contiene la dirección lógica de uno de los segmentos. ES (Extra): Este registro también tiene la dirección lógica de uno de los segmentos en que se encuentran los datos estáticos de un programa. Este registro se utiliza en ciertas operaciones del microprocesador para el manejo de cadenas. SS (Pila): Tiene la dirección lógica del segmento en que se encuentran la pila del sistema. La pila no puede ser mayor a un segmento. Microprocesadores Ing. Carlos Ortega H.
  • 12. 12 Registro Banderas C (Acarreo): Indica un acarreo después de una suma o un préstamo después de una resta. P (Paridad): 0 = Impar y un 1 = par. A (Acarreo auxiliar): Esta bandera sólo se utiliza en las operaciones daa y das Z (Cero): Z = 1 si el resultado de una operación aritmética o lógica es cero y si Z = 0, el resultado no es cero. S (Signo): Si S = 1, el resultado es negativo. Si S = 0, el resultado es positivo. O (Sobreflujo): Es una condición que ocurre cuando se suman o se restan números con signo. Microprocesadores Ing. Carlos Ortega H.
  • 13. 13 T (Trampa): Activa, si se pone a 1, o desactiva, si se pone a 0, el modo de ejecución paso a paso. Este modo es utilizado por los depuradores para ejecutar las instrucciones una a la vez y permitir observar el efecto de la instrucción sobre los registros y la memoria. I (Interrupción): Habilita, si se pone a 1, o deshabilita, si se pone a 0, las interrupciones al microprocesador. El estado de esta bandera se controla con las instrucciones sti (habilitar interrupciones) y cli (desactivar las interrupciones). D (Dirección): Controla la selección de autoincremento o autodecremento de los registros DI o SI durante las instrucciones de cadenas y arreglos. Si D = 1 hay autodecremento en los registros y si D = 0 hay autoincremento. El estado de esta bandera se controla con las instrucciones std (habilitar dirección) y cld (desactivar dirección). Registro Banderas Microprocesadores Ing. Carlos Ortega H.
  • 14. 14 Lenguaje de Programacion Es un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones, y utilizado para controlar el comportamiento físico y lógico de una máquina. Lenguajes de bajo nivel Son lenguajes de programación que se acercan al funcionamiento de una computadora. El lenguaje de más bajo nivel es, por excelencia, el código máquina. A éste le sigue el lenguaje ensamblador, ya que al programar en ensamblador se trabajan con los registros y memoria de la computadora de forma directa. Lenguaje ensamblador El lenguaje ensamblador es un tipo de lenguaje de bajo nivel utilizado para escribir programas informáticos, y constituye la representación más directa del código máquina específico para cada arquitectura de computadoras legible por un programador. Microprocesadores Ing. Carlos Ortega H.
  • 15. 15 Ventajas y Desventajas del Lenguaje Ensamblador Ventajas Velocidad: De 5 a 10 veces mas rapidos Eficiencia de tamaño: Ocupa la mitad de tamaño Flexibilidad: Se pueden crear segmentos de codigo imposibles en otros lenguajes. Desventajas Tiempo de programación: Mas dificil de Aprender, entender y depurar Programas fuente grandes Peligro de afectar recursos inesperadamente Falta de portabilidad Microprocesadores Ing. Carlos Ortega H.
  • 16. 16 [etiqueta] [instrucción|directiva [operandos]] [;comentario] Son los campos de la proposición.Los campos se separan por caracteres blancos: caracteres de espacio y/o de tabulación. Todos los campos son opcionales, pero el campo operandos sólo pueden estar presente si existe el campo instrucción|directiva. Estructura de un Programa en Ensamblador Microprocesadores Ing. Carlos Ortega H.
  • 17. 17 Las etiquetas asignan un nombre a una instrucción. Esto permite hacer referencia a ellas en el resto del programa. Pueden tener una máximo de 31 caracteres y deben terminar en “:”. Las directivas son comandos que afectan al ensamblador, no al procesador. Se puede usar para preparar segmentos y procedimientos, definir símbolos, reservar memoria, etc. La mayoría de las directivas no generan código objeto. Estructura de un Programa en Ensamblador Microprocesadores Ing. Carlos Ortega H.
  • 18. 18 Las directivas más comunes son: .MODEL para usar las directivas simplificadas es necesario incluir esta directiva que define el modelo de memoria que debe usarse. Algunos de los argumentos que puede tomar son: TINY: para programa con un solo segmento para datos y código (tipo .COM) SMALL: para programas con un solo segmento de datos (64K, incluida la pila) y otro de código (64K) LARGE: varios segmentos de datos y código (1Mb para cada uno). MEDIUM: Varios segmentos de código y 1 de datos. COMPACT: 1 segmento de código y varios de datos. Con esta directiva se preparan todos los segmentos y el ensamblador reconoce, a partir de este momento, las directivas .DATA, .STACK y .CODE. Estructura de un Programa en Ensamblador Microprocesadores Ing. Carlos Ortega H.
  • 19. 19 .STACK nos sirve para fijar un tamaño n del segmento de pila, por defecto 1K. .DATA abre el segmento de datos. .CODE abre el segmento de código, al final código debe aparecer END. Justo después de la directiva .CODE hay que inicializar el segmento de datos (ya que la directiva no genera código): MOV AX, @DATA MOV DS, AX Los comentarios permiten describir las sentencias de un programa, facilitando su comprensión. Comienzan por “;”, el ensamblador ignora el resto de la línea. Ejemplo: INI_CONT: MOV CX, DI ; inicia el contador Estructura de un Programa en Ensamblador Microprocesadores Ing. Carlos Ortega H.
  • 20. 20 Modos de Direccionamientos Los modos de direccionamiento indican la manera de obtener los operandos y son: Direccionamiento de Registro Direccionamiento Inmediato Direccionamiento Directo Direccionamiento Indirecto. Direccionamiento Indirecto con Indice o Indexado Direccionamiento con base e indice o Indexado a base El tipo de direccionamiento se determina en función de los operandos de la instrucción. Microprocesadores Ing. Carlos Ortega H.
  • 21. 21 Modos de Direccionamientos La instrucción MOV realiza transferencia de datos desde un operando origen a un operando destino. Su formato es el siguiente: MOV destino, origen Direccionamiento de registro Transfiere un byte o palabra desde un registro fuente hasta un registro destino. NOTA! No se permite el acceso entre registros de segmentos ni de distintos tamaños. MOV AX,CX ;transfiere el contenido de CX en AX Microprocesadores Ing. Carlos Ortega H.
  • 22. 22 Direccionamiento inmediato Transfiere un byte o palabra de datos inmediatos hacia el operando destino. Este modo es usado para inicializar registros o localidades de memoria y para operar sobre ellos con valores constantes de datos. MOV AX,0ABCDh ;carga en AX el valor 0ABCDh. Modos de Direccionamientos Microprocesadores Ing. Carlos Ortega H.
  • 23. 23 Modos de Direccionamiento Direccionamiento directo Cuando el operando es una dirección de memoria. Ésta puede ser especificada con su valor entre [ ], o bien mediante una variable definida previamente (Se verá más adelante). Ejemplo: MOV AL,[1234H]; almacena en AL el contenido de la dirección de memoria DS:1234. Microprocesadores Ing. Carlos Ortega H.
  • 24. 24 Direccionamiento indirecto Cuando el operando esta en memoria en una posición contenida en un registro (BX, BP, SI o DI). MOV AX,[BX] ; almacena en AX el contenido de la dirección de memoria DS:[BX]. Modos de Direccionamiento Microprocesadores Ing. Carlos Ortega H.
  • 25. 25 Direccionamiento Indirecto con Indice o Indexado El operando se encuentra en una dirección determinada por la suma de un registro de segmento*16, un registro de índice, SI o DI y un desplazamiento de 8 ó 16 bits. Ejemplos: MOV AX,[DI+DESP] ó MOV AX,desp[DI] ADD [SI+DESP],BX ó ADD desp[SI],BX Modos de Direccionamiento Microprocesadores Ing. Carlos Ortega H.
  • 26. 26 Direccionamiento con base e indice o Indexado a base El operando se encuentra en una dirección especificada por la suma de un registro de segmento*16, uno de base, uno de índice y opcionalmente un desplazamiento de 8 ó 16 bits: MOV AX,ES:[BX+DI+DESP] ó MOV AX,ES:desp[BX][DI] MOV CS:[BX+SI+DESP],CX ó MOV CS:desp[BX][SI],CX Modos de Direccionamiento Microprocesadores Ing. Carlos Ortega H.