SlideShare una empresa de Scribd logo
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

DOCX
Diagrama de bloque procesador intel
DOCX
Diagrama de bloque procesador intel
PPTX
Lenguajes de interfaz
PPTX
Lenguajes de interfaz
DOCX
Assambler
DOCX
Assambler
PDF
Lenguajes de interfaz
PDF
Unidadi. lenguajes de interfaz
Diagrama de bloque procesador intel
Diagrama de bloque procesador intel
Lenguajes de interfaz
Lenguajes de interfaz
Assambler
Assambler
Lenguajes de interfaz
Unidadi. lenguajes de interfaz

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

PPTX
Emsamblador
PPTX
Emsamblador
PDF
Arquitectura isa 1
PDF
Arquitectura isa 1
DOCX
INTRODUCCION A LOS SISTEMAS OPERATIVOS
DOCX
INTRODUCCION A LOS SISTEMAS OPERATIVOS
DOCX
SISTEMA OPERATIVOS
DOCX
SISTEMA OPERATIVOS
PDF
Arquitectura de una computadora
PDF
Arquitectura de una computadora
PPSX
Yeimir rincon 20%
PPSX
Yeimir rincon 20%
PPTX
noooooooooooooooooooooooooooooooooooooooooooooooooooooooooo.pptx
PPTX
noooooooooooooooooooooooooooooooooooooooooooooooooooooooooo.pptx
PDF
Trabajo de maricarmen andrea
PDF
Trabajo de maricarmen andrea
PPTX
Arquitectura x86_ Registros
PPTX
Arquitectura x86_ Registros
PPTX
Unidad central de procesamiento
PPTX
Unidad central de procesamiento
Emsamblador
Emsamblador
Arquitectura isa 1
Arquitectura isa 1
INTRODUCCION A LOS SISTEMAS OPERATIVOS
INTRODUCCION A LOS SISTEMAS OPERATIVOS
SISTEMA OPERATIVOS
SISTEMA OPERATIVOS
Arquitectura de una computadora
Arquitectura de una computadora
Yeimir rincon 20%
Yeimir rincon 20%
noooooooooooooooooooooooooooooooooooooooooooooooooooooooooo.pptx
noooooooooooooooooooooooooooooooooooooooooooooooooooooooooo.pptx
Trabajo de maricarmen andrea
Trabajo de maricarmen andrea
Arquitectura x86_ Registros
Arquitectura x86_ Registros
Unidad central de procesamiento
Unidad central de procesamiento
Publicidad

Más de ssusere538f7 (7)

PPTX
Formulación y evaluacion de proyectos.pptx
PPTX
Objetivos de investigación y justificación.pptx
PPT
Que son los numeros aleatorios numeros aleatorios
PDF
Elementos basicos de un simulador de eventos discretos
PPT
Threads in java, Multitasking and Multithreading
PPT
Concepto sobre las organizaciones formales
PDF
Computación básica. Tecnologías de Información
Formulación y evaluacion de proyectos.pptx
Objetivos de investigación y justificación.pptx
Que son los numeros aleatorios numeros aleatorios
Elementos basicos de un simulador de eventos discretos
Threads in java, Multitasking and Multithreading
Concepto sobre las organizaciones formales
Computación básica. Tecnologías de Información
Publicidad

Último (20)

PDF
PFB-MANUAL-PRUEBA-FUNCIONES-BASICAS-pdf.pdf
DOCX
UNIDAD DE APRENDIZAJE 5 AGOSTO tradiciones
PDF
ciencias-1.pdf libro cuarto basico niños
PDF
Fundamentos_Educacion_a_Distancia_ABC.pdf
PDF
Metodologías Activas con herramientas IAG
PPTX
caso clínico iam clinica y semiología l3.pptx
PDF
Unidad de Aprendizaje 5 de Matematica 1ro Secundaria Ccesa007.pdf
PDF
Conecta con la Motivacion - Brian Tracy Ccesa007.pdf
PDF
Tomo 1 de biologia gratis ultra plusenmas
PDF
TRAUMA_Y_RECUPERACION consecuencias de la violencia JUDITH HERMAN
DOCX
V UNIDAD - PRIMER GRADO. del mes de agosto
PDF
Breve historia de los Incas -- Patricia Temoche [Temoche, Patricia] -- Breve ...
PDF
benveniste-problemas-de-linguistica-general-i-cap-6 (1)_compressed.pdf
PDF
Híper Mega Repaso Histológico Bloque 3.pdf
PDF
Escuelas Desarmando una mirada subjetiva a la educación
DOCX
V UNIDAD - SEGUNDO GRADO. del mes de agosto
PDF
Integrando la Inteligencia Artificial Generativa (IAG) en el Aula
PDF
DI, TEA, TDAH.pdf guía se secuencias didacticas
PDF
Lección 6 Escuela Sab. A través del mar rojo.pdf
PDF
GUIA DE: CANVA + INTELIGENCIA ARTIFICIAL
PFB-MANUAL-PRUEBA-FUNCIONES-BASICAS-pdf.pdf
UNIDAD DE APRENDIZAJE 5 AGOSTO tradiciones
ciencias-1.pdf libro cuarto basico niños
Fundamentos_Educacion_a_Distancia_ABC.pdf
Metodologías Activas con herramientas IAG
caso clínico iam clinica y semiología l3.pptx
Unidad de Aprendizaje 5 de Matematica 1ro Secundaria Ccesa007.pdf
Conecta con la Motivacion - Brian Tracy Ccesa007.pdf
Tomo 1 de biologia gratis ultra plusenmas
TRAUMA_Y_RECUPERACION consecuencias de la violencia JUDITH HERMAN
V UNIDAD - PRIMER GRADO. del mes de agosto
Breve historia de los Incas -- Patricia Temoche [Temoche, Patricia] -- Breve ...
benveniste-problemas-de-linguistica-general-i-cap-6 (1)_compressed.pdf
Híper Mega Repaso Histológico Bloque 3.pdf
Escuelas Desarmando una mirada subjetiva a la educación
V UNIDAD - SEGUNDO GRADO. del mes de agosto
Integrando la Inteligencia Artificial Generativa (IAG) en el Aula
DI, TEA, TDAH.pdf guía se secuencias didacticas
Lección 6 Escuela Sab. A través del mar rojo.pdf
GUIA DE: CANVA + INTELIGENCIA ARTIFICIAL

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.