El intel 8086

Preview:

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.