You are on page 1of 32

Se gu nd o Cuatrimestre

ASIGNATURA: ESTRUCTURA DE COMPUTADORES I.TELECOMUNICACION PROFESORA: JUANA M LOPEZ DEPARTAMENTO DE AUTOMATICA

CAPITULO PRIMERO

ARQUITECTURA DEL MICROPROCESADOR 8086

Estructura de Computadores Juana M Lpez epartamento de Automatica !

Asignatura: Estructura de Computadores Arquitectura del Microprocesador 8086 I.Telecomunicacin

ARQUITECTURA DEL MICROPROCESADOR 8086.

1.

INTRODUCCION.

Los procesadores de !" #its $ueron una nue%a generacin de microprocesadores desarro&&ados para reemp&azar o comp&etar a &as microcomputadoras de ' #its de &os a(os setenta) *ue $ueron &as *ue comenzaron &a re%o&ucin de &as microcomputadoras+ E& ','" $ue dise(ado para tra#a-ar con &engua-es de a&to ni%e&) disponiendo de un soporte .ard/are con e& *ue &os programas escritos en dic.os &engua-es ocupan un pe*ue(o espacio de cdigo 0 pueden e-ecutarse a gran %e&ocidad+ Esta concepcin) orientada a& uso de compi&adores) se materia&iza en un con-unto de $aci&idades 0 recursos) 0 en unas instrucciones entre &as *ue ca#e destacar &as *ue permiten e$ectuar operaciones aritm1ticas de mu&tip&icar 0 di%idir) con 0 sin signo2 &as *ue mane-an cadenas de caracteres) etc+ En su momento) e& ','" -unto con e& ','' $ueron &os microprocesadores m3s emp&eados dentro de su categor4a) especia&mente desde *ue I5M &os adopt para &a construccin de su computadora persona&+ Muc.os $a#ricantes de microordenadores uti&izaron esta $ami&ia microcomputadora para $a#ricar e*uipos de tipo pro$esiona&+ 6o0 en d4a) &a uti&izacin de& ','" es m3s reducida) *uedando principa&mente orientado a &a ense(anza) como #ase de &os microprocesadores de &a 7&tima generacin+ Antes de pasar a .acer una descripcin m3s deta&&ada de &a ar*uitectura interna de& microprocesador) %amos a destacar #re%emente &as principa&es caracter4sticas de& ','"8 E& ','" dispone de instrucciones especia&es para e& tratamiento de cadenas de caracteres+ Los registros de& ','" tienen una misin espec4$ica) por &o *ue se podr4a decir *ue cada uno de e&&os tiene su propia persona&idad) aun*ue %arios comparten tareas comunes+ E& encapsu&ado de& ','" est3 $ormado por 9, pati&&as) simp&i$icando as4 e& .ard/are) aun*ue por contra) es necesario &a mu&tip&e:acin de& #us de datos con e& de direcciones+

E& ','" dispone de un con-unto de registros) denominados ;co&a de epto+ de Automatica Juana Mar4a Lpez Area de Ar*uitectura de Computadores <

Asignatura: Estructura de Computadores Arquitectura del Microprocesador 8086 I.Telecomunicacin instrucciones=) en e& cua& se %an a&macenando de $orma anticipada &os cdigos de &as instrucciones) consiguiendo *ue este aumente su %e&ocidad de tra#a-o+

epto+ de Automatica Juana Mar4a Lpez Area de Ar*uitectura de Computadores >

Asignatura: Estructura de Computadores Arquitectura del Microprocesador 8086 I.Telecomunicacin Las <, &4neas de& #us de direcciones s&o permiten direccionar una memoria de ! Mega#0te+ E& ','" re*uiere una se(a& de re&o- e:terior) siendo ? 0 ' M.z &as $recuencias t4picas de $uncionamiento+ E& ','" dispone de una ar*uitectura @pipe &ineA) es decir) *ue &a CPU puede seguir &e0endo instrucciones en &os tiempos en *ue e& #us no se uti&iza+

2.

ARQUITECTURA INTERNA DEL 8086.

Este microprocesador esta di%idido en dos su#Bprocesadores+ Por un &ado est3 &a @Unidad de E-ecucinA CEUD encargada de e-ecutar &as instrucciones) &a cua& posee una ALU Cunidad aritm1ticoB&gicaD con un registro de estado con %arios $&ags asociados 0 un con-unto de registros de tra#a-o) 0 por otro est3 &a @Unidad de Inter$az de #usA C5IUD encargada de &a #7s*ueda de &as instrucciones) u#icar&as en &a co&a de instrucciones antes de su e-ecucin 0 $aci&itar e& direccionamiento de &a memoria) es decir) encargada de acceder a datos e instrucciones de& mundo e:terior+ E& ','" contiene !9 registros de !" #its) de &os cua&es) unos pertenecen a &a EU) *ue norma&mente se sue&en usar para direccionamiento) 0 otros pertenecen a &a 5IU+

A H B H C H D H

A L B L C L D L

ACUMULADOR BASE CONTADOR DATOS

PUNTERO DE PILA

EU

PUNTERO DE

BASE
S P B P S I D I

IP FLAGS H FLAGS L

INDICE FUENTE INDICE DESTINO

PUNTERO DE INSTRUCCION

epto+ de Automatica Juana Mar4a Lpez Area de Ar*uitectura de Computadores 9

Asignatura: Estructura de Computadores Arquitectura del Microprocesador 8086 I.Telecomunicacin


INDICAD ORES DE ESTADO

C S D S S S E S

SEGMENTO DE CODIGO SEGMENTO DE DATOS SEGMENTO DE PILA SEGMENTO EXTRA JUE GO DE REGIST ROS DEL 8086

BIU
Los registros de& ','" podr4an c&asi$icarse en tres grupos de acuerdo con sus $unciones+ E& grupo de datos) *ue es esencia&mente e& con-unto de registros aritm1ticos2 e& grupo de apuntadores) *ue inc&u0e &os registros #ase e 4ndices 0 tam#i1n e& contador

epto+ de Automatica Juana Mar4a Lpez Area de Ar*uitectura de Computadores ?

de programa 0 e& puntero de pi&a2 0 e& grupo de registros de segmento) *ue es un con-unto de registros #ase de propsito especia&+ E& grupo de registros de datos o registros genera&es son registros de !" #its) pudi1ndose usar cada uno de e&&os como dos registros de ' #its+ Aun siendo registros de uso genera& tiene asignadas unas operaciones espec4$icas+ As4) por e-emp&o) e& AE es e& acumu&ador de !" #its 0 us3ndo&o a %eces pro%oca *ue e& ensam#&ador produzca un &engua-e m3*uina codi$icado en mu0 pocos octetos+ Se emp&ea en mu&tip&icaciones) di%isiones) entradasFsa&idas) etc+2 e& registro 5E) se uti&iza como registro #ase para e& direccionamiento de memoria2 e& registro CE) se uti&iza como contador 0 a&macena-e de datos 0 e& registro E) se uti&iza para a&macenar datos de !" #its+ Puede pensarse *ue es una e:tensin de& registro AE para mu&tip&icaciones 0 di%isiones con !" #its+ Otra de sus $unciones espec4$icas es para a&macenar &a direccin de EFS durante a&gunas operaciones de EFS+ E& grupo de apuntadores) es decir) punteros e 4ndices est3 $ormado por &os registros IP) SP) 5P) SI) I+ Los registros puntero son dos8 IP como registro puntero de instrucciones conocido principa&mente como contador de programa+ Este contiene un %a&or de !" #its *ue es un desp&azamiento so#re &a direccin de& registro CS C segmento de cdigo D *ue m3s ade&ante deta&&aremos+ SP como registro de pi&a+ E& registro 5P act7a como #ase de &a direccin de &a pi&a+ Los registros puntero de instrucciones C IP D 0 puntero de pi&a C SP D se encargan de& contro& de $&u-o de& programa+ Los registros SI 0 I act7an como 4ndices asociados a& registro S C segmento de datos D+ E& grupo de registros de segmento est3 $ormado por &os registros CS) SS) ES+ CS S SS ES C segmento de cdigo D+ C segmento de datos D+ C segmento de pi&a D+ Csegmento e:tra D+ S0

