Upload
victor-fernando-monroy-dipp
View
4.813
Download
2
Embed Size (px)
DESCRIPTION
Breve descripción a manera de introducción a la programación
Citation preview
El micro Intel 8086/88
PROGRAMACIÓN ENSAMBLADORING. FERNANDO MONRROY
UAGRM 2/2010
Características
-Arquitectura interna de 16 bits-Pueden trabajar con operandosde 8 y 16 bits-Capacidad de direccionamiento de 20
bits (220 = 1’048.576 =1Mbyte)-Frecuencia de reloj de 4.77MHz-Comparten el mismo juego de instrucciones.
Características
El 8088 tiene un bus de datos de 8 bits, lo cual le hace más lento que su hermano el 8086, pues éste es capaz de cargar 16 bits en un solo ciclo de memoria mientras el 8088 debe realizar dos ciclos leyendo cada vez un byte.
Características
Disponen de 92 tipos de instrucciones, que pueden ejecutar con hasta 7 modos de direccionamiento
Características
Tienen una capacidad de direccionamiento en puertos de entrada y salida de hasta 64K (65536 puertos)
Características
Arquitectura
Registros del programadorRegistros de propósito general
AX Acumulador
Este registro es utilizado para uso general, sin embargo se utiliza en
algunas instrucciones específicas, tales como, la
multiplicación, división, conversiones, operaciones de I/O y manejo
decadenas.
Propósito general
BX Base
Es el único de propósito general que puede ser base
(índice ) para direccionamiento indexado.
Propósito general
CX Contador
Además de propósito general, permite la ejecución de ciclos repetitivos, contador
en manejo de cadenas, instrucciones de
desplazamiento y rotación.
Propósito general
DX Datos
Además de propósito general, sirve como extensión a 32
bits del acumulador en multiplicación y división y
dirección de puerto en E/S.
Propósito general
Arquitectura
Registros del programadorRegistros punteros e índices
SP = Puntero de pila (stackpointer).
Apunta a la cabeza de la pila. Utilizado en las instrucciones de
manejo de la pila.
Punteros e índices
BP = Puntero base (base pointer).apunta a una zona dentro de
la pila dedicada al almacenamiento de datos (variables locales y parámetros de procedimientos).
Punteros e índices
SI = Índice fuente (source index).Utilizado como registro de
índice en ciertos modos de direccionamiento indirecto, también se emplea para guardar un valor de desplazamiento en operaciones de cadenas.
Punteros e índices
DI = Índice destino (destination index).
Se usa en determinados modos de direccionamiento indirecto y para almacenar un desplazamiento en operaciones con cadenas.
Punteros e índices
Arquitectura
Registros del programadorRegistros de Segmento
Definen áreas de 64 Kb dentro del espacio de direcciones de 1 Mb del 8086. Estas áreas pueden solaparse total o parcialmente. Definen direcciones físcas de 20 bits con registros de 16 (segmentación)
Registros de Segmento
desplazamiento
segmento
Dirección física
16 bits
20 bits
CS = Registro de segmento de código (code segment).
Contiene la dirección del segmento con las instrucciones del programa. Los programas de más de 64 Kb requieren cambiar CS periódicamente.
DS = Registro de segmento de datos (data segment).
Segmento del área de datos del programa.
Registros de Segmento
SS = Registro de segmento de pila (stack segment).
Define el área de pila.
Registros de Segmento
ES = Registro de segmento extra (extra segment).
Segmento de ampliación para zona de datos. Es útil actuando en conjunción con DS cuando se trata de intercambiar datos
Registros de Segmento
Arquitectura
Registros del programadorOtros registros
IP = Puntero de instrucción (instruction pointer).
Marca el desplazamiento de la instrucción en curso dentro del segmento de código. Es automáticamente modificado con la lectura de una instrucción.
Puntero de instrucciones
Registro de estado o de indicadores (flags).
Es un registro de 16 bits de los cuales 9 son utilizados para indicar diversas situaciones durante la ejecución de un programa.
Registro de banderas
Los bits 0, 2, 4, 6, 7 y 11 son indicadores de condición, que reflejan los resultados de operaciones del programa
Registro de banderas
los bits del 8 al 10 son indicadores de control y el resto no se utilizan. Estos indicadores pueden ser comprobados por las instrucciones de salto condicional, lo que permite variar el flujo secuencial del programa según el resultado de las operaciones.
Registro de banderas
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
OF DF IF TF SF ZF AF PF CF
Acarreo
Paridad
Acarreo auxiliar
Cero
Signo
Desbordamiento
Dirección
InterrupciónTrampa
Banderas
CF (Carry Flag)
Indicador de acarreo en una suma o débito en una resta. También surge como una extensión de un bit en operaciones de desplazamiento y rotación
Banderas
OF (Overflow Flag)
Indicador de desbordamiento en complemento a 2’s. Indica que el resultado de una operación (con operandos enteros) no cabe en el tamaño del operando destino.
Banderas
ZF (Zero Flag)
Indicador de resultado 0 o comparación igual.
SF (Sign Flag)
Indicador de resultado o comparación negativa.
Banderas
PF (Parity Flag)
Indicador de paridad. Se activa tras algunas operaciones aritmético-lógicas para indicar que el número de unos resultante es par.
AF (Auxiliary Flag)
Acarreo del nibble inferior. Para ajuste en operaciones BCD.
Banderas
TF (Trap Flag): Indicador de atrape (ejecución paso a paso).
DF (Direction Flag): Indicador de dirección. Manipulando bloques de memoria, indica el sentido de avance (ascendente/descendente).
IF (Interrupt Flag): Indicador de interrupciones: puesto a 1 están permitidas.