Sei sulla pagina 1di 11

Ing.

Gabriele MONTI 1999 - 2004

Famiglia X86

www.ingmonti.it

1 Famiglia 80X86
In !e"to #a$itolo %a##iamo !na $anorami#a &elle $rin#i$ali #aratteri"ti#'e &elle ()* &ella %amiglia X86 "!##e""i+e all,8086. -l#!ne &elle #aratteri"ti#'e $i. intere""anti &elle ()* a+an/ate &ella "erie X86 ri#'ie&ono !na #ono"#en/a &ei #on#etti %on&amentali &ei 0.O. 1 #'e ill!"treremo nella altro+e.

8086 e 8088
2a ()* #a$o"ti$ite &ella %amiglia X86 3 l480861 $rogettato $er e""ere $ar/ialmente #om$atibile1 a li+ello &i #o&i#e "orgente1 #on !na $re#e&ente ()* &i Intel a& 8 bit1 l,8080. 2,8086 a+e+a !na "tr!tt!ra &i regi"tri "imile a !ella &ell,8088. Nono"tante i #o&i#i mnemoni#i &elle i"tr!/ioni %o""ero $ar/ialmente #om$atibili1 i #o&i#i o$erati+i &ella n!o+a ()* non erano !g!ali a !elli &ell480801 !in&i i $rogrammi $er 8086 ri#'ie&e+ano almeno &i e""ere ri#om$ilati. 0i ri#or&a inoltre 5+e&i 6ol!me 17 #'e l,!ni#a &i%%eren/a "igni%i#ati+a %ra le 8086 e 8088 3 #o"tit!ita &al %atto #'e l,8086 a+e+a !n b!" &ati &a 16 bit1 mentre l,80881 $!r a+en&o an#',e""o !n $aralleli"mo interno &i 16 bit1 a+e+a !n b!" &ati &i "oli 8 bit.

8087
2e ()* &ella %amiglia 80X86 na# !ero #on "tr!menti a!tomati#i $er l,integra/ione &i !n #o$ro#e""ore aritmeti#o. *n #o$ro#e""ore 3 !n #'i$ e"terno il #!i 'ar&ware 3 &e&i#ato alle "ole o$era/ioni aritmeti#'e. 2a $arti#olarit8 intere""ante 3 #'e le i"tr!/ioni $er il #o$ro#e""ore %anno $arte &el normale $rogramma $er 8086. 2,8086 $ro++e&e !in&i normalmente alla %a"e &i %et#' e1 !an&o "i a##orge #'e l,i"tr!/ione &a e"eg!ire non 3 9la "!a91 ne $a""a il #o&i#e o$erati+o al #o$ro#e""ore e "i mette in atte"a #'e e""a +enga #om$letata:. 2,808; mette a &i"$o"i/ione i"tr!/ioni $er l,aritmeti#a a +irgola mobile e $er il #al#olo &i %!n/ioni tra"#en&enti e logaritmi#'e.

80186
<!e"ta ()* %! intro&otta !a"i #ontem$oraneamente alla $i. $otente 802861 #'e g!a&agn= &a "!bito il %a+ore &el mer#ato &ei $er"onal #om$!ter. > !n4e"ten"ione &ell480861 #on i"tr!/ioni ottimi//ate e $i. $otenti1 #on molte &elle #aratteri"ti#'e &el 2861 ma "en/a le &!e $i. inno+ati+e? mo&o $rotetto e memoria +irt!ale. (ommer#ialmente non ebbe %ort!na #ome $ro#e""ore general $!r$o"e1 ma %! e& 3 t!ttora !tili//ato #ome mi#ro#ontrollore $er a$$li#a/ioni 9embe&&e&9. @"i"te an#'e !na ()* 801881 #on b!" &ati &i 8 bit1 in+e#e &i !ello &a 16 bit &ell480186.

80286
Ai"$etto all48086 non #ambia il $aralleli"mo interno1 nB !ello &el &ata b!". -!menta %ino a 16 MCDte la memoria in&iri//abile 524 bit &,in&iri//o7. Nelle %!n/ionalit8 &el mi#ro$ro#e""ore "ono in+e#e $re"enti #ambiamenti %on&amentali. 0i intro&!#ono %!n/ioni !tili nella reali//a/ione &i "i"temi o$erati+i m!ltita"Eing. @""e $ermettono la $rote/ione &ella memoria &ei "ingoli ta"E 5&etti an#'e $ro#e""i71 #io3 l4in&i#a/ione &i errore nel #a"o #'e !n ta"E tenti &i a+ere a##e""o a /one &i memoria a& e""o non ri"er+ate. Oltre alla $rote/ione &ella memoria1 il 286 'a !n me##ani"mo $er ai!tare il 0i"tema O$erati+o nella reali//a/ione &ella memoria +irt!ale. 2480286 $!= la+orare in &!e mo&alit8 molto &i+er"e? mo&o reale 5real a&&re"" mo&e7 e mo&o protetto 5$rote#te& mo&e7. 0e !n 80286 la+ora in mo&o reale e""o 3 #om$letamente #om$atibile #on !n 80861 %!n/iona #ome !n 8086 $i. +elo#e1 an#'e l,in&iri//amento &ella memoria 3 a 20 bit. 0e in+e#e !n 286 %!n/ione in mo&o $rotetto e""o a+r8 $rote/ione &ella memoria e &elle i"tr!/ioni e +i"ibilit8 &ella memoria +irt!ale "egmentata. In mo&alit8 $rotetta i regi"tri &i "egmento +engono trattati in mo&o &i+er"o e non "ono $i. "o+ra$$o"ti all,o%%"et1 ma 9a%%ian#ati9 5+e&i (a$itolo XXXX7. 2,o%%"et 3 an#ora &i 16 bit1 #ome nell,8861 $er #!i la &imen"ione ma""ima &ei "egmenti 3 &i 64 ECDte. Il 0.O. M0 FO0 3 "tato "#ritto $er %!n/ionare in mo&o reale. I 0.O. $i. mo&erni 5Gin9H1 O0I21 2in!J7 %!n/ionano in+e#e in mo&o $rotetto 5an#'e "e nella mo&alit8 $rotetta &el K861 #'e 3 in $i!tto"to &i+er"a7. Aegi"tri 286 @""en&o la ()* a 16 bit1 #ome l480861 non #i "ono #ambiamenti1 i regi"tri #'e erano gi8 $re"enti nell,8086 rimangono !g!ali. 0ono aggi!nti al#!ni regi"tri &i "i"tema $er l4!tili//a/ione &ella memoria +irt!ale e la reali//a/ione &el m!ltita"EingL "ono inoltre aggi!nti &ei regi"tri "$e#iali $er la ge"tione &ella mo&alit8 $rotetta. <!e"ti regi"tri +erranno anali//ati1 in"ieme al &ettaglio &el %!n/ionamento &ella mo&alit8 $rotetta1 in altra $arte &i !e"to +ol!me.
In verit una volta comunicata listruzione alla FPU, la CPU si mette ad eseguire la successiva. Se il programmatore vuole che la CPU si fermi ad attendere il risultato dell operazione a virgola mo!ile deve usare un istruzione F"#I$ o "#I$.
*

18a Famiglia 80X86."Jw

6er. 0.H.0 2004-0H-06

$. 1 &i 11

Ing. Gabriele MONTI 1999 - 2004

www.ingmonti.it

