Componentes del procesador 8086. El microprocesador 8086, es un microprocesador de 16 bits que controla los ordena dores personales estándar de IBM. El 8086 difiere del 8088 solamente en un detalle: utilia un bus de datos de 16 bits en !e del bus de 8 bits del 8088. " e#cepci$n de esa diferencia, se les considera prácticamente id%nticos. &or ello, cada !e que se 'a(a referencia a uno de ellos, se pondrá 8086)8088 para indicar que esa referencia es !álida para ambos microprocesadores.
Los registros de la CPU CPU
Registros de almacenamiento temporal * AX +registro Acumulador : : Este re(istro es usado, sobre todo, en op eraciones aritm%ticas como primer operando - tambi%n como re(istro de prop$sito (eneral a disposici$n del pro(ramador. * BX +registro Base: Base: e usa principalmente para indicar posiciones de memoria +offset. * CX +registro Contador : : Este re(istro se usa siempre que se necesite un contador en operaciones repetiti!as - bucles.
* DX +registro Dato: e usa como re(istro au#iliar en operaciones aritm%ticas - como contenedor de datos a la 'ora de usar instrucciones de comunicaci$n de puertos. Estos cuatro re(istros, como todos los restantes, son de 16 bits, pero para permitir la realiaci$n de operaciones de tipo byte +8 bits cada uno de estos cuatro re(istros está di!idido en dos subregistros de 8 bits a los que se puede acceder de forma independiente. "s/, por eemplo, los 8 bits inferiores de AX se llaman AL + de low, bao - los 8 superiores AH +2 de high, alto. 3e esta forma se tiene que todas las instrucciones ensamblador pueden operar con datos de 8 - 16 bits se(4n lo que se precise.
Registros de segmento on cuatro re(istros de 16 bits usados para indicar direcciones de memoria +los conceptos de segmento - desplazamiento se e#plicarán en el apartado si(uiente: * CS +Code Segment : Este re(istro es usado por el procesador, unto con el re(istro IP, para conocer d$nde está la instrucci$n actual que está siendo eecutada. * DS + Data Segment : e usa para indicar d$nde están todos los datos del pro(rama en eecuci$n. * SS +Stack Segment : En este re(istro se indica al procesador d$n de está la ona de memoria que se usa como se(mento de pila. * ES + Extra Segment : Es el re(istro que referencia al se(mento e#tra, - se usa como apuntador de memoria au#iliar en operaciones compleas donde se necesitan dos punteros de datos simultáneos.
Registros de la pila a pila es un área de memoria importante. 5iene, en !e de uno, dos re(istros que se usan como desplaamiento +offset para apuntar su contenido. e usan como complemento al re(istro - son: * SP +Stack Pointer : Es el re(istro que se reser!a el procesador para uso propio en instrucciones de manipulaci$n de la pila. * BP + Base Pointer : e usa como re(istro au#iliar.
Registros índices. e utilian como desplaamientos complementarios para DS - ES a la 'ora de indicar la posici$n donde se encuentran los datos a los que se desea acceder. on: * SI +Source index: e usa como puntero ori(en en operaciones de desplaamiento de datos entre dos onas de memoria. * DI + Destination index. e usa como destino en operaciones de desplaamiento de datos.
Registros de instrucción: $lo 'a- uno, el re(istro IP + Instruction Pointer , es usado por la C& para conocer la posici$n relati!a a la base CS donde se encuentra la instrucci$n que se está eecutando actualmente. Este re(istro no puede ser modificado directamente por p arte del pro(ramador. Este puntero cambia su contenido automáticamente cada !e que se eecuta una instrucci$n o cuando se salta a otro punto del pro(rama mediante una instrucci$n de salto.
Registro de Banderas: Este re(istro es usado para tener el control d e estado - control de las operaciones. a ma-or/a de sus 16 bits se utilia para representar un estado concreto:
* Bit 0 C! +Carry lag : Es la bandera de acarreo. e pone a 1 cuando se produce un resultado con acarreo tras una operaci$n aritm%tica. * Bit ": 7o usado. * Bit # P! + Parity lag : Cuando está a 1, indica que 'a- un n4mero par de bits acti!os. * Bit $: 7o usado. * Bit % " + Auxiliar lag : e usa como bandera au#iliar. e pone a 1 cuando 'anecesidad de realiar austes tras una operaci$n de tipo BC3. * Bit &: 7o usado. * Bit ' (! + !ero lag : Indica si se 'a producido un resultado cero o una comparaci$n con operadores i(uales. * Bit ) S! +Sign lag : Indica si se 'a producido un resultado ne(ati!o o comparaci$n menor. * Bit * +! +"rap lag : Es la bandera de atrape, usada en procesos de depuraci$n de c$di(o. * Bit , I! + Interrupt lag : i está a 1, indica que está permitida la (eneraci$n de interrupciones 'ard9are que (eneran al(unos perif%ricos, como la que realia el teclado cada !e que una tecla es pulsada. * Bit "0 D! + Direction lag : Indica a la C& 'acia donde se desplaan los punteros relati!os en operaciones repetiti!as de cadenas de datos. * Bit "" -! +#$er%low lag : Indica si se 'a producido un desbordamiento aritm%tico. * Bit "# al "&: 7o usados.