La importancia de dic.os registros *ueda re$&e-ada en &a estructura de &a memoria con &a t1cnica de segmentacin) *ue principa&mente radica en e& *ue e& espacio tota& de memoria se di%ide en trozos de "9G #0tes) *ue reci#en e& nom#re de @segmentosA+

Las %enta-as de uti&izar registros de segmento son8 Permite una capacidad de memoria de .asta ! mega#0te) aun*ue &a direccin asociada a una instruccin sea s&o de !" #its+ Permiten *ue &as partes de un programa) instrucciones) datos 0 pi&as) tengan un tama(o ma0or de "9G) mediante &a uti&izacin de m3s de un segmento para cdigo) datos o pi&a+ Haci&itan &a uti&izacin de 3reas separadas para un programa) sus datos 0 &a pi&a+ Permiten co&ocar un programa 0 sus datos en di$erentes 3reas de memoria cada %ez *ue se e-ecute+ Aparte de todos estos registros) e& ','" consta de un registro de estado de estado de !" #its) aun*ue a&gunos de e&&os no se uti&izan+ Cada uno de &os #its se denomina indicador o $&ag) *ue genera&mente) se modi$ican por &as operaciones &gicas 0 aritm1ticas+ Estos indicadores son8 SH C indicador de signo D+ IH C indicador de cero D+ PH C indicador de paridad D+ CH C indicador de acarreo D+ AH C indicador de acarreo au:i&iar D+ OH C indicador de des#ordamiento D+ H C indicador de direccin D+ IH C indicador de interrupcin D+ TH C indicador de trap D+

3.

ESTRUCTURA DE MEMORIA DE SEGMENTACIN.

E& ','" usa un es*uema &&amado segmentacin) para acceder correctamente a un mega#0te comp&eto de memoria) con re$erencias de direcciones de s&o !" #its) 0 todo esto gracias a &a uti&izacin de registros de segmento *ue di%iden esencia&mente e& espacio de memoria en segmentos de "9G de &ongitud) *ue pueden estar separados entre s4) ad0acentes o superpuestos) 0 *ue comienzan en una direccin di%isi#&e por !"+ La $orma en *ue se comp&etan &os <, #its de& #us de direcciones) disponiendo en &a CPU) so&amente) registros de !" #its) se consigue de &a siguiente manera8

Se parte de& contenido de uno de &os registros de segmento) *ue act7an como #ase+ espu1s) se mu&tip&ica por !" e& contenido de& registro de segmento) &o *ue) en #inario) signi$ica a(adir&e 9 ceros a &a derec.a 0 con%ertir&o en una magnitud de <, #its+ Hina&mente) se suma un desp&azamiento a& resu&tado de &a mu&tip&icacin anterior+ A#re%iadamente) &a $rmu&a para ca&cu&ar una direccin de memoria es8 ireccin H4sica J !" K C registro de segmento D L desp&azamiento+

!?

REMISTRO E SEMMENTO

!"
!O ,

REMISTRO E SEMMENTO

,,,,

!?

IRECCION EHECTIPA Q ESPLAIAMIENTO

!O

DIRECCIN FSICA

e esta manera) so#re &a direccin #ase *ue apunta e& registro de segmento mu&tip&icado por !") e:iste un margen de "9G #0tes) contro&ado por un desp&azamiento de !" #its+

espu1s de .a#er %isto de una $orma genera& e& $uncionamiento de &a estructura de &a memoria de segmentacin %amos a %er como) m3s concretamente) e& ','" 0 en $uncin de &os registros de segmento 0 e& resto de registros) ca&cu&a &as direcciones comp&etas de &as instrucciones) posiciones de pi&a 0 datos+ Las direcciones comp&etas de &as instrucciones 0 de &as posiciones de &a pi&a se $orman sumando e& contenido de &os registros IP 0 SP con e& segmento de cdigo C CS D 0 e& segmento de pi&a C SS D respecti%amente+ La direccin de un dato puede $ormarse mediante &a suma de &os contenidos de &os registros 5E 5P) &os contenidos de SI I) 0 un desp&azamiento+ E& resu&tado de este c3&cu&o se denomina direccin e$ecti%a C EAD desp&azamiento de segmento+ La direccin de$initi%a de& dato) sin em#argo) se determina mediante &a EA 0 e& registro de segmento apropiado) e& segmento de datos C S D) e& segmento e:tra C ES D e& segmento de pi&a C SS D+ E& uso de &os di$erentes segmentos signi$ica *ue .a0 3reas de tra#a-o separadas para e& programa) &a pi&a 0 &os datos+ Cada 3rea de tra#a-o tiene un tama(o m3:imo de "9G #0tes 0 un m4nimo de ,+ ado *ue .a0 cuatro registros de segmento) uno de programa C CS D) uno de pi&a C SS D) uno de datos C S D 0 uno e:tra C ES D e& 3rea de tra#a-o puede &&egar .asta <?"G+ E& programador puede determinar &a posicin de estos segmentos) cargando e& apropiado registro de segmentacin de !" #its con &a direccin de segmento apropiada+ Esto se rea&iza norma&mente a& inicio de& programa) pero se puede $3ci&mente .acer en cua&*uier momento mientras a& programa se e-ecuta) cam#iando din3micamente &a direccin de estos segmentos+ Cam#iando e& desp&azamiento) e& programador puede acceder a cua&*uier punto de segmento+ Se puede pensar en e& segmento como una amp&iacin de memoria *ue $orma un 3rea de tra#a-o+ E& desp&azamiento es &a 7nica parte de &a direccin *ue aparece norma&mente en &os programas en &engua-e ensam#&ador durante &as re$erencias a direcciones de& 3rea de tra#a-o+

4.

SE AL DE RELOJ.

A& igua& *ue &os mas recientes microprocesadores) e& ','" re*uiere una 7nica se(a& de re&o-+ Este microprocesador no genera su propia se(a& de re&o- siendo necesario &a uti&izacin de& generador de re&o- '<'9) *ue usa un crista& osci&ador para determinar &a $recuencia de se(a&+ Intercam#iando este crista&) se puede se&eccionar di$erentes %e&ocidades de operacin+ Inte& tiene una %ersin de ? M6z 0 otra de ' M.z para e& ','"+ Estas %ersiones representan &as %e&ocidades m3s a&tas) recomenda#&es para este c.ip+ Para un rendimiento ptimo) e& ','" re*uiere una se(a& de re&o- *ue se mantenga a tensin a&ta una tercera parte de& tiempo tota& de cic&o+ Esto signi$ica *ue e& re&o- est3 acti%o una tercera parte de& tiempo 0 desacti%ado &as dos terceras partes de& tiempo+

!.

MODOS DE DIRECCIONAMIENTO.

La $orma en *ue se especi$ica un operando se denomina modo de direccionamiento) es decir) es un con-unto de reg&as *ue especi$ican &a &oca&izacin Cposicin D de un dato usado durante &a e-ecucin de una instruccin+ E& ','" tiene <? modos de direccionamiento o reg&as para &oca&izar un operando de una instruccin+ Los modos de direccionamiento m3s $recuentes son &os *ue ca&cu&an &a direccin de& operando mediante &a suma de &a direccin #ase de un registro segmento) mu&tip&icado por !" 0 e& %a&or de un desp&azamiento+ La gran %ariedad de direccionamientos pro%iene de &as muc.as $ormas en *ue se puede determinar e& desp&azamiento+ En genera&) &os modos de direccionamiento de& ','" se di%iden en dos grandes grupos8 !+ Modos de direccionamiento de &a memoria de programa+ <+ Modos de direccionamiento de &a memoria de datos+

!.1.

M"#"$ #% #&'%((&")*+&%)," #% -* +%+"'&* #% .'"/'*+*.

En &a #7s*ueda de una instruccin) su direccin se o#tiene sumando e& desp&azamiento) contenido en e& IP) a& %a&or de& registro de segmento CS) mu&tip&icado por !"+ Norma&mente a& terminar &a e-ecucin de una instruccin) e& IP se incrementa) con &o *ue se pasa a direccionar &a siguiente instruccin+ Las instrucciones de sa&to 0 sa&to a su#rutinas pueden modi$icar e& contenido de IP de tres $ormas di$erentes8 Por direccionamiento re&ati%o+ A& contenido de& IP se suma) de $orma inmediata) un desp&azamiento de ' a !" #its) con signo) proporcionado por &a misma instruccin+ Por direccionamiento directo+ Se carga) en e& IP) una nue%a direccin presente en &a instruccin+ Por direccionamiento indirecto+ E& dato) o#tenido por cua&*uiera de &as $ormas de direccionado de &a memoria de datos) es interpretado por &as instrucciones de sa&to) como &a direccin a &a *ue se de#e sa&tar+

!.2.

M"#"$ #% #&'%((&")*+&%)," #% -* +%+"'&* #% #*,"$.

Modo inmediato+ E& operando se proporciona en e& #0te o #0tes *ue siguen a& cdigo de operacin de &a instruccin+ Ejem !": A CE)>'?H.

Modo de direccionado por registro+ Un registro) de$inido por &a instruccin) contiene e& operando+ Ejem !": A CE)AE

Modo directo+ E& #0te o par de #0tes *ue siguen a& cdigo OP de &a instruccin dan e& desp&azamiento de ' !" #its) *ue) sumado a& contenido de& registro S) determina &a direccin e$ecti%a en &a *ue se encuentra e& dato a trans$erir+ Ejem !": A CL)TA5LA

Modo directo inde:ado+ E& #0te o par de #0tes *ue siguen a& cdigo OP representan un desp&azamiento *ue se suma a& contenido de uno de &os registros 4ndice C I o SID+ E& contenido de S se a(ade a& resu&tado de &a suma) con &o *ue se o#tiene &a direccin de& operando+

Incrementando o decrementando &os registros 4ndice) se puede acceder a posiciones de memoria consecuti%as+ Ejem !": A CE) RSIL9S

Modo indirecto+ La direccin de& operando es e& contenido de uno de &os siguientes registros8 5P) 5E) I o SI+ Ejem !": A CE) R5ES

Por registro #ase inde:ado+ E& desp&azamiento *ue .a de sumarse a un registro segmento se .a&&a sumando e& contenido de un registro 4ndice 0 un desp&azamiento de ' !" #its) contenido en &a instruccin) a& contenido de un registro #ase+ Ejem !": MOP AE)TA5LAR5ESRSIS Modo re&ati%o a #ase8 E& #0te o par de #0tes *ue siguen a& cdigo OP representan un desp&azamiento *ue se suma a& contenido de uno de &os registros #ase C5E o 5PD+ E& contenido de S se a(ade a& resu&tado de &a suma) con &o *ue se o#tiene &a direccin de& operando+ Ejem !": MOP AE) R5PSL9

6.

FORMATO DE LAS INSTRUCCIONES.

A seme-anza con otros microprocesadores) &as instrucciones de& ','" pueden c&asi$icarse en tres grupos) seg7n &a de$inicin *ue se uti&ice para &os operandos8 Sin operando+ Por e-emp&o) CLI) STI) AA) TAIT) etc+ Con un s&o operando+ Por e-emp&o) JMP) PUS6) CALL) etc+ Con dos operandos+ Por e-emp&o) MOP+ Las instrucciones %ar4an de ! a " #0tes en &ongitud+ Los desp&azamientos 0 &os datos inmediatos pueden tener ' !" #its dependiendo de &a instruccin+ E& cdigo de operacin 0 e& modo de direccionamiento se encuentran en &os primeros uno o dos #0tes de &a instruccin+ Estos pueden ir seguidos por8 Ning7n #0te adiciona&+ Una EA de < #0tes C s&o para direccionamiento directo D+ Un desp&azamiento de ! < #0tes+ Un operando inmediato de ! < #0tes+

Un desp&azamiento de ! < #0tes seguidos de un operando inmediato de ! < #0tes+ Un desp&azamiento de < #0tes 0 una direccin de un segmento de < #0tes Cs&o para direccionamientos $uera de& segmento D+ E& cdigo de operacin 0 e& modo de direccionamiento determinan cua& de estas posi#i&idades es &a uti&izada+ Si un desp&azamiento o un operando inmediato son de < #0tes) siempre aparece primero e& #0te de menor orden+ E& cdigo de operacin) *ue genera&mente es e& primer #0te de &a instruccin Caun*ue .a0 a&gunas %eces en &as *ue este #0te designa un registro 0 otras en &as *ue > #its de& cdigo de operacin est3n en e& segundo #0teD) es e& encargado de determinar &a operacin) in$ormando a su %ez de& tama(o de &os operandos+ En &a ma0or4a de &os cdigos de operacin .a0 indicadores especia&es de ! #it+ Estos indicadores son8 #$% &. Nos in$orma de& tama(o de &os operandos) es decir) si se trata de #0te o pa&a#ra+ Con T J , estamos accediendo a un #0te 0 con T J ! a una pa&a#ra+ #$% D. Este #it es uti&izado con instrucciones de dos operandos) sa&%o en &os casos en *ue uno de &os operandos de#e ser un registro especi$icado en e& campo REM+ Este #it nos in$orma si e& registro especi$icado en e& campo REM se trata de& operando $uente u operando destino de instruccin especi$icada por e& cdigo de operacin+ Para J ,) e& registro indicado por e& campo REM es e& operando $uente 0 para J !) e& registro indicado por e& campo REM es e& operando destino+ #$% S. E& #it S aparece -unto con e& #it T en instrucciones de suma inmediata registro F memoria) resta 0 comparacin+ E& #it S indica e& tama(o de& dato u operando inmediato) e& #it T nos indica e& tama(o de& dato u operando destino+ Si ST es ,,) tanto &a $uente como destino tienen ' #its) es decir) se trata de una operacin de ' #its2 Si ST es !! se trata de una operacin de !" #its con un operando inmediato de !" #its con e:tensin de signo2 Si ST es ,! indica una operacin de !" #its con un operando inmediato de ' #its con e:tensin de signo+ #$% '. Uti&izado por instrucciones de desp&azamiento 0 rotacin para determinar e& n7mero de desp&azamientos+ #$% Z. Uti&izado para instrucciones REP+ A continuacin se muestra &a com#inacin de #its para asignacin de registros C de segmento o cua&*uier otro tipo D+

D$(e))$*+ ,e (e-$.%(" 000 000 000 000 000 000 000 000 D$(e))$*+ ,e (e-$.%(" 00 00 00 00

Re-$.%(". &/0 A1 C1 D1 #1 SP #P SI DI

Re-$.%( ". & A / L C L D L # L A2 C2 D2 #2 Re-$.%(" ,e .e-me+%" E S C S S D S

Como se puede apreciar en estas ta#&as se podr4a producir am#igUedad a& representar) por e-emp&o) ,, para indicar e& registro de segmento ES) ,,, para indicar AE 0 a su #0te de menor orden AL ) pero esto no sucede 0a *ue e& cdigo de operacin imp&ica e& tipo de registro *ue indica+ Cuando e& cdigo de operacin 0 e& modo de direccionamiento ocupan < #0tes pueden %erse representado de &as dos $ormas siguientes8

MOD

COD OP

R3M

MOD

REG

R3M

E& primero de &os casos es para instrucciones de un s&o operando o #ien instrucciones de dos operandos pero uno de e&&os imp&4cito en e& cdigo de operacin+ E& segundo de &os casos se trata de instrucciones de dos operandos) en cu0o caso uno de e&&os %iene especi$icado por e& campo REM 0 e& otro operando %iene especi$icado

por &os campos MO memoria+

0 RFM *ue pueden indicar un registro o #ien una posicin de

A continuacin se especi$ica una ta#&a donde *uedan re$&e-ados &os modos de direccionamiento 0 registros de segmento por de$ecto para %arias com#inaciones de &os campos MO 0 RFM+

MOD R3M

0
4#15 6 4SI5 DS 4#15 6 4DI5 4#P5DS 6 4SI5 4#P5 SS 6 4DI5 SS 4 S I5 4 D I5 D 06 D 4# 1 5

0
4#1564SI5 6D8 D 4#1564DI5 6D8 D 4#P564SI5 6D8 S 4#P564DI5 6D8 S6 4SI5 D8 D 6 4DI5 D8 D 6 4#P5 D8 S 6 D8 4#15 D S

0
4#1564SI5 6D06 D 4#1564DI5 6D06 D 4#P564SI5 6D06 S 4#P564DI5 6D06 S 6 4SI5 D06 D6 4DI5 D06 D 6 4#P5 D06 S 6 4#15 D06 D

0 & /0 A
L C L D L # L A 2 C 2 D 2 # 2

&/0
A1 C1 D1 #1 SP #P SI DI

000
Reg+ de segmento

000
Reg+ de segmento

000
Reg+ de segmento

000
Reg+ de segmento

000
Reg+ de segmento

000
Reg+ de segmento

000
Reg+ de segmento

000
Reg+ de segmento

Piendo esta ta#&a podemos apreciar *ue seg7n &a com#inacin de MO 0 RFM tendremos di$erentes posi#i&idades para e& segundo operando+ Como anteriormente se .a indicado este segundo operando puede ser un registro o una posicin de memoria) *ue principa&mente %a a estar en $uncin de& campo MO + Si MO J !! nos indica *ue se trata de un registro) pudiendo %er de *ue tipo de registro se trata seg7n &a com#inacin de RFM+ Si MO es distinto de !! nos indica una posicin de memoria 0 &a direccin e$ecti%a se ca&cu&a seg7n &as ta#&as+ Si nos $i-amos en MO J ,, esto signi$ica *ue no .a0 desp&azamiento a menos *ue RFM J !!,) &o *ue imp&icar4a direccionamiento directo+ Si MO J ,! indica *ue e& tercer #0te de &a instruccin contiene un desp&azamiento de ' #its *ue se e:tiende autom3ticamente a !" C e:tensin de signo D antes de ser usado para ca&cu&ar &a direccin e$ecti%a) 0 MO J !, indica *ue &os #0tes tercero 0 cuarto contienen un desp&azamiento de !" #its+ Podemos o#ser%ar en &a ta#&a e& registro de segmento *ue es uti&iza para cada una de &as com#inaciones de MO 0 RFM+ Aun*ue &a direccin e$ecti%a de un operando en memoria est3 determinada por &os campos MO 0 RFM) &a direccin $4sica de <, #its

se o#tiene) como 0a %imos) sumando &a direccin e$ecti%a 0 e& contenido de un registro de segmento mu&tip&icado por !"+ E:iste un #0te especia& de pre$i-o para permitir e:cepciones a &a uti&izacin de& registro de segmento dado por &a ta#&a anterior) es decir) nos permite ignorar a&gunas de estas asignaciones pero no todas) este #0te se denomina pre$i-o de sustitucin de segmento+ En particu&ar) si &a CPU usa &a instruccin puntero para a0udarse a apuntar a memoria) es decir) para &oca&izar parte de una instruccin) entonces e& registro de segmento de cdigo siempre se usa+ V si &a CPU usa e& puntero de pi&a para a0udarse a apuntar a memoria) tanto para introducir como para e:traer de &a pi&a) entonces se usa siempre e& registro de segmento de pi&a+ E& caso de& destino en operaciones con cadena es e& 7nico en e& cua& .a0 una restriccin+ La com#inacin de& 4ndice de destino C I D 0 e& segmento e:tra C ES D se usa siempre para ca&cu&ar &a direccin de& destino en cua&*uier operacin con cadenas+ E& #0te de pre$i-o de sustitucin de segmento puede usarse) sin em#argo) para o#&igar a uti&izar a&guno de &os cuatro registros de segmento en e& c3&cu&o de &a direccin puente de una operacin de cadenas) resumiendo) &os casos espec4$icos en &os *ue no puede .a#er sustituciones son8 E& CS se uti&iza siempre como registro de segmento para e& c3&cu&o de &a pr:ima instruccin *ue se %a a e-ecutar+ Cuando se uti&iza SP siempre se uti&iza SS como registro de segmento+ Para operaciones con cadenas siempre se uti&iza ES como registro de segmento de& operando destino+ Los <9 modos de re$erenciar &a direccin) usados para e& acceso de datos) pueden aceptar un #0te de pre$i-o de sustitucin de segmento e ignorar sus asignaciones por de$ecto a& segmento) usando cua&*uier registro de segmento+ La asignacin por de$ecto como se puede %er en &a ta#&a es o e& segmento de datos C S D o e& de pi&a C SS D 0) de .ec.o) se usa siempre e& segmento de datos a menos *ue e& modo de direccionamiento use e& puntero #ase C 5P D) en cu0o caso se usa e& registro de pi&a+ Inte& aconse-a uti&izar e& puntero #ase para acceder a datos en &a pi&a de& sistema 0 norma&mente con &&amadas a su#rutinas+ Para e:aminar con m3s c&aridad &as instrucciones m3*uina de& ','") %amos a %er unos e-emp&os con &a instruccin suma C A D+ Una suma C A D pro%oca *ue e& contenido de &a posicin indicada para e& operando $uente sea sumado a& contenido de &a posicin indicada para e& operando destino) 0 *ue &a suma reemp&ace a 1sta 7&tima+ Esta instruccin puede adoptar uno de &os tres $ormatos *ue se muestran e& &a siguiente $igura) dependiendo de& modo de direccionamiento+ a) Suma de un registro con un registro o con memoria ! almacenamiento del resultado en un registro o en una memoria. ,,,,,, T RE RF ESP menor orden ESP ma0or orden M M K E& campo ESP puede ocupar uno o dos #0tes) dependiendo de& campo MO + MO

") Suma inmediata con registro #memoria) ! colocacin del resultado en un registro #memoria). !,,,,,ST ,, RF ESP ESP a&to AT #a-o AT a&to , M #a-o K E& campo ESP puede ocupar uno o dos #0tes) dependiendo de& campo MO + K E& #0te a&to de& campo AT es opciona&) 0 estar3 presente si S8T J ,!+ MO

c) Suma inmediata con A$#A%) ! almacenamiento del resultado en A$#A%). Caso especial para el acumulador. ,,,,,!,T ATO menor orden ATO ma0or orden

K E& #0te ATO de ma0or orden es opciona&) dependiendo de si T J !+ La siguiente $igura muestra e& cdigo en e& &engua-e m3*uina para dos instrucciones A ) &as cua&es suman &os contenidos de &os registros 56 0 CL) 0 co&ocan e& resu&tado en CL+ En &a primera) J ! indica *ue REM J ,,! J CL es donde ser3 a&macenada &a suma+ MO J !!) por &o *ue RFM designa un registro) e& registro !!! J 56+ En &a segunda instruccin) J ,) &o *ue .ace *ue REM J WWW J 56 sea &a $uente+ e nue%o MO J !!) 0 RFM designa a un registro *ue en este caso es e& ,,! J CL+

D 000000 0

& 0

MOD 00

REG 000

R3M 000

J ! Indica *ue e& destino es un registro+ T J , Operandos de #0te C suma en ' #its D+ MO J !! La $uente ser3 un registro *ue *uedar3 determinado por RFM+ REM J ,,! Indica e& registro CL+ RFM J !!! Indica e& registro 56+ a) &E' indica destino. D 000000 0 & 0 MOD 00 REG 000 R3M 000

J , Indica *ue &a $uente es un registro+ T J , Operandos de #0te+ MO J !! La $uente ser3 un registro *ue *uedar3 determinado por RFM+ REM J !!! Indica e& registro 56+ RFM J ,,! Indica e& registro CL+

") &E' indica (uente. E& siguiente e-emp&o indica una suma de una posicin de memoria con un registro+ La direccin e$ecti%a se o#tiene sumando &os contenidos de 5E 0 I a& desp&azamiento de !" #its C T J ! D) *ue es <>9?+ Si C 5E D J ,'O< 0 C I D J ?OA>) entonces EA J ,'O< L ?OA> L<>9? J '?XA+ D 000000 0 & 0 MOD 00 REG 000 R3M 000 DESPLAZAMIENT O 00000000 00000000

J , Indica *ue &a $uente es un registro+ T J ! Operandos de pa&a#ra+ MO J !, La $uente *ue ser3 memoria *uedar3 determinada por e& campo RFM+ REM J ,!, Indica e& registro E+ RFM J ,,! Indica una posicin de memoria *ue ser38 EA J C5ED L C ID L desp&azamiento de !" #its+ c) Suma de un registro con memoria.

GND AD14 AD13 AD12 AD11 AD10 AD9 AD8 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0

1 2 3 4 ! 6 1 8 0 1 0 1 1 1 2 1 3 1 4 1 ! 1 6

40 30 38 31 36 3! 34 33 32 31 30 20 28 21 26 2!

MO DO MINI MO

VC C

MO DO MAXI MO

AD1 5 A16/ S3 A17/ S4 A18/ S5 A19/ S6 BHE/ S7 MN/ MX RD RQ/ GT0 RQ/ GT1 LOC K S2 S1 S0 QS 0 (HOL D) (HLD A) ( R ) (M/! O) (DT/ R) (DE N) (AL E)

808 6

NM! !NTR CLK GND

1 1 1 8 1 0 2 0

24 23 22 21

QS 1 TES T REA D" RES ET

(!NT A)

1.

DIAGRAMA DE CONEXIONADO DEL 8086. SE ALES 2 TERMINALES.

MICROPROCESADOR 8086

E& ','" puede con$igurarse de dos $ormas distintas8 e& modo m3:imo 0 e& modo m4nimo+ E& modo *ueda determinado a& co&ocar e& termina& MNFME a tierra o a &a tensin de a&imentacin+ En modo m4nimo no admite &a mu&titarea) mientras *ue en modo m3:imo es capaz de soportar un #us &oca&) para amp&iar directamente e& ','") 0 un #us de sistema MULTI5US) *ue permite con$iguraciones con %arios procesadores) m3s concretamente

e& ','" de#e estar en modo m3:imo si *uiere tra#a-ar en co&a#oracin con e& procesador de datos ','X 0 e& procesador de entrada F sa&ida ','O+ En e& modo m3:imo) e& ','" depende de otros c.ips adiciona&es como es e& contro&ador de #us '<'' para generar e& con-unto comp&eto de se(a&es de contro& de #us+ E& modo m4nimo permite a& ','" tra#a-ar de una $orma m3s autnoma+ La $igura siguiente muestra un es*uema de am#os modos+

3R M4IO DT4R DEN ALE AD0 5 AD1!

8086 CPU 6MIN7

A16 5 A10 S3 5 S6

INT NMI TEST HOLD HLDA

MODO MINIMO DEL 8086

AL NDP 8081

QS0 5 QS1 S0 5 S2

AD0 5 AD1!

A MEMORIA

SE ALES DE ESTADO

8086 CPU 6MAX7

A16 5 A10 S3 5 S6

A MEMORIA

INT NMI TEST BHE4S1

MODO MAXIMO DEL 8086

En am#os modos) &as se(a&es de& ','" se pueden agrupar de &a siguiente manera8 A&imentacin+ Re&o-+ Contro& 0 estado+ irecciones+ atos+ 6a0 tres termina&es para &a a&imentacin8 tierra C MN D en &os termina&es ! 0 <,) 0 una tensin de entrada de ? %o&tios C Pcc D en e& termina& 9,+ E& termina& de tierra es tierra a &a %ez para &a a&imentacin 0 para &as se(a&es+ Cuenta con una entrada de &a se(a& de re&o- C CLG D en e& termina& !O+ E& ','" cuenta con <, #its de direccin+ Los 9 #its m3s signi$icati%os de &a direccin comparten termina&es con a&gunas de &as se(a&es de estado+ Los !" #its menos signi$icati%os son mu&tip&e:ados tanto para &as direcciones como para &os datos) es decir)

en ciertos instantes ta&es termina&es conducen parte de una direccin) 0 en otros son transmitidos &os datos+ Estos termina&es pueden &&e%ar in$ormacin de una direccin e in$ormacin so#re e& estado 0 &os datos+ E& &atc. '<'< est3 dise(ado para se&eccionar &a in$ormacin so#re &a direccin de dic.os termina&es en e& instante preciso e ignorar &o re$erente a& estado 0 &os datos+ 6a0 %arios grupos de contro& 0 se(a&es de estado+ E& termina& MN 3 M1 contro&a si e& procesador est3 en modo m4nimo o m3:imo) conect3ndo&o a tierra o a una tensin de ? %o&tios+ e& S0 7! S8 son se(a&es de estado en &os termina&es <") <X) <') >') >X) >") >?) >9 respecti%amente+ En ciertos momentos son sa&idas de& procesador+ En otros momentos aparecen otras se(a&es distintas en &os mismos termina&es+ Mirando e& estado pueden decirse cosas ta&es como e& tipo de acceso a& #us C &ectura o escritura) memoria o EFS D) e& registro de segmento en uso 0 e& estado de& sistema de interrupciones+ S09 S0 : S; son s&o accesi#&es en modo m3:imo) en cu0o caso se introducen en &os c.ips contro&adores de #us '<''+ Estas se(a&es decodi$ican e& estado de& procesador) de acuerdo con &a siguiente ta#&a+

S; 0 0 0 0 0 0 0 0

S0 0 0 0 0 0 0 0 0

S0 0 0 0 0 0 0 0 0

ESTADO DE LA CPU
RECONOCIMIENTO E INTERRUPCION LECTURA PUERTA IFO ESCRITURA PUERTA IFO PARO C 6ALT D CO IMO E ACCESO A INSTRUCCION LECTURA MEMORIA ESCRITURA MEMORIA PASIPO+ NO OPERA+

E& contro&ador de #us '<'' genera a partir de estas) otras importantes se(a&es de contro&+ En e& modo m4nimo no es preciso e& contro&ador de #us '<'' puesto *ue e& propio procesador genera por si s&o a&gunas de estas se(a&es de contro&+

La se(a& RD es una se(a& de estado generada por e& procesador so#re e& termina& ><+ Indica un cic&o de &ectura de memoria o entradas 0 sa&idas+ La se(a& READ< *ue se encuentra en e& termina& <<) es una entrada de &os dispositi%os e:ternos C memoria o contro&adores EFS D 0 su $uncin es adaptar &as %e&ocidades de memoria 0 peri$1ricos a &a CPU+ Esta se(a& pasa a tra%1s de& generador de pu&sos '<'9 para sincronizarse con &a se(a& de re&o-+ La se(a& READ< tra#a-a de &a siguiente $orma8 Si se .a se&eccionado un dispositi%o e:terno para &ectura o escritura 0 toda%4a no est3 preparado para comp&etar &a trans$erencia de datos) pone a cero &a &4nea de se(a& REA V+ E& procesador %e esta se(a& 0 a(ade cic&os e:tras de YY espera ZZ .asta *ue dic.a se(a& se pone a su ni%e& norma&) es decir) a ! indicando *ue e& dispositi%o e:terno est3 preparado para rea&izar &a trans$erencia+ Aca#ada &a trans$erencia &as acti%idades de& procesador contin7an norma&mente+ La se(a& RESET *ue se encuentra en e& termina& <!) es otra de &as entradas *ue tam#i1n pasa por e& generador de pu&sos '<'9 para sincronizarse con &a se(a& de re&o-+ Se uti&iza para inicia&izar e& procesador #orrando &a co&a de instrucciones 0 ciertos registros ta&es como &os indicadores) segmento de datos C S D) segmento de pi&a C SS D) segmento e:tra C ES D poni1ndo&os a cero+ E& puntero de instrucciones C IP D 0 e& segmento de cdigo C CS D &os carga con HHHH6+ Los termina&es NMI C NonBMas[a#&e Interrup 8 Interrupcin no enmascara#&e D) termina& !X) e INTR C INTerrupt Re*uest 8 peticin de interrupcin D) termina& !') son parte de& sistema de interrupciones de& ','"+ Un pu&so en e& termina& NMI pro%oca una interrupcin especia&) &&amada interrupcin tipo ). Una se(a& en e& termina& INTR causar3 una respuesta de interrupcin de tipo genera&+ E& t1rmino YY no enmascara#&esZZ se re$iere a& .ec.o de *ue &a interrupcin generada por e& termina& NMI no se puede acti%ar o desacti%ar %4a un so$t/are a &a CPU+ Las interrupciones genera&es por INTR pueden desacti%arse %4a so$t/are+ E& termina& #2E 3 S8 se uti&iza como a0uda en &a inter$az de &os dispositi%os de ' #its con e& #us de datos de !" #its+ Su $uncionamiento es e& siguiente8 Si &a &4nea de direccin , es , C indicando una direccin par D) &a se(a& 56E especi$ica si se est3 direccionando una pa&a#ra entera o un s&o #0te+ 56E igua& a , signi$ica *ue se trata de una pa&a#ra) 56E igua& a ! signi$ica *ue es un #0te+ Si &a &4nea de direccin , es ! C indicando una direccin impar D) e& ','" direcciona siempre un #0te 0 no una pa&a#ra+ En este caso 56E es ,+ La se(a& M 3 IO C termina& <' D in$orma a& sistema cuando e& microprocesador re*uiere acceso a &a memoria o a& espacio de EFS) es decir) indica &a rea&izacin de una operacin so#re memoria so#re entrada F sa&ida+ E& termina& &R de se&eccin de escritura C termina& <O D indica *ue &os datos est3n disponi#&es en &as &4neas de datos) es decir) se trata de &a se(a& *ue indica un cic&o de escritura de &a CPU+

E& termina& DT 3 R C termina& <X D cu0a misin es &a recepcin 0 transmisin de datos) es decir) para contro&ar &a trans$erencia de datos) e& ','" precisa de &a co&a#oracin de& circuito au:i&iar '<'" C '<'X D+ Este se go#ierna por &a se(a& T F R) *ue indica e& sentido de& mo%imiento de &a in$ormacin C transmisin o recepcin D+ DEN C termina& <" D igua& *ue &a anterior sir%e para contro&ar &a trans$erencia de datos 0 mas concretamente con$irma &a %a&idacin de &os datos+ ALE C termina& <? D+ Esta se(a& acti%a e& &atc. '<'< cuando %iene una direccin por &as &4neas A ,BA !?) es decir) sir%e para contro&ar e& mu&tip&e:ado de datos 0 direcciones+ INTA C termina& <9 D+ La $uncin de esta se(a& es e& reconocimiento de interrupciones+ C Se .a#&ar3 m3s en e& apartado de interrupciones D+ Las se(a&es 2OLD 0 2LDA son parte de& propio sistema de contro& de #us de& ','"+ 2OLD C termina& >! D indica &a peticin de& #us por un peri$1rico e:terior+ Cuando otro procesador o un aparato como un contro&ador MA *uiere acceder a& contro& de& #us) manda una se(a& a& ','" a tra%1s de &a &4nea 6OL + Cuando est3 preparado para .acer&o) e& ','" pone sus &4neas de datos F direcciones 0 &a ma0or4a de &as &4neas de contro& en e& estado de a&ta impedancia+ A& mismo tiempo) en%4a &a se(a& 2LDA C termina& >, D para indicar *ue e& #us est3 &i#re+ E& otro aparato puede usar a.ora e& #us+ Cuando $ina&iza con e& #us) en%4a una se(a& a &a &4nea 6OL + Inmediatamente despu1s de reci#ir &a se(a&) e& ','" reanuda e& uso de& #us+ Las se(a&es RQ 3 GT0 0 RQ 3 GT0 C termina&es >, 0 >! respecti%amente D se corresponden con &as se(a&es 6OL 0 6L A de& modo m4nimo+ Se uti&iza para &i#erar e& #us 0 reconocer &a accin+ Las se(a&es QS0 0 QS0 C termina&es <9 0 <? respecti%amente D son se(a&es de estado de &as co&as de instrucciones+ S&o son uti&iza#&es en modo m3:imo+ E& procesador de datos ','X uti&iza estas se(a&es para coordinarse con e& ','"+ La se(a& TEST C termina& <> D se uti&iza para en&azar e& ','" con un procesador para&e&o) sincronizando e& procesador principa& con &os otros+

8.

CICLO DEL BUS DEL 8086.

E& ','" se comunica con &os e&ementos e:ternos a tra%1s de& #us de& sistema+ Para trans$erir datos o #uscar instrucciones) rea&iza &os &&amados @ ciclos de "us * + E& cic&o de #us de& ','" consta de 9 periodos de re&o-) &&amados estados T+ urante e&

primer estado C T! D) e& ','" e:trae una direccin por &as <, &4neas de& #us mu&tip&e:ado de direcciones) datos 0 estado+ Esta direccin se considera %3&ida cuando se produce un $&anco descendente en &a se(a& ALE+ Esta 7&tima) en un sistema m4nimo) es generada por e& ','") mientras *ue en uno m3:imo se produce en e& contro&ador de #us '<''+ La se(a& S<BMFIO) indica si se est3 rea&izando un acceso a memoria o a dispositi%os de entrada F sa&ida+ urante e& segundo estado C T< D) &a direccin de& #us mu&tip&e:ado desaparece) 0 &as se(a&es S>) S9) S? 0 S" toman e& contro& por &as 9 &4neas de m3s peso+ Estas aportan &a in$ormacin siguiente8

S= 0 0 0 0

S> 0 0 0 0

Direccin relativa al segmento extra. Direccin relativa al segmento Stack+ Direccin relativa al segmento de cdigo CS o ninguna. Direccin relativa al segmento de datos DS.

S? indica e& estado de& $&ag de interrupcin2 cuando S" es ,) signi$ica *ue &a CPU est3 actuando so#re e& #us+ A& mismo tiempo) en un cic&o de &ectura) &as !" &4neas de menos peso de& #us mu&tip&e:ado *uedan en estado de a&ta impedancia) mientras *ue si e& cic&o es de escritura) e& dato aparece por estas &4neas+ urante &os estados T! 0 T<) se genera &a in$ormacin re$erente a &a direccin de& dato) e& sentido de &a trans$erencia C si entra o sa&e de &a CPU D 0 si es &ectura o escritura) para &o cua& se acti%an &as se(a&es EN) T F R) R V TR+ urante e& tercer per4odo de re&o-) T>) &as 9 &4neas de m3s peso de& #us de direcciones siguen conteniendo &a in$ormacin so#re e& estado+ En una operacin de escritura) e& dato sigue presente en &as !" &4neas de menos peso de& #us mu&tip&e:ado+ En un cic&o de &ectura) &a in$ormacin e:istente en &as !" &4neas de menos peso de& #us mu&tip&e:ado es considerado %3&ido+ Si e& dispositi%o no es capaz de trans$erir datos a &a %e&ocidad re*uerida) de#er3 indicar&o) introduciendo un ni%e& , por &a &4nea REA V+ Esta se(a& es reconocida en e& 7&timo semicic&o de T\) denominado TT+ Cuando esto ocurre) &a CPU entra en un estado de espera C TAIT D+ Cuando .a0a terminado &a trans$erencia) e& dispositi%o mandar3 un ni%e& ! por REA V 0 comenzar3 &a e-ecucin de& cuarto per4odo de re&o-) T9+ En e& estado T9) todas &as &4neas de contro& de memoria 0 entradas 0 sa&idas se desconectan de& #us de& sistema+ So#re e& #us de& sistema aparece un cic&o) constituido

por una serie de e%entos as4ncronos *ue se&eccionan e& dispositi%o o posicin de memoria) mediante una direccin -unto a una se(a& de &ectura o escritura *ue acompa(a a& dato+ E& ','" 7nicamente e-ecuta un cic&o de #us cuando comienza &a #7s*ueda de una instruccin o cuando un operando de#e trans$erirse) entre e& ','" 0 &os dispositi%os de entrada 0 sa&ida o memoria+

0.

LAS INTERRUPCIONES.

Una estructura de interrupcin es una $orma de *ue e& procesador pro%ea un ser%icio r3pido 0 uni$orme para &a EFS) correcciones 0 ciertos tipo de error+ En genera&) e& procesador contin7a con su tra#a-o .a#itua& .asta *ue ocurre una interrupcin) en cu0o momento sa&%a su estado actua& C puntero de instruccin) segmento de cdigo e indicadores D e-ecuta una rutina especia&) 0 entonces %ue&%e a &o *ue esta#a .aciendo antes+ Se puede %er &a interrupcin como una &&amada a una su#rutina 0 &a rutina especia& de interrupcin como e& cuerpo de &a su#rutina+ Las principa&es di$erencias entre su#rutinas e interrupciones son8

Las su#rutinas son &&amadas 7nicamente por instrucciones so$t/are) mientras *ue &as interrupciones pueden ser in%ocadas tanto por so$t/are como por .ard/are+ Las su#rutinas 7nicamente de#en sa&%ar &a direccin de retorno) mientras *ue &as interrupciones guardan dic.a direccin 0 e& estado de todos &os indicadores+ Las su#utinas necesitan tener un medio de pasar datos a& programa principa& 0 %ice%ersa) mientras *ue esto no es necesario para &as interrupciones+ La estructura de interrupciones de& ','" uti&iza una ta#&a de <?" posiciones de 9 octetos cada una) &a cua& est3 en e& inicio de &a memoria+ Cada una de estas posiciones de &a ta#&a de interrupciones puede cargarse con un puntero a di$erentes rutinas de &a memoria principa&+ Estos punteros contienen e& nue%o contenido de& segmento de cdigo C < octetos D 0 e& puntero de instrucciones C < octetos D para &a rutina *ue puede estar &oca&izada en cua&*uier parte de &a memoria+ A cada uno de estos punteros de 9 octetos se &e asigna un n7mero de& , a& <??) seg7n su posicin en &a memoria+ A este n7mero se &e &&ama tipo+ A& tipo de interrupcin , se &e asigna &a posicin de memoria , 0 as4 sucesi%amente .asta &a posicin !+,<,+ En genera&) a& tipo n se &e asigna &a posicin +n de memoria+

Cada tipo de interrupcin puede ser &&amado tanto por .ard/are como por so$t/are+ Esto .ace posi#&e pro#ar %4a so$t/are &as interrupciones .ard/are+ 6a0 un #it de contro&) &&amado indicador de interrupcin C IH D *ue contro&a si e& ','" responde o no a &as interrupciones e:ternas+ Este #it puede acti%arse o desacti%arse por medio de &as rdenes de acti%ar interrupciones C STI D 0 e& de #orrar interrupcin C CLI D+ Esto a#re 0 cierra &a puerta para interrupciones de &a CPU+ Las interrupciones .ard/are act7an de &a siguiente $orma8 Cuando un dispositi%o e:terno necesita ser%icio) produce una se(a& en &a &4nea de peticin de interrupcin C INTR D de& ','"+ Si e& ','" puede responder C interrupcin acti%a D) en%4a una se(a& de reci"ido) #ien de $orma directa C en modo m4nimo D) o #ien %4a e& contro&ador de #us '<'' C en modo m3:imo D+ E& dispositi%o e:terno indica) mediante un octeto en e& #us de datos) *ue tipo de interrupcin desea+ E& ','" usa este n7mero para &oca&izar e& puntero de &a ta#&a de interrupciones+ A continuacin) e& ','" sa&%a &as condiciones de sus indicadores 0 un puntero en &a pi&a con &a direccin de retorno) 0 carga e& segmento de cdigo 0 e& puntero de instrucciones desde &a ta#&a de interrupcin+ Esto .ace *ue e& procesador e-ecute &a rutina de ser%icio+ A& $ina& de dic.a rutina de#e .a#er una instruccin de retorno de interrupcin C IRET D+Esta interrupcin restaura &os indicadores) e& segmento de cdigo 0 e& puntero a &a direccin de retorno+ Se de#e usar &a instruccin IRET 0a *ue una instruccin retorno normal no restaurar4a &os indicadores) por &o *ue no ser4a adecuada para estos propsitos Cde otra manera se romper4a &a pi&a D+ En este punto) e& procesador .a %ue&to a sus operaciones norma&es+ 6a0 una c&ase especia& de interrupciones &&amadas interrupciones no enmascarables. E& t1rmino no enmascara"le se re$iere a& .ec.o de *ue esta c&ase de interrupciones no puede desacti%arse &impiando e& indicador de interrupciones+ Esta c&ase de interrupciones genera una interrupcin de& tipo <2 o sea) su puntero se encuentra en &a direccin < K 9 J ' de memoria+ Las interrupciones no enmascara#&es se reser%an para casos de emergencia como $a&&os de potencia o errores de memoria+

3FFH 3FCH

PUNTERO TIPO 2!! (D!S$ON!BLE)

PUNTEROS DE INTERRUPCION DISPONIBLES 62247


084H 080H 01FH

PUNTEROS DE INTERRUPCION RESER8ADOS EN INTEL 6217

PUNTERO TIPO 33 (D!S$ON!BLE)# PUNTERO TIPO 32 (D!S$ON!BLE)# PUNTERO TIPO 31 (RESERVADO)

PUNT ( PUNT PUNTEROS DE INTERRUPCION ESPECIFICOS 6!7 (R (1#B PUNT ($ES (

CS DIRECCION BASE IP DESPLA9AMIENTO

014H 010H

004H 000H

TABLA DE PUNTEROS DE INTERRUPCION DEL 8086

10.

LOS CHIPS DE SOPORTE DEL 8086.

En este apartado %amos a %er una serie de c.ips *ue pro%een a& ','" de circuiter4a para tres tipos de $unciones8 Lgica para generacin de pu&sos de re&o-+ Lgica para &a inter$az de #us+ Lgica para &a inter$az de contro&adores+ Las $unciones de estos c.ips son %ita&es para e& sistema) como &a sincronizacin) &a cone:in de &os procesadores con e& resto de& sistema 0 &a cone:in de &a computadora con e& mundo e:terior+

10.1. G%)%'*#"' #% .:-$"$ #% '%-"; 8086

Cua&*uier sistema #asado en e& ','" re*uiere una &gica adiciona& encargada de generar &as se(a&es de sincronizacin para todo e& sistema+ E& generador de pu&sos de re&o- '<'9 de Inte&) -unto con e& crista& osci&ador e:terno) es un c.ip dise(ado espec4$icamente para estas tareas+ E& '<'9 es un c.ip con !' termina&es *ue se uti&iza para generar &os pu&sos de& ','" 0 sus peri$1ricos+ Los pu&sos de re&o- determinan &a %e&ocidad de $uncionamiento

de& sistema+ La %e&ocidad m3:ima est3ndar para estos procesadores es una $recuencia de re&o- de ? M.z) es decir) <,, nanosegundos por cic&o) aun*ue a&gunos c.ips particu&ares