80287
(ome $er l,80861 #'e a+e+a !n 808;1 il 286 'a !n #o$ro#e""ore aritmeti#o1 il 28;. In +erit8 #e ne %!rono &i+er"i e na#!e !na in&!"tria &i ter/e $arti #'e %orni+ano #o$ro#e""ori $i. $otenti &el 28;. (ome $er il 2861 an#'e il "!o #o$ro#e""ore matemati#o non a+e+a $o""ibilit8 &i tornare in mo&o reale !na +olta entrati in mo&alit8 $rotetta

80386
2480K86 'a !n $aralleli"mo interno &i K2 bit1 $er #!i $!= la+orare #on regi"tri &a K2 bit. -n#'e il $aralleli"mo &el &ata b!" 3 &i K2 bit1 $er #!i la ma""ima !antit8 &i memoria %i"i#a in&iri//abile &a !n K86 3 &i 4 GCDte. (ome il 286 an#'e il K86 $!= la+orare in modo reale o in mo&o protetto1 in $i. 3 $re"ente !na ter/a mo&alit8 &i %!n/ionamento? il modo 8086 virtuale 56867. Nel #a"o &ella mo&alit8 reale il K86 "i #om$orta #ome !n 80861 #on lo "te""o mo&o &i a##e""o "egmentato alla memoria1 a 20 bit &i in&iri//o 51 MCDte71 e #on lo "te""o ti$o &i interr!$t +ettori//ato. Il +antaggio note+ole1 $re"ente an#'e in mo&o reale1 3 #'e "ono &i"$onibili i regi"tri e le i"tr!/ioni a K2 bit e &i+er"e i"tr!/ioni n!o+e o $oten/iate. 0ono inoltre $re"enti &!e n!o+i regi"tri &i "egmento. Nel #a"o &ell4!"o &ella mo&alit8 $rotetta il K86 3 !na +era ()* a K2 bit $er "i"temi o$erati+i m!ltita"Eing1 #on "!$$orto $er la memoria +irt!ale "ia "egmentata #'e $aginata1 e $rote/ione &egli a##e""i e &elle i"tr!/ioni. In%ine "e la ()* %!n/iona in mo&o 686 +engono manten!ti atti+i i me##ani"mi &i $rote/ione e +irt!ali//a/ione &ella memoria ti$i#i &el mo&o $rotetto1 ma la ()* %!n/ionare #ome "e %o""e !n 80861 #on lo "te""o "et &4i"tr!/ioni1 in $arte e"te"e a K2 bit1 e #on le "te""e mo&alit8 &i a##e""o alla memoria 5la "egmenta/ione 9reale9 &i tri"te memoria7. 2a mo&alit8 686 "er+e $er#i= $er %ar girare in mo&o $rotetto il "o%tware "#ritto $er M0-FO0 "! 0i"temi O$erati+i m!ltita"Eing. 2a memoria +irt!ale &el K86 $!= a+ere !n mo&ello "egmentato1 #ome !ella &el 2861 e& !n n!o+o mo&ello a &oman&a &i $agina1 o 9$aginato9. Il $rogrammatore &i "i"tema $!= "#egliere "e !tili//are $er la memoria +irt!ale entrambi i mo&i1 !no "olo o &i non a+ere memoria +irt!ale. Nei "i"temi o$erati+i m!ltita"Eing $i. im$ortanti $re"enti oggi "!l mer#ato +iene !tili//ata "olo la te#ni#a &ella $agina/ione. 2e !ltime +er"ioni &el K86 a+e+ano la $o""ibilit8 &i metter"i in mo&o &i %!n/ionamento a #on"!mo ri&otto 59rallentamento9 &el #lo#E o "o"$en"ione &i t!tte le atti+it87. )er ge"tire !e"ta mo&alit81 $re"ente an#'e nelle ()* "!##e""i+e1 "ono "tate intro&otte al#!ne n!o+e i"tr!/ioni &i ma##'ina. Aegi"tri K86 2,-2* &ella ()* K86 3 a K2 bit1 $er #!i i t!tti i regi"tri "ono "tati e"$an"i %ino a K2 bit. 0ono "tati intro&otti i regi"tri generali @-X1 @CX1 @(X1 @FX 5eJten&e& -X1 .. 7 &i K2 bit1 "!&&i+i"ibili in -X1 CX1 .. &i 16 bit e -M1 -21 .. &i 8 bit. -nalogamente "ono "tati &e%initi i regi"tri @C)1 @0I1 @FI1 @0)1 &i K2 bit1 &ei !ali %anno $arte i regi"tri a 16 bit C)1 0I1 FI1 0)1 il loro %!n/ionamento 3 &el t!tto analogo al #a"o a 16 bit. -nalogamente al #a"o 8086 gli a##e""i in memoria #'e !tili//ano @C) %!n/ionano nel "egmento &i "ta#E. NFI2@O PPPP &a %are NIFI2@O Figura 1: principali registri 80386 I regi"tri &i "egmento (01 F01 00 e @01 &i 16 bit1 'anno le "te""e %!n/ioni &ei ri"$etti+i regi"tri 8086. In mo&alit8 reale %!n/ionano #ome normali regi"tri &i "egmento 80861 in mo&alit8 $rotetta #ome 9"elettori &i "egmento9 $er la memoria +irt!ale 5+e&i (a$itolo XXXX7. 0ono intro&otti i n!o+i regi"tri &i "egmento F0 e G01 a &i"$o"i/ione &el $rogrammatore e non !"ati in mo&o im$li#ito &a ne""!na i"tr!/ione1 e""i "ono regi"tri &i "egmento 9in $i.91 &a tenere a &i"$o"i/ione1 in mo&o analogo al regi"tro @0 nell48086. I &!e n!o+i regi"tri &i "egmento "i $o""ono !"are an#'e in mo&o reale 5nat!ralmente i !e"to #a"o %!n/ionano #ome "e %o""ero "! !n 80867. 24in"tr!#tion $ointer 3 a K2 bit e "i #'iama1 o++iamente1 @I). <!an&o !n K86 la+ora in mo&alit8 reale !tili//a "olo la $arte ba""a &i !e"to regi"tro 5I)1 a 16 bit7. 0ono $re"enti i regi"tri1 #'e erano an#'e nel 2861 $er l4a##e""o alle tabelle &ei &e"#ri/ione &ella memoria +irt!ale 5GFTA e 2FTA71 nat!ralmente in !e"to #a"o e""i &e+ono e""ere $i. gran&i. In%atti1 +i"to #'e gli in&iri//i &i memoria %i"i#a "ono a K2 bit1 la $arte 9ini/io &el "egmento9 &i !e"ti regi"tri &e+e e""ere a K2 bit1 mentre la $arte 9l!ng'e//a &el "egmento9 3 &i 20 bitL la "!a !tili//a/ione +iene &e"#ritta in "eg!ito. @"i"tono &ei n!o+i 9regi"tri &i #ontrollo91 !"ati $er !tili//are le n!o+e &el mo&o $rotetto. <!e"ti regi"tri "ono? (A01(A11(A2 e (AK.

Accesso alla memoria: calcolo dellindirizzo e indirizzamento scalato


Tra"#!ran&o $er il momento il %!n/ionamento &ella $arte &i "egmento &ell,in&iri//o1 #'e +err8 "+il!$$ata in altro (a$itolo1 #on"i&eriamo "olo la $arte &i o%%"et. Nel K86 l,o%%"et negli a##e""i alla memoria in mo&o $rotetto $!= e""ere &i K2 bit1 $er #!i i "egmenti $o""ono e""ere l!ng'i %ino a 4 GCDte. Nel K86 3 "tato intro&otto !n intere""ante mo&o &i #al#olare l4in&i#e &i !na "tr!tt!ra &ati 5&etto 9Scaled In&eJ Ca"e971 o in&iri//amento 9scalato9. (on l,in&iri//amento "#alato 3 $o""ibile molti$li#are1 a tem$o &4e"e#!/ione1 l4in&iri//o &i in&i#e #'e "i !tili//a 5$. e". @FI o @CX7 $er 11 21 4 o 8 5in realt8 "i tratta &i !na "'i%tP7. $. 2 &i 11 2004-0H-06 18a Famiglia 80X86."Jw

Ing. Gabriele MONTI 1999 - 2004

Famiglia X86

www.ingmonti.it

In !e"to mo&o "i $!= %ar #oin#i&ere l4in&i#e &ella "tr!tt!ra &ati #on il #onten!to &el regi"tro in&i#e1 ren&en&o #o"Q $rogrammi $i. #'iari e !in&i $i. a%%i&abili. In "inte"i1 l4o%%"et #om$le""i+o $!= e""ere %ormato &a? RC-0@ S INFI(@ : 0(-2- S FI0)2-(@M@NTT - &i%%eren/a &ell480861 T*TTI i regi"tri a K2 bit 5generali 5@-X1 . . 7 e 9$!ntatori9 5@0I1 . . 771 $o""ono e""ere !"ati "ia #ome C-0@ #'e #ome INFI(@. Il +alore &i 0(-2- $!= e""ere "olo? 11 21 41 o 8. Il FI0)2-(@M@NT $!= non e""er#i1 e""ere a 16 bit o$$!re a K2 bit. @"em$i?
<CODICE> MOV EBX, [EDX + ESI * 4 + 6] MOV EBP, [EAX + EAX * 2] ; l'offset EAX * ! ; "# #$%&o'('#le )t#l#t* +,; $( s# %). f(&e // <0CODICE>

<!e"to n!o+o mo&o &4in&iri//amento $!= e""ere !"ato an#'e in real mo&e K86.

Particolari sui set distruzioni


186 e 286 -l#!ne i"tr!/ioni gi8 $re"enti nell48086 "ono "tate re"e $i. %le""ibili. 0i $o""ono !"are )*0M e )O) #on o$eran&i imme&iati?
P/ es/ P/ es/ P1S2 23 ; $ette #l 4)$e&o 23 #4 5#$( (llo st(56 S27 AX, ! ; ese8)e )4o s9#ft ( s#4#st&( "# t&e %ost# s)l &e8#st&o AX

2e i"tr!/ioni &i "$o"tamento &ei bit $o""ono e""ere !"ate #on n!mero &i "$o"tamenti in imme&iato?

0ono intro&otte n!o+e i"tr!/ioni $er il mo&o $rotetto 5(2T01 2GFF1 22))1 2IFT1 2M0G1 2TA7. *na limita/ione &el 2861 #'e 'a molto limitato la $ortata &ei "i"temi o$erati+i m!lti$rogrammati "#ritti $er !e"ta ()*1 3 #'e non e"i"te !n me##ani"mo a%%i&abile $er !"#ire &al mo&o $rotetto e tornare in mo&o reale. *na +olta entrati in mo&o $rotetto1 non 3 $o""ibile tornare in mo&o reale. )*0M-1 )O)-? "al+ataggio &ei regi"tri generali 5186O7 )*0M- "al+a nello "ta#E il #onten!to &i t!tti gli 8 regi"tri generali. )er ri$ren&erli1 !"are )O)IN01 O*T0? IIO &i "tringa 5186O7 IN e O*T 9&i "tringa9? IN0 tra"%eri"#e in @0?RFIT #i= #'e legge al $ort &i IIO il #!i in&iri//o 3 in FXL $oi in#rementa a!tomati#amente FI 5o @FI nel K8671 "e Fire#tion %lag U 01 o$$!re lo &e#rementa1 "e Fire#tion U1. O*T0 tra"%eri"#e il bDte letto in F0?R0IT al $ort il #!i in&iri//o 3 in FX1 $oi #ambia 0I1 in ba"e al +alore &el Fire#tion %lag. IN0 e O*T01 'anno le +er"ioni a bDte1 wor& e &o!ble wor&? IN0C1 IN0G1 IN0FL O*T0C1 O*T0G1 O*T0F1 e #ome le altre i"tr!/ioni &i "tringa1 $o""ono e""ere $re#e&!ti &a A@)1 A@)@1 A@)N@ 5+e&i il 6ol!me 1 $er i &ettagli "!lle i"tr!/ioni &i "tringa7. CO*NF? #ontrollo &ei limiti &i !n arraD 5186O7 6eri%i#a "e l4intero #on "egno "$e#i%i#ato rientra all4interno &i limiti "$e#i%i#ati. 0e #i= non a##a&e "i genera l4e##e/ione INT H. *tile $er +eri%i#are 9a!tomati#amente9 "e "i e"#e %!ori &a !n arraD. BOUND <Registro>, <Limiti dell'array> ; funzionamento: ; IN ! " se #<Registro> < limite inferiore$ OR #<Registro> > limite su%eriore$ OR <Registro> %u& essere da '( o da )* +it, , l'indi-e dell'array -.e si /uole -on0 trollare1 N2imiti &ell,arraDO "ono &!e n!meri #on "egno in memoria1 in lo#a/ioni #on"e#!ti+e1 &i 16 o &i K2 bit a "e#on&a &el regi"tro !"ato1 #'e e"$rimono il +alore minimo e ma""imo &ell,in&i#e &ell,arraD. @"em$i?
.. ; "ef#4#:#o4e "# )4 (&&(; 5o4 #4"#5# "( 3 ( <33+ MOV [7#$#t#A&&(;], 3 MOV [7#$#t#A&&(; + 2], <33 // ; 5o4t&ollo "e# l#$#t#+

18a Famiglia 80X86."Jw

6er. 0.H.0 2004-0H-06

$. K &i 11

Ing. Gabriele MONTI 1999 - 2004

www.ingmonti.it

BO1=D SI, [7#$#t#A&&(;] ; se (&&#>o ?)# 4o4 s5(tt(to l'I=@ A, (llo&( l'#4"#5e -SIB f(& 3 e <33 ; s)%%o48o 59e l'(&&(; s#( f(tto "# "o)'le Co&" e 5(&#5o l'ele$e4to ; "# #4"#5e SI+ MOV EAX, [A&&(; + SI * 4]

@NT@A e 2@-6@? 9"ta#E %rame9 5186O7 @NT@A e 2@-6@ $ro++e&ono alla #rea/ione &i !n 9ambiente &i "ta#E9 5"ta#E %rame71 #io3 !no "$a/io nello "ta#E o+e la $ro#e&!ra $!= allo#are le "!e +ariabili lo#ali1 #'e "aranno &i"tr!tte $rima &ella A@T. In mo&o reale %!n/ione a 16 bit 5#on C) e& 0)71 in mo&o $rotetto a K2 bit 5#on @C) e& @0)7. 0inta""i? 2N 2R <Dimensione 3ta-4 frame>, <Immediato a 5 +it> ; %re%ara lo s%azio %er le /aria+ili lo-ali di una %ro-edura ; funzionamento #-on <Immediato a 5 +it> 6 7$: : 89U3: 2B98 ; 82B9 <0 2398 ; 8239 <0 239 0 <Dimensione 3ta-4 frame> L2;<2 ; distrugge le /aria+ili lo-ali di una %ro-edura ; ri%ristinando i /alori di 239 e 2B9 ; funzionamento: ; 8239 <0 2B98 ; 89O9 2B98 NFimen"ione 0ta#E %rameO 3 !n n!mero in imme&iato &i 16 bit #'e "$e#i%i#a !anti bDte &e+ono e""ere o##!$ati nello "ta#E $er le +ariabili lo#ali &ella $ro#e&!ra. NImme&iato a 8 bitO 3 !n n!mero &a 0 a K1 #'e in&i#a il 9li+ello &i inne"tamento9 5ne"ting le+el71 #'e !i tra"#!reremo1 #on"i&eran&olo 0. @NT@A e 2@-6@ "ono ti$i#amente la $rima e l,!ltima &elle i"tr!/ioni &i !na $ro#e&!ra. @NT@A #rea lo "$a/io +ol!to nello "ta#E1 memori//an&o @C)1 #o$ian&o+i il +alore #orrente &i @0)1 e "$o"tan&o lo "ta#E $ointer. F!n !e &o$o la @NT@A @C) $!nta ai $arametri &ella $ro#e&!ra1 mentre @0) $!nta all,ini/io &elle +ariabili lo#ali e $!= e""ere an#'e !"ato $er le o$era/ioni lo#ali "!llo "ta#E. 2@-6@ ri$ri"tina le #on&i/ioni &i @C) e& @0) $rima &ella @NT@A1 #an#ellan&o &i %atto le +ariabili lo#ali e $re$aran&o la A@T1 #'e "eg!ir8 "!bito &o$o.
.. Do)t#4e PDOC E=@ED A, 3

; Def#4#s5e )4o st(56 f&($e "# A ';te ; )s(t# "( )4( >(&#('#le 'oole(4 ; e "( )4 #4te8e& "( !2 '#t MOV BE@E P@D [ESP], 3 ; #4#:#(l#::( ( f(lse l( >(&#('#le ; lo5(le 'oole(4 ; #4#:#(l#::( ( F< l( >(&#('#le lo5(le #4te8e& "( !2 '#t+ MOV BE@E P@D [ESP + <], 3GGGGGGGG9 MOV EAX, [EBP]

; le88e "(llo st(56 #l >(lo&e "el %&#$o ; %(&($et&o %(ss(to "(l %&o8&($$( 59#($(4te // ; ese8)e t)tt( l( %&o5e")&( 7EAVE ; &#%&#st#4( EBP e" ESP %e& l( DE@ DE@ Do)t#4e E=DP //

K86 Il "et &,i"tr!/ioni K861 oltre a #om$ren&ere l,e"ten"ione a K2 bit &i t!tte le i"tr!/ioni #'e $rima la+ora+ano a 16 bit1 in#l!&e an#'e &i+er"e n!o+e i"tr!/ioni. Inoltre1 a &i%%eren/a &elle ()* $re#e&enti1 i %lag &el K86 "ono #onten!ti in !n regi"tro a K2 bit 5@F2-G01 @n'an#e& F2-G077. 0ono intro&otti &i+er"i n!o+i %lag1 #'e 'anno a #'e %are #on le n!o+e mo&alit8 &i %!n/ionamento in mo&o $rotetto e 686. )er e"em$io al#!ni %lag n!o+i1 "ono? 6M 59Virt!al Ma#'ine %lag971 in&i+i&!a "e la ()* "ta %!n/ionan&o in mo&alit8 +irt!ale 8086 56867 o no. @M 59Em!late97 &i#e "e la ()* &e+e em!lare il "et &4i"tr!/ioni &el #o$ro#e""ore matemati#o )@ 59Prote#tion Enable&97 a 1 "e la ()* "ta %!n/ionan&o in mo&o $rotetto AF 59Re"!me Flag97 e"#l!&e tem$oraneamente la genera/ione &elle e##e/ioni1 #i= $er %ar %!n/ionare regolarmente il &eb!gger.

$. 4 &i 11

2004-0H-06

18a Famiglia 80X86."Jw

Ing. Gabriele MONTI 1999 - 2004

Famiglia X86

www.ingmonti.it

*na nota rig!ar&o al %lag &i interr!$t. In mo&o $rotetto e 686 3 $o""ibile mo&i%i#are il %lag &i interr!$t "olo #on le i"tr!/ioni (2I e 0TI1 #'e $o""ono e""ere 9$rotette91 $o""ono $er#i= e""ere e"eg!ite "olo &ai $rogrammi #'e ne 'anno il &iritto. )er ragioni &i "i#!re//a non 3 $o""ibile mo&i%i#are l,interr!$t %lag e"eg!en&o &elle )O)F &allo "ta#E. M*21 IM*2? o$eran&o a 81 16 o K2 bit 0e l,o$eran&o 3 a 8 o 16 bit1 l,o$era/ione 3 la "te""a &ell48086L "e 3 a K2 bit 3 !na e"ten"ione 9logi#a9? il ri"!ltato 3 a 64 bit e %ini"#e nella #o$$ia &i regi"tri @FX1 @-XL in @FX la $arte alta. -nalogo al #a"o 8086 il #om$ortamento &el %lag 5+e&i 6ol!me 17. FI61 IFI6? o$eran&o a 81 16 o K2 bit 0e l,o$eran&o 3 a K2 bit il &i+i&en&o 3 nella #o$$ia &i regi"tri @FX1 @-X1 il !o/iente %ini"#e in @-X1 il re"to in @FX. @rrori nell,o$era/ione lan#iano l,e##e/ione INT 0. )*0MFF e )O)FF? "al+ataggio %lag e"te"i 5K86O7 N!o+e i"tr!/ioni1 "en/a o$eran&i1 #'e !"ano lo "ta#E $er la memori//a/ione &el regi"tro &ei %lag a K2 bit 5@F2-G07. Nat!ralmente le )*0M e )O) normali nel K86 ammettono o$eran&i &a K2 bit1 #ome $.e". @-X. )*0M-F e )O)-F? "al+ataggio &ei regi"tri generali a K2 bit 5K86O7 -nalog'e a &o!ble wor& &ella )*0M- e &ella )O)-1 "al+ano nello "ta#E e1 ri"$etti+amente1 ri$ri"tinano T*TTI gli otto regi"tri generali a K2 bit &ella ()* 5nell4or&ine &i in"er/ione nello "ta#E? @-X1 @(X1 @FX1 @CX1 il +alore &i @0) $rima #'e @-X %o""e me""o nello "ta#E1 @C)1 @0I1 @FI7. 2o "ta#E 9#re"#e9 +er"o in&iri//i $i. ba""i1 #o"Q #ome nell48086. 2e &!e i"tr!/ioni 'anno "olo !n o$eran&o. O$era/ioni &i 9bit scan e bit test9 5K86O7 2e i"tr!/ioni &i bit "#an 5C0F e C0A7 #er#ano il $rimo bit &i+er"o &a /ero nell,o$eran&o "orgente e ne in&i#ano il n!mero nell,o$eran&o &e"tina/ione. 2e i"tr!/ioni &i bit te"t 'anno &!e o$eran&i !no &ei !ali in&i#a la &e"tina/ione "! #!i "i la+ora e l,altro !n bit "$e#i%i#o &ella &e"tina/ione1 "! #!i %are &i+er"e o$era/ioni. )rima &i mo&i%i#are il bit "$e#i%i#ato la ()* nel #o$ia il +alore nel %lag &i #arrD. Nelle i"tr!/ioni &i bit te"t lo "tato &ei %lag OF1 0F1 VF1 -F e )F 3 in&eterminato. <!e"te i"tr!/ioni "ono? CT1 CT(1 CTA1 CT0. B3= <RegistroDestinazione>, <3orgente>
; B#t S5(4 Fo&C(&"

; funzionamento: ; >= <0 ' se <3orgente> 67, ' se -', almeno un +it a ' ; <O%erandoDestinazione> <0 numero del %rimo +it a ' dal meno signifi-ati/o B3R <RegistroDestinazione>, <3orgente>
; B#t S5(4 Re>e&se

; funzionamento: ; >= <0 ' se <3orgente> 67, ' se -', almeno un +it a ' ; <O%erandoDestinazione> <0 numero del %rimo +it a ' dal %i? signifi-ati/o B <O%'>, <O%*>
; B#t Test ; 5o%#( 4el C(&&; Gl(8 #l '#t "# <O%<> #4"#5(to "( <O%2>

; funzionamento: ; @= <0 +it di <O%'> il -ui numero , <O%*> ; <O%*> %u& essere un registro od un o%1 in immediato #non memoria$ B @ <Destinazione>, <O%*>
; B#t Test (4" Co$%le$e4t ; 5o%#( 4el C(&&; Gl(8 #l >(lo&e "el '#t "# <Dest#4(:#o4e> #4"#5(to "( <O%2> ; e" #4>e&te #l >(lo&e "ello stesso '#t #4 <Dest#4(:#o4e>

; funzionamento: ; @= <0 +it di <Destinazione> il -ui numero , <O%*> ; <Destinazione> <0 <Destinazione>, ma -on il +it numero <O%*> in/ertito B R <Destinazione>, <O%*>
; B#t Test (4" Reset ; 5o%#( 4el C(&&; Gl(8 #l >(lo&e "el '#t "# <Dest#4(:#o4e> #4"#5(to "( <O%2> ; e $ette ( :e&o #l >(lo&e "ello stesso '#t #4 <Dest#4(:#o4e>

; funzionamento: ; @= <0 +it di <Destinazione> il -ui numero , <O%*> ; <Destinazione> <0 <Destinazione>, ma -on il +it numero <O%*> 6 7 B 3 <Destinazione>, <O%*>

; B#t Test (4" Set ; 5o%#( 4el C(&&; Gl(8 #l >(lo&e "el '#t "# <Dest#4(:#o4e> #4"#5(to "( <O%2> ; e $ette ( )4o #l >(lo&e "ello stesso '#t #4 <Dest#4(:#o4e>

; funzionamento: ; @= <0 +it di <Destinazione> il -ui numero , <O%*> 18a Famiglia 80X86."Jw 6er. 0.H.0 2004-0H-06

$. H &i 11

Ing. Gabriele MONTI 1999 - 2004

www.ingmonti.it

; <Destinazione> <0 <Destinazione>, ma -on il +it numero <O%*> 6 ' @"em$i?


B@S EAX, 3 ; 5o%#( 4el 5(&&; fl(8 #l >(lo&e "el '#t $e4o s#84#f#5(t#>o ; "# EAX, %o# $ette ?)el '#t "# EAX ( )4o B@ Ho&" P@D [>(&#('#le], <A ; CG <, '#t %#I s#84#f#5(t#>o "# J>(&#('#leJ ; J>(&#('#leJ 4o4 >#e4e $o"#f#5(to // MOV ESI, 3GK39 BSG EAX, ESI ; EAX <, ! -#l %&#$o '#t ( < "( s#4#st&( ; ?)ello "# %eso !B

0M2F1 0MAF? Fo!ble $re#i"ion "'i%t 5K86O7 I"tr!/ioni a tre o$eran&i1 !tili $er e%%ett!are "'i%t &i n!meri &i 64 bit. 3:LD <Destinazione>, <Registro9arteBassa>, <Numero di s.ift>
; Sh#ft Left Do)'le %&e5#s#o4

; funzionamento: ; <Destinazione> <0 s.ift a sinistra <Destinazione> <Numero di s.ift> /olte, ; i +it -.e entrano in <Destinazione> /engono da <Registro9arteBassa> 3:RD <Destinazione>, <Registro9arte;lta>, <Numero di s.ift>
; Sh#ft R#89t Do)'le %&e5#s#o4

; funzionamento: ; <Destinazione> <0 s.ift a destra <Destinazione> <Numero di s.ift> /olte, ; i +it -.e entrano in <Destinazione> /engono da <Registro9arte;lta> NN!mero &i "'i%tO $!= e""ere !n n!mero in imme&iato o& il regi"tro (2. @"em$i?
S27D EDX, EAX, 4 ; ; ; S27D EAX, EDX, 4 ; ; ; $olt#%l#5( %e& <6 #l 4)$e&o "# 64 '#t 5o4te4)to #4 EDX, EAX/ LLLL =O >e&#f#5(&e -#4 EAX 5' l( %(&te (lt( "el &#s)lt(to $( #4 EDX =O -%&o>(&e 5o4 =ASMB "#>#"e %e& <6 #l 4)$e&o "# 64 '#t 5o4te4)to #4 EDX, EAX/ LLLL =O >e&#f#5(&e -#4 EAX 5' l( %(&te (lt( "el &#s)lt(to $( #4 EDX =O -%&o>(&e 5o4 =ASMB

0@T##? bDte 0et on #on&ition 5K86O7 @, !n in"ieme &i K0 i"tr!/ioni #'e1 al $o"to &i ## 5con&ition co&e71 'anno !na #on&i/ione. 0e ## 3 +era l,i"tr!/ione mette il n!mero 1 nella &e"tina/ione1 "e 3 %al"a +i mette 0. 2e #on&i/ioni "ono !elle ti$i#'e? -bo+e o Celow1 Greater o 2e""1 le loro #ombina/ioni #on Not e @ !al e i %lag e"te"i K86. <!e"ta i"tr!/ione 3 !tile $er im$lementare il ti$o 9boolean9 nei ling!aggi &i $rogramma/ione &i alto li+ello. 32 -- <Registro o memoria da 5 +it>
; Set o%e&(4" #f "co4"#t#o4 co"eJ

; funzionamento: ; <Registro o memoria da 5 +it> <0 ' se -- , /ero, 7 se -- , falso @"em$i?


SE@O BE@E P@D [7o5O>e&floC] ; se l'o%e&(:#o4e %&e5e"e4te 9( "(to o>e&floC -OG M <B ; s5&#>e )4 < #4 7o5O>e&floC, (lt&#$e4t# s5&#>e 3/

2F0 e 2G0 52oa& $ointer !"ing "egment regi"ter7 5K86O7 )er i 9n!o+i9 regi"tri &i "egmento "ono "tati aggi!nte le i"tr!/ioni 2F0 e 2G01 analog'e a& 2F01 200 e 2@0 &ell,8086 e #ari#ano !n $!ntatore "egmentato &alla memoria al regi"tro &i "egmento in&i#ato. 0inta""i? LA3 <Registro>, <Bemoria>
; Set o%e&(4" #f "co4"#t#o4 co"eJ

; funzionamento: ; <Registro> <0 CBemoriaD ; A3 <0 CBemoria E *D F CBemoria E GD L=3 <Registro>, <Bemoria> ; funzionamento: ; <Registro> <0 CBemoriaD ; =3 <0 CBemoria E *D F CBemoria E GD -##e&e alla memoria e #ari#a in NAegi"troO la $arte &i o%%"et1 #'e "ta all,in&iri//o in&i#ato &a NMemoriaO1 e in G0 la $arte &i "egmento1 #'e "ta a NMemoriaO S 2 "e l,a##e""o 3 a 16 bit1 a NMemoriaO S 4 "e l,a##e""o 3 a K2 bit. $. 6 &i 11 2004-0H-06 18a Famiglia 80X86."Jw

Ing. Gabriele MONTI 1999 - 2004 @"em$i?

Famiglia X86

www.ingmonti.it

7NS EBX, [EBP]

; C(&#5( #4 NS # <6 '#t 59e t&o>( (ll'#4"#&#::o ; SS+-EBP + 4B e #4 EBX # !2 '#t 59e ; t&o>( (ll'#4"#&#::o SS+EBP/ 7GS SI, [OffsetI4"#&#::o] ; 5(&#5( #4 SI # <6 '#t 59e st(44o ( OffsetI4"#&#::o ; e" #4 GS # <6 '#t ( DS+- OffsetI4"#&#::o + 2B

@"i"tono inoltre 20 i"tr!/ioni "$e#i%i#'e1 intro&otte "olo $er le o$era/ioni 9&i "i"tema9 in mo&o $rotetto.

80386 SX e DX
In"ieme al K86 9#om$leto9 5K86 FX7 l,Intel %ornQ an#'e !na +er"ione #on !n b!" &ei &ati &i "oli 16 bit1 !n $o, #ome #on 8086 e 80881 e la i&enti%i#= #ome 0X. <!e"ta +er"ione %! reali//ata $er $ermettere 'ar&ware &i minor #o"to1 $er#'B #,era la met8 &elle linee &i &ati &a im$lementare nella "#'e&a ma&re.

80387
In!tile a &irlo1 an#'e il K86 a+e+a il "!o #o$ro#e""ore1 e& an#'e in !e"to #a"o $ro&!ttori &i+er"i &a Intel "+il!$$arono !nit8 #om$atibili e $i. $otenti.

CPU successive al 386


Fal $!nto &i +i"ta &el "o%tware1 le ()* "!##e""i+e all480K86 non $re"entano no+it8 "#on+olgenti. 2e inno+a/ioni +anno in gran $arte nell4a!mento &elle $re"ta/ioni1 ottimi//an&o le i"tr!/ioni gi8 e"i"tenti1 a!mentan&o le &imen"ioni &elle #a#'e interne e %a#en&o in mo&o #'e le i"tr!/ioni $o""ano e""ere e"eg!ite $ar/ialmente 9in $arallelo9. 2e ()* &al 486 in $oi 'anno il #o$ro#e""ore matemati#o all4interno &el #'i$1 $er #!i le i"tr!/ioni &el #o$ro#e""ore non &ebbono $i. e""er $a""ate all,e"terno1 attra+er"o b!" #'e ne rallentano il %!n/ionamento. MMX e KFnowP 2e $i. "igni%i#ati+e +aria/ioni ri"$etto &el "et &4i"tr!/ioni &el K86 $artono &al 199;1 #on le i"tr!/ioni MMX 5M!ltime&ia e tention"1 o meglio MatriJ Mat' @ tention"7. MMX aggi!nge H; i"tr!/ioni al "et &4i"tr!/ioni &ella %amiglia 80X861 ren&en&o &i"$onibili %!n/ionalit8 #'e "ono "tate "$e#i%i#amente "t!&iate $er l4elabora/ione &igitale &ei "egnali. 2e i"tr!/ioni &el "et MMX %!n/ionano #on o$eran&i interi ma !tili//ano i regi"tri &ell4!nit8 interna a +irgola mobile. Il 9#ambio9 %ra l4e"e#!/ione &elle o$era/ioni MMX e !elle a +irgola mobile &e+e e""ere %atto #on !n4i"tr!/ione e"$li#ita e ri#'ie&e &i+er"i #i#li &i memoria. Nell4intento &ella #a"a #o"tr!ttri#e1 le ()* #on MMX &o+e+ano ren&ere in!tili i #o$ro#e""ori F0) e"terni 5F0) U !igital Signal Pro#e""or7 !tili//ati nelle a$$li#a/ioni m!ltime&iali 5elabora/ione &elle immagini KF1 ri#ono"#imento &el $arlato1 #om$re""ione - &e#om$re""ione &i "egnali +i&eo7. 6aria/ioni al "et &,i"tr!/ioni "ono "tate e%%ett!ate an#'e &a -MF1 #'e 'a intro&otto !na "erie &i ()* #om$atibili #on )enti!m &otate &i MMX 9e"te"o91 in gra&o &i %!n/ionare an#'e in +irgola mobile 5KFnowP7. 0!##e""i+amente1 a $artire &al )enti!m III1 an#'e Intel 'a intro&otto n!o+e i"tr!/ioni a +irgola mobile 5MMX 27.

486
Il 486 3 !n K86 $oten/iato. Il $aralleli"mo interno e !ello &ei b!" "ono gli "te""i. Nel 486 3 $re"ente "!l #'i$ il #o$ro#e""ore aritmeti#oL inoltre 3 $re"ente !na #a#'e &i $rimo li+ello e gli a##e""i ai b!" "ono "tati re"i $i. e%%i#ienti. Fel 486 "ono "tate intro&otte an#'e +er"ioni a ba""o #on"!mo1 $er i #om$!ter $ortatili 5486 0271 e& altre #'e in#l!&ono !n molti$li#atore &i %re !en/a1 $er #!i $o""ono e""ere 9alimentati9 #on !na #erta %re !en/a &i #lo#E e %!n/ionare internamente a +elo#it8 &o$$ia1 tri$la o !a&r!$la 5486 FX21 FX4 ..7. <!e"to $ermette &i reali//are "#'e&e ma&re non tro$$o #o"to"e1 #'e la+orano a %re !en/e &i #lo#E 9normali91 mentre "i $!= "$ingere %ortemente "!lla +elo#it8 &i elabora/ione1 #'e +iene in#rementata &alle %re !en/e &i #lo#E $i. alte #'e "i $o""ono ottenere all,interno &ella ()*. Nat!ralmente ogni a##e""o alla memoria %!n/iona alla %re !en/a &i #lo#E &ella "#'e&a ma&re1 #io3 e"attamente alla "te""a +elo#it8 $er !n FX o $er !n FX4. 2,a$$ro##io &ella molti$li#a/ione &el #lo#E interno &ella ()*1 intro&otto nel 4861 "i 3 $oi generali//ato e +iene oggi !"ato $rati#amente in t!tte le ()* n!o+e1 an#'e nelle %amiglie &i+er"e &alla X86.

Pentium e 586
Il )enti!m 3 e""en/ialmente !na ()* a K2 bit. Molto &i+er"o &al 486 nell,ar#'itett!ra interna1 &al $!nto &i +i"ta &el "o%tware 3 "olo !na e+ol!/ione1 nelle $rime +er"ioni non #i "ono no+it8 $arti#olari nel "et &,i"tr!/ioniL nelle "!##e""i+e +er"ioni i )enti!m 'anno ar#'itett!ra #on le n!o+e i"tr!/ioni MMX. Il "igni%i#ato &i MMX era "tato ini/ialmente $!bbli#i//ato #ome 9M!ltime&ia e ten"ion91 in !n "e#on&o tem$o %! #'iamato 9MatriJ Mat' e ten"ion"9. Fato #'e i $rogrammi &i gra%i#a1 e1 in generale1 m!ltime&iali1 %anno am$io !"o &i i"tr!/ioni a +irgola mobile1 l,!ltima &e%ini/ione &e"#ri+e molto meglio le #aratteri"ti#'e &elle i"tr!/ioni MMX1 #'e "ono t!tte relati+e a n!meri interi. Nel )enti!m la $arte 9#entrale9 &ella ()* 'a !n %!n/ionamento "imile alle ()* &i ti$o AI0(1 #on en%a"i nell,e"e#!/ione &elle i"tr!/ioni %ra regi"tri1 !n gran n!mero &i regi"tri 9na"#o"ti9 e gro""e #a#'e $er le i"tr!/ioni e gli in&iri//i. Il "et &,i"tr!/ioni #om$atibile #on le +e##'ie ()* &ella %amiglia +iene reali//ato 9"o$ra9 !e"to 9motore9 &i ti$o AI0(1 !a"i #ome "e %o""e !no "trato &i !n 0i"tema O$erati+o. 2,-2* 'a &!e $i$eline &a #in !e "ta&i $er ogni i"tr!/ione "! n!meri interi1 la !nit8 a +irgola mobile 5F)*? Floating )oint *nit7 'a !na $i$eline &a otto "ta&i. 2a ()* !tili//a la $re+i"ione &inami#a &ei "alti. $i$eline a H "ta&i 56 in )enti!m MMX7

18a Famiglia 80X86."Jw

6er. 0.H.0 2004-0H-06

$. ; &i 11

Ing. Gabriele MONTI 1999 - 2004 Nei )enti!m il regi"tro (A0 #ontiene i %lag )G1 (F1 NG1 -M1 G)1 N@ e @T

www.ingmonti.it

Pentium pro e 686


FIC F!al In&e$en&ent C!"? &!e b!" !no %ra $ro#e""ore e memoria $rin#i$ale e& !n altro %ra $ro#e""ore e #a#'e &i "e#on&o li+ello1 $ermettono tra"%erimenti #ontem$oranei. @"e#!/ione &i i"tr!/ioni #ontem$oranee 5%ino a !attro7. @"e#!/ione &inami#a U e"e#!/ione non in or&ine 5o!t - o% - or&er eJe#!tion7 S e"e#!/ione "$e#!lati+a 5"$e#!lati+e eJe#!tion7 $i$eline a 12 "ta&i $re+i"ione &ei "alti 5bran#' $re&i#tion7 #on &!e te#ni#'e? !na ba"ata "!lla "toria &elle i"tr!/ioni $re#e&enti 5&inami#a7 e& !n4altra "!lla #ono"#en/a "tati"ti#a &i #ome ogni #o&i#e o$erati+o 3 !"ato $i. "$e""o. #a#'e 21 16 ECDte1 Ibri&o #on #a#'e &i li+ello 2 "!lla "te""a $ia"tra (onnettore 50o#Eet 87 #on K8; $ie&ini 0ingle @&ge (onta#t 50.@.(.7 F!n/iona a K1K 6 Il )enti!m $ro reali//a la e"e#!/ione 9"$e#!lati+a9 &i i"tr!/ioni #'e non 3 &etto #'e "er+ano. (aratteri"ti#'e a+an/ate &elle n!o+e ()* della "amiglia 8086 Pentium ## Fa %!ori "embra molto &i+er"o1 ma &i %atto 3 analogo al )enti!m )ro nelle $i$eline e nei b!" FIC. 2a &i%%eren/a $i. im$ortante1 e& an#'e la $i. ma#ro"#o$i#a1 "ta nel #onnettore mo&!lare &i n!o+a #on#e/ione 59"lot971 non #om$atibile #on le "#'e&e ma&ri $re#e&enti. Nel #ontenitore #i "ono &i+er"i #'i$ e #om$onenti? la ()* +era e $ro$ria1 la #a#'e &i "e#on&o li+ello 522 #a#'e7 e re"i"tori e #on&en"atori &i"#reti $er l4a&attamento &elle linee. (onnettore 50lot 17 #on 242 $ie&ini %re !en/e $i. alte 5K00 MM/7 MMX? H; n!o+e i"tr!/ioni #'e $ermettono &i trattare blo##'i &i &ati &a K21 16 o 8 bit #ome $arole &a 64 bit1 $ermetten&o l4e"e#!/ione $i. +elo#e &elle i"tr!/ioni ti$i#'e &ei $rogrammi m!ltime&iali1 !ali o$era/ioni gra%i#'e e F0). F!n/iona a 212 61 $er#i= "i $!= man&are a %re !en/e maggiori #a#'e 21 on #'i$ ra&&o$$iata 5K2 ECDte7 #ollegamento &i &!e $ro#e""ori )enti!m II in m!lti$ro#e""ing "en/a ne""!n altro #'i$ &i "!$$orto. 2a #a#'e $!= ge"tire $agine &i 4 ECDte o &i 4 MCDte $age". 2a #a#'e &elle i"tr!/ioni 'a &!e T2C 5Tran"a#tion 2ooEa"i&e C!%%er7 a""o#iati+i a !attro +ie 5%o!r-waD1 "et-a""o#iati+e7. -nalog'e le #aratteri"ti#'e &ella #a#'e &ei &ati. *"a te#ni#'e &i $re&i/ione &inami#'e &ei "alti 5&Dnami#-bran#' $re&i#tion7. I "alti "ono $re&etti &alla ()*1 a &i%%eren/a &ella $re&i/ione "tati#a1 #'e +iene %atta &al #om$ilatore.

tanium
Intani!m non a$$artiene alla %amiglia X86. Ma #o&i#i o$erati+i 9nati+i9 &i+er"i &a !elli X861 ma

!pteron
- 64 bit &i $aralleli"mo interno1 3 $ienamente #om$atibile #on gli X86 a K2 bit1 e"$en&en&o l,ar#'itett!ra a 64 bit. )!= %!n/ionare nei "eg!enti mo&i? $egac% mode1 mo&alit8 X86 a K2 bit1 "i #om$orta e"attamente #ome !n )enti!m1 'a regi"tri a K2 bit e& il "et &i i"tr!/ioni &i !n )enti!m. )!= %ar girare into##ati i $rogrammi e& i 0i"temi O$erati+i "#ritti $er gli X86 a K2 bit. 2ong mo&e1 &i"ting!e %ra a$$li#a/ioni a K2 bit e& altre a 64L $er le a$$li#a/ioni a K2 bit "i #om$orta #ome !n )enti!m 5(om$atibilitD mo&e71 mentre mette a &i"$o"i/ione &elle altre la "!a ar#'itett!ra e"te"a &a 64 bit 564 bit mo&e7.

Curiosit Pentium"
Il 486 non "i #'iama+a 804861 ma 486 e ba"taP I $ro&!ttori #on#orrenti #'iamarono 4861 #on altre "igle a "eg!ire1 le loro ()* #om$atibili #on il 486. )er la genera/ione "!##e""i+a Intel $ro+= a& im$orre il mar#'io regi"trato "!lla "igla H861 ma l,!%%i#io *0- #om$etente lo neg=1 $er#'B non "i $!= regi"trare #ome mar#'io !n n!mero &i K #i%re. Fa allora le ()* Intel non 'anno $i. !n n!mero1 ma !n +ero e $ro$rio 9nome91 #'e1 nat!ralmente1 3 oggetto &i tra&emarE.

486 DX e SX
I $rimi 486 +eni+ano +en&!ti a $re//i molto alti1 &ato #'e1 integran&o il #o$ro#e""ore aritmeti#o1 &a+ano note+oli in#rementi &i $re"ta/ioni ri"$etto ai K86. Molti !tenti non a+e+ano intere""e a $a""are al 4861 $er#'B !"a+ano a$$li#a/ioni #'e non ri#'ie&e+ano molti #al#oli a +irgola mobile 5a !ei tem$i la gra%i#a era !n,o$tionalP7. (o"Q Intel $ro&!""e !na +er"ione &el 4861 &a +en&ere a& !n $re//o molto in%eriore1 #'e non $ermette+a &i !tili//are il #o$ro#e""ore1 $!r #om$ren&en&olo internamente. <!e"ta +er"ione an&= "otto il nome &i 486 0X. <!in&i !n 486 0X 3 internamente i&enti#o a& !n FX1 in $arti#olare 'a lo "te""o $aralleli"mo nel &ata b!"1 "olo #'e il #o$ro#e""ore 3 &i"abilitato. Nat!ralmente1 $er #'i "i %o""e $entito e& a+e""e +ol!to in !n "e#on&o tem$o an#'e il #o$ro#e"$. 8 &i 11 2004-0H-06 18a Famiglia 80X86."Jw

Ing. Gabriele MONTI 1999 - 2004

Famiglia X86

www.ingmonti.it

"ore $er il 4861 %! $ro&otto !n 48;1 #'e era !n normale 4861 #on &ei $ie&ini in $i. #'e $ermette+ano &i 9"$egnere9 il 486 0X e $ren&ere il "!o $o"to in t!tto $er t!tto. <!e"te $rati#'e &i limita/ione 9arti%i#iale9 &elle $re"ta/ioni &i ()* altrimenti i&enti#'e #ontin!ano t!ttora e "i $otrebbero %are molti altri e"em$i.

18a Famiglia 80X86."Jw

6er. 0.H.0 2004-0H-06

$. 9 &i 11

Ing. Gabriele MONTI 1999 - 2004

Famiglia X86

www.ingmonti.it

(aratteri"ti#'e &ei mi#ro$ro#e""ori &ella %amiglia Intel 80X86 -nno &i in- )aralleli"mo Fata b!" Nome &el $ )ro&!ttore tro&!/ione interno 5n. ro bit7 5n. ro bit7 8088 Intel 19;8 16 8 5ICM1 -MF7 8086 Intel Gi!gno 16 16 19;8 80186 Intel &al 1982 16 16 e& altri a& oggi 80286 Intel Febbraio 16 16 5ICM1 -MF7 1982 80K86 0X 80K86 FX K86 #om$atibili 486 0X 486 FX Intel Intel -MF1 (DriJ e& altri Intel Intel 1988 Ottobre 198H %ino a& oggi 1991 -$rile 1989 %ino a& oggi Mar/o 199K 199; 199H 199; 199; 1999 K2 K2 #ome 0X o FX K2 K2 K2 K2 K2 K2 9 9 9 16 K2 #ome 0X o FX K2 K2 K2 K2 K2 64 9 9 9

-&&r. C!" 5n. ro bit7 20 51 MCDte7 20 51 MCDte7 24 516 MCDte7 24 516 MCDte7 24 516 MCDte7 K2 54 GCDte7 #ome 0X o FX K2 54 GCDte7 K2 K2 K2 K2 K2 9 9 9

Memoria +irt!ale no no no K0 bit 51 GCDte7 46 bit 5W7 564 TCDte7 46 bit 5W7 564 TCDte7 #ome 0X o FX 46 bit 5W7 564 TCDte7 46 bit 5W7 564 TCDte7 46 bit 5W7 564 TCDte7 46 bit 5W7 564 TCDte7 46 bit 5W7 564 TCDte7 46 bit 5W7 564 TCDte7 9 9 9

Fre !en/a &i #lo#E H MM/ %ino a 10 H MM/ %ino a 10 +arie 12 MM/

n. $in FI)

n!mero &i tran"i"tor 29 000 29 000

No+it8 ri"$etto al $re#e&ente ()* 16 bit1 1 MCDte memoria1 $re&i"$o"ta $er #o$ro#e""ore Fata b!" 16 bit I"tr!/ioni $i. +elo#i1 al#!ne n!o+e i"tr!/ioni 16 MCDte memoria1 mo&o $rotetto "egmentato1 n!o+e i"tr!/ioni1 i"tr!/ioni $i. +elo#i ()* K2 bit1 regi"tri K2 bit1 i"tr!/ioni K2 bit1 mo&o $rotetto $aginato K2 bit a&&r.b!" 54 GCDte memoria7 Oggi "ono ()* $er "i"temi embe&&e&1 #on IIO. 9)( on a #'i$9 mi#roar#'itett!ra n!o+a1 #o$ro#e""ore interno 5&i"abilitato71 i"tr!/ioni $i. +elo#i (o$ro#e""ore interno abilitato1 FX21 FX4? molti$li#a/ione &el #lo#E ()* $er "i"temi embe&&e&1 #on IIO. 9)( on a #'i$9 I"tr!/ioni $i. +elo#i1 #a#'e 21 interna1 $i$elining1 bran#' $re&i#tion I"tr!/ioni MMX mi#roar#'itett!ra n!o+a1 #a#'e 22 "! #'i$ "e$arato ma nel #ontenitore ()*1 e"e#!/ione "$e#!lati+a1 "lot )enti!m $ro S MMX I"tr!/ioni KFnowP N!o+e i"tr!/ioni MMX1 $rima "lot $oi "o#Eet

FI) FI) 1K4 000 FI)

16 MM/ %ino a KK 16 MM/ %ino a KK 2H MM/ %ino a KK

2;H 000

1 200 000 )G1 200 000

486 -MF1 (DriJ1 #om$atibili e& altri )enti!m Intel 5)H7 )enti!m Intel MMX 5)HH7 )enti!m )ro Intel 5)67 )enti!m 2 X6 )enti!m K Intel -MF Intel

KK MM/ %ino a H0 )G%ino a 100 MM/ 60 MM/ %ino a 200 166 MM/ %ino a 266 1H0 MM/ %ino a 200 296 )G296 )GK8; 0@(

K 100 000 4 H00 000 H H00 000 5:7 ; H00 000 9 K00 000 9 H00 000

2KK MM/ 242 %ino a 4H0 0@( 166 MM/ K21 %ino a HH0 )G4H0 MM/ K;0 %ino a 11K GM/ 0@(

$. 10 &i 11

06I0HI2004

18a Famiglia 80X86."Jw

Ing. Gabriele MONTI 2000 -t'lon 5X;7 )enti!m 4 5);7 -MF Intel 1999 2000

-$$!nti &i 0i"temi 9 9 9 9 9 9

ITI (e"ena1 1999-2000 9 9 H00 MM/ %ino a 112 GM/ 114 GM/ 22 000 000 0@( 42K )G42 000 000 I"tr!/ioni @n'an#e& KFnowP mi#roar#'itett!ra n!o+a1 20 "ta&i $i$eline1 -2* a &o$$ia %re !en/a1 9tra#e #a#'e9 $er le i"tr!/ioni N!o+i regi"tri e i"tr!/ioni a 64 bit1 #om$atibilit8 #on K2 e 16 bit

O$teron -MF 64 5Mammer7 5:7 "en/a #ontare i tran"i"tor &ella #a#'e "e#on&aria &a 2H6 ECDte1 #'e 3 "! !n "e#on&o #'i$ #onten!to nello "te""o $a#Eage. 5W7 "olo #on memoria +irt!ale "egmentata 5&i "olito non "!$$ortata &al "i"tema o$erati+o71 #on memoria 9%lat9? K2 bit &i memoria +irt!ale 54 GCDte7.

Xeon e (eleron "ono nomi &i+er"i &i #ore ()* molto "imili ai )enti!m 2 e K1 i nomi "ono "ono "tati "#elti $er ragioni #ommer#iali. 2e $re"ta/ioni &el (eleron "ono &imin!ite arti%i #ialmente1 !elle &egli Xeon "$inte al ma""imo. -gli Xeon "ono an#'e aggi!nte %!n/ioni $i. $otenti $er il #ollegamento in "i"temi m!lti$ro#e""ore.

18a Famiglia 80X86."Jw

06I0HI2004

$. 11 &i 11

Potrebbero piacerti anche