$uncionan a ' M.z) o &o *ue es &o mismo) !<? nanosegundos por cic&o+ Tanto &os c.ips est3ndar) como &as %ersiones especia&es m3s r3pidas admiten tericamente una %e&ocidad m3:ima de < M.z) aun*ue en &a pr3ctica $uncionan inc&uso a $recuencias menores+ E& generador de pu&sos '<'9 necesita un crista& osci&ador) o una se(a& &gica e:terna como $uente de $recuencia+ La opcin se especi$ica conectando un termina& o #ien a tierra) o #ien a &a $uente de a&imentacin+ La $uente de $recuencia proporciona una $recuencia trip&e de &a se(a& resu&tante de& '<'9+ Poniendo un crista& osci&ador u otro) &a $recuencia o#tenida puede %ariar entre ? M.z .asta casi &os ' M.z+ Para conseguir un rendimiento ptimo de &os procesadores) &os pu&sos de re&ogenerados por e& '<'9 se mantienen a tensin a&ta durante un >> por !,, de& per4odo+ Como &a $recuencia de &a $uente es trip&e *ue &a de sa&ida de& '<'9) es re&ati%amente $3ci& generar este tipo de onda+ Norma&mente sa&en tres se(a&es de& generador de pu&sos de re&o- '<'9 .acia e& procesador+ Estas tres se(a&es son CLG C se(a& de re&o- D) RESET 0 &a se(a& de REA V+ Las dos 7&timas se(a&es est3n sincronizadas con CLG+ La misin de &a se(a& RESET es &a de reinicia&izar &os %a&ores de &a computadora+ Esta se(a& es imprescindi#&e para so&%entar &os casos en *ue un programa se mete en un #uc&e in$inito) o *ue un ruido de a&imentacin a$ecte a partes de& programa en curso+ La $uncin de &a se(a& REA V es &a de sincronizar e& procesador con &os dispositi%os e:ternos m3s &entos+ La se(a& REA V %a desde e& dispositi%o e:terno a& procesador) pasando a tra%1s de& generador de pu&sos de re&o-+ Cuando e& procesador *uiere acceder a un dispositi%o *ue no est3 preparado para &a trans$erencia) e& dispositi%o en%4a un , por &a &4nea REA V+ Cuando e& procesador reci#e esta se(a&) entra en un cic&o de espera .asta *ue aparece un ! por dic.a &4nea+ S&o entonces contin7a e& programa+ E& '<'9 genera otra se(a& *ue es PCLG C re&o- peri$1rico D) *ue $unciona a &a mitad de &a $recuencia de &a se(a& CLG) con un cic&o de tra#a-o de& ?, por !,,+ Est3 pre%isto para sincronizar a*ue&&a &gica *ue re*uiera esta $orma de temporizacin+

10.2. C"),'"-*#"' #% B:$ 8288 Antes de comenzar a descri#ir con m3s deta&&e e& contro&ador de #us '<'' %amos a e:p&icar en &o *ue consiste &a $uncin de dic.o dispositi%o *ue no es otra *ue &a de actuar de inter$az entre e& procesador 0 e& #us de contro&+ La &gica de inter$az de #us es necesaria por dos razones8 Las se(a&es de &os procesadores pueden no ser &o su$icientemente potentes para contro&ar e& resto de& sistema+

Las se(a&es producidas por &os procesadores puede *ue no correspondan directamente a &as se(a&es *ue necesita e& resto de& sistema+ E& Contro&ador de 5us '<'') e& Transceptor de atos Octa& '<'") 0 e& Latc. Octa& '<'< se uti&izan para so&%entar estos pro#&emas de inter$az en un sistema ','" en modo m3:imo+ Adem3s e& Se&ector de 5us '<'O se usa como inter$az de &os grupos de procesadores con e& #us principa& de& sistema+ Adem3s de amp&i$icar &as se(a&es de& ','" estos c.ips resue&%en e& pro#&ema de& e:ceso de se(a&es para &os 9, termina&es de& procesador ','"+ Centr3ndonos en e& Contro&ador de 5us '<'' podemos decir *ue es un c.ip de <, termina&es) 0 *ue como .emos dic.o anteriormente es e& encargado de rea&izar e& inter$az entre e& procesador 0 e& #us de contro&+ ecodi$ica &as se(a&es de estado S,) S! 0 S< de& ','" en modo m3:imo 0 genera un con-unto comp&eto de se(a&es de contro&) como &a de contro& de &ectura en memoria C MR C D) contro& de &ectura de E F S CIORCD) contro& de escritura en memoria C MTTC D) contro& de escritura de E F S C IOTC D) &atc. de direcciones disponi#&e C ALE D 0 datos disponi#&es C EN D+ A&gunas de estas se(a&es de contro&) como &as de &ectura 0 escritura) tienen como destino e& #us de& sistema) mientras *ue otras) ta&es como &as de direcciones o datos disponi#&es) son se(a&es destinadas a &os otros c.ips de inter$ace de& procesador con &os otros su##uses Ce& Transceptor '<'" 0 e& Latc. Octa& '<'" D+ 6a0 tam#i1n a&gunas entradas a& '<'' de otros dispositi%os+ Las siguientes ta#&as muestran &as se(a&es de #us producidas por e& Contro&ador de 5us '<'' en respuesta a &as se(a&es de estados de &os procesadores+ S2 0 0 0 0 0 0 0 0 S1 0 0 0 0 0 0 0 0 S0 0 0 0 0 0 0 0 0 Estados del procesador Re)"+")$m$e+%" ,e $+%e((? )$*+ Lee( ?e(%" ,e E 3 S E.)($@$( ?e(%" ,e E 3 S P7(7 C*,$-" ,e 7))e." Lee( mem"($7 E.)($@$( mem"($7 P7.$A" O(,e+ ,e !e)%?(7 e+ mem"($7 O(,e+ ,e e.)($%?(7 e+ mem"($7 O(,e+ ,e !e)%?(7 ,e E 3 S O(,e+ ,e e.)($%?(7 ,e E 3 S Re)"+")$m$e+%" ,e $+%e((? )$*+ Ordenes al bus del INTA IORC IO&C +$+-?+7 MRDC MRDC M&TC +$+-?+7

MRDC M&TC IORC IO&C INTA

10.3. T'*)$(%.,"' 8286 E& transceptor '<'" es un c.ip de <, termina&es cu0a misin es ser%ir de inter$az entre e& procesador 0 e& #us de datos+ Se uti&iza como a&macenamiento intermedio para &os datos *ue &&egan 0 sa&en de& procesador) 0 es necesario por %arias razones+ Por e-emp&o) a&gunas %eces &as &4neas de datos de& procesador no pueden suministrar &a corriente necesaria para &a carga de un dispositi%o e:terno) 0 tienen *ue amp&i$icarse antes de &&egar a& #us de& sistema+ Otro uso de& transceptor es e& de con%ertir &as se(a&es #idirecciona&es *ue ciertos #uses de datos e:ternos necesitan en se(a&es unidirecciona&es+ Una tercera posi#i&idad es &a de a0udar a distinguir &as se(a&es de datos so#re &as se(a&es de direcciones+ O#s1r%ese *ue en e& ','" &as se(a&es de datos 0 direcciones est3n multiple,adas en &os mismos termina&es+

10.4. L*,(< O(,*- 8282 E& &atc. Octa& '<'< es otro c.ip tam#i1n de <, termina&es) encargado de .acer de inter$az entre &as &4neas mu&tip&e:adas de datos F direcciones de& ','" 0 e& #us de direcciones de& sistema+ E& '<'< espera .asta *ue &a in$ormacin so#re &a direccin aparece en ta&es termina&es) 0 entonces toma &a in$ormacin 0 &a mantiene so#re e& #us de direcciones de& sistema+ Con &a &4nea de Latc. de direccin disponi#&e C ALE D) e& procesador ) en modo m4nimo) o e& Contro&ador de 5us '<'') en modo m3:imo) &e dice a& Latc. Octa& cuando de#e tomar esta in$ormacin+ Todos estos c.ips de inter$az pueden &&e%arse a un estado de a&ta impedancia Cdesconectados e&1ctricamente de& #us D cuando otros procesadores o contro&adores poseen e& contro& de& #us+ E:isten otros dispositi%os ta&es como e& se&ector de #us '<'O *ue se uti&iza en sistemas grandes #asados en e& ','"+ Rea&iza una cone:in) o inter$az) entre e& ','" 0 un #us de& sistema con otros procesadores conectados+

You might also like