Professional Documents
Culture Documents
i"a
#$eptembar %&&'(
1. Programerov pogled na organizaciju procesora 7 1.1. Centralna Procesorska Jedinica 7 1.2. Dizajn procesora prema skupu instrukcija 7 1.3. Memorija 7 1.4. Dizajn procesora prema memorijskom pristupu 8 )*+*)* Tro,re$-e ma.i-e / )*+*%* 0 oa,re$-e ma.i-e / )*+*1* Je,-oa,re$-e ma.i-e #akumu2ator$ke( ' )*+*+* Je,-oa,re$-e ma.i-e $a i.e re3i$tara ' )*+*4* Nu2a a,re$-e ma.i-e #$teko -e( ' 1.5. 8 !8" #amilija mikroprocesora 1 2. Adresiranje podataka na sistemskom nivou 12 2.1. $e%istri 12 %*)*)* /&/5 )56bit-i re3i$tri )% %*)*%* /&1/5 1%6bit-i re3i$tri )% 2.2. Do&ijanje #izi'ke memorijske adrese na PC procesorima 13 %*%*)* Rea2-i re7im )1 %*%*%* )56bit !a.tie-i re7im )1 %*%*1* 1%6bit-i !a.tie-i re7im )+ 2.3. (nstrukcijski operandi 14 2.4. (ndirektno adresiranje 14 %*+*)* Napre,-o i-,irekt-o a,re$ira-"e )4 2.5. Predsta)ljanje cijeli* &roje)a 15 %*4*)* Z-ak i ri"e,-o$t )4 %*4*%* Pr i komp2eme-t )4 %*4*1* 0ru3i komp2eme-t )5 %*4*+* Sma-"e-"e e2i8i-e po,ataka )9 %*4*4* Po ea-"e e2i8i-e po,ataka )9 2.". +roje)i u pokretnom zarezu 17 %*5*)* Ne:i"e2i bi-ar-i bro"e i )9 %*5*%* IEEE pre,$ta 2"a-"e pokret-o3 !are!a )' 2.7. ,tek 13. Mainski kod i njegovo generisanje 20 3.1. Ma.inski jezik 2 3.2. /sem&lerski jezik 2 3.3. 0sno)ne instrukcije 2 3.4. Direkti)e 21 1*+*)* 0irekti a e;u %) 1*+*%* 0irekti a <,e=-e %) 1*+*1* 0irekti e po,ataka %% 3.5. Pr)i pro%ram 23 1*4*)* Kompa"2er$ke $pe:i>i8-o$ti %4 1*4*%* A$emb2ira-"e pro3rama %4 1*4*1* Kompa"2ira-"e C pro3rama %5 1*4*+* Li-ko a-"e ob"ekt-i? pro3rama %5 1*4*4* Ra!umi"e a-"e a$emb2er$ko3 2i$ti-3a %5 1*4*5* @i3 i Litt2e E-,ia- pre,$ta 2"a-"e %9 1*4*9* A!orak !a pi$a-"e pro3rama %9 3.". (nstrukcije za pro.irenje )eli'ine podataka 28 3.7. /ritmeti'ke instrukcije 2-
1*9*)* Prim"er pro3ram 1& 1*9*%* I-$truk:i"e pro.ire-e ta8-o$ti 1) 3.8. 1ontrolne strukture 32 1*/*)* PoreBe-"a 1% 1*/*%* I-$truk:i"e 3ra-a-"a 1% 1*/*1* I-$truk:i"e pet2"i 14 3.-. 0peracije pomijeranja &ito)a 35 1*'*)* Lo3i8ko pomi"era-"e 14 1*'*%* Apotreba pomi"era-"a 15 1*'*1* Aritmeti8ko pomi"era-"e 15 1*'*+* Rotira-"e bito a 15 1*'*4* Prim"er upotrebe i-$truk:i"a !a pomi"era-"e i rotira-"e 19 1*'*5* @u2o e bit opera:i"e 19 1*'*9* AN0 opera:i"a 19 1*'*/* OR opera:i"a 19 1*'*'* COR opera:i"a 1/ 1*'*)&* NOT opera:i"a 1/ 1*'*))* TEST i-$truk:i"a 1/ 1*'*)%* Apotreba bit opera:i"a 1' 3.1 . (z&je%a)anje uslo)ni* skoko)a 33.11. (nstrukcije zamjene podataka 4 3.12. Potpro%rami 4 1*)%*)* Ma-ipu2a:i"a $tekom +& 1*)%*%* I-$truk:i"e CALL i RET +& 4. enerisanje koda radi implementiranja programski! jezika visokog nivoa 41 4.1. Pre)o2enje standardni* kontrolni* struktura 41 +*)*)* I> -are,ba +) +*)*%* D?i2e pet2"a +) +*)*1* 0o E?i2e pet2"a +) 4.2. Potpro%rami 42 +*%*)* Ko- e-:i"e po!i a +% +*%*%* Pro$2"eBi a-"e parametara -a $teku +% +*%*1* Loka2-e ari"ab2e -a $teku +4 +*%*+* Fi.emo,u2-i pro3rami +9 4.3. Po)ezi)anje asem&lera i C3a 48 +*1*)* u a-"e re3i$tara +' +*1*%* O!-ake >u-k:i"a +' +*1*1* Re,o$2i"e, pro$2"eBi a-"e parametara +' +*1*+* Ra8u-a-"e a,re$e 2oka2-i? ari"ab2i 4& +*1*4* Po rat-e ri"e,-o$ti 4& +*1*5* 0ru3e ko- e-:i"e po!i a 4& +*1*9* Po!i C >u-k:i"a i! a$emb2er$ko3 pro3rama 41 +*1*/* Po-o -o po!i 2"i i i rekur!i -i potpro3rami 4+ +*1*'* Rekur!i -i potpro3rami 4+ +*1*)&* Tipo i ari"ab2i u C6u 44 4.4. 4izo)i 55 +*+*)* 0e=-i$a-"e -i!o a 45 +*+*%* 0e=-i$a-"e -i!o a kao 2oka2-e ari"ab2e -a $teku 45 +*+*1* Pri$tup e2eme-tima -i!a 45 +*+*+* 0ru3e prim"e-e i-$truk:i"e LEA 4/ +*+*4* Fi.e,ime-!io-a2-i -i!o i 4/ +*+*5* 0 o,ime-!io-a2-i -i!o i 4/ +*+*9* 0ime-!i"e i!-a, , a 4' +*+*/* Pro$2"eBi a-"e i.e,ime-!io-a2-i? -i!o a kao parametara u C 4' 4.5. (nstrukcije za rad s nizo)ima i strin%o)ima " +*4*)* ita-"e i pi$a-"e memori"e 5& +*4*%* REP i-$truk:i"$ki pre>ik$ 5) +*4*1* Stri-3 i-$truk:i"e !a poreBe-"e 5%
+*4*+* I-$truk:i"$ki pre>ik$i REPG 5% 4.". Pokretni zarez "3 +*5*)* Numeri8ki kopro:e$or 51 +*5*%* A8ita a-"e i $m"e.ta-"e 5+ +*5*1* O$-o -e aritmeti8ke opera:i"e 5+ +*5*+* Ra!-e i-$truk:i"e 59 4.7. ,trukture "7 ". #laz i izlaz $% 5.1. Memorijski i 56( mapirani ure2aji "5.2. 7ideo 7 4*%*)* Fi,eo -a -i$kom -i ou 9& 4*%*%* Fi,eo -a -i ou Di-,oE$a 9% 4*%*1* Fi,eo -a -i ou Li-uGa 95 5.3. 8astatura 7" 4*1*)* Ta$tatura -a -i$kom -i ou 95 4*1*%* Ta$tatura -a -i ou Di-,oE$a 99 4*1*1* Ta$tatura -a -i ou Li-uGa 99 5.4. Disk 77 4*+*)* 0i$k -a -i$kom -i ou 99 4*+*%* 0i$k -a -i ou Di-,oE$a 9/ 4*+*1* 0i$k -a -i ou Li-uGa 9' $. Prekidi &1 ".1. 9ta je to prekid: 81 5*)*)* Har, er$ki i-terapti /) 5*)*%* So>t er$ki i-terapti 6 trapo i /% 5*)*1* I!u!e:i /% ".2. 0&rada prekida u realnom re;imu 82 ".3. 0&rada prekida u za.ti<enom re;imu 82 ".4. 1ako iz%leda tipi'na rutina za o&radu prekida 83 7. 'ompajleri &4 7.1. Prolazi 84 7.2. =la)ne #aze kompilacije 84 9*%*)* Pre,pro:e$ira-"e /+ 9*%*%* Lek$i8ka a-a2i!a /+ 9*%*1* Par$ira-"eI $i-tak$-a a-a2i!a /4 9*%*+* Sema-ti8ka a-a2i!a /4 9*%*4* Kompa"2er$ka a-a2i!a /4 9*%*5* Optimi!a:i"a /4 9*%*9* Ge-eri$a-"e ko,a /4 7.3. >> i >$ parsiranje 85 7.4. ,intaksni dija%rami i sintaksne procedure kroz primjer kompajlera 8" 9*+*)* Je!i:i /5 9*+*%* Opi$ kompa"2era /9 9*+*1* O$-o -i pri-:ipi /9 9*+*+* Si-tak$-i ,i"a3rami i 2i$ti-3 kompa"2era // 9*+*4* A2a!I i!2a! i ,o? ata-"e $imbo2a '% 9*+*5* Numeri8ke i a2>a-umeri8ke ko-$ta-te '% 9*+*9* Fari"ab2e i -i!o i '% 9*+*/* I!ra!i '1 9*+*'* Ko-tro2-e $trukture '+ 9*+*)&* Ju-k:i"e '+ 9*+*))* A o,-i i !a r.-i ,io '+ 9*+*)%* Te$t-i prim"er i upotreba kompa"2era '4
&. (rugi razvojni alati %& 8.1. >inker -8 /*)*)* Li-kero a pra i2a '/ /*)*%* Jik$ira-"a i re2oka:i"e '' /*)*1* @ib2ioteke )&& 8.2. Dinami'ke &i&lioteke 1 /*%*)* 0i-ami8ke bibi2ioteke )&& /*%*%* Apra 2"a-"e memori"om u 0LL )&) /*%*1* Ek$p2i:it-o i imp2i:it-o po e!i a-"e 0LL )&) /*%*+* Prim"er pra 2"e-"a 0LL i po!i a $a imp2i:it-om i ek$p2i:it-om ari"a-tom* )&% 8.3. Make 1 3 /*1*)* Make>i2e $truktura )&1 /*1*%* Prim"er make>i2e )&1 8.4. /sem&leri 1 4 /*+*)* 0 opro2a!-i a$emb2er )&+ /*+*%* Je,-opro2a!-i a$emb2er )&4 8.5. (nterpreteri 1 5 8.". 1omandne linije? (nte%rirana okru;enja i )izualna raz)ojna okru;enja 1 7 %. )zvrno okru*enje 110 -.1. @indoAso) iz)r.ni #ormat datoteke 11 '*)*)* MS60OS !a32a 2"e i o$-o -i pro3ram u rea2-om re7imu ))& '*)*%* PE $i3-aturaI PE !a32a 2"e i op:io-a2-o !a32a 2"e ))& '*)*1* Sta-,ar,-e $ek:i"e ))) '*)*+* Sek:i"a $ i! r.-im pro3ramomI *teGt ))) '*)*4* Sek:i"e po,atakaI *b$$I *r,ataI *,ata ))) '*)*5* Re$ur$-a $ek:i"aI *r$r: ))) '*)*9* Sek:i"a i! e!e-i? po,ataka *e,ata i u e!e-i? po,ataka *i,ata ))) '*)*/* Sek:i"a ,eba3er$ki? i->orma:i"a *,ebu3 ))) '*)*'* Li-uG ELJ i! r.-i >ormat ))) -.2. >oader BPunilacC 112 -.3. @indoAso)e sistemske #unkcije 112 '*1*)* Di-,oE$ API ))% '*1*%* O$-o -e u$2u3e ))% '*1*1* Gra>i8ke >u-k:i"e #G0I( ))% '*1*+* Kori$-i8ki i-ter>e"$ ))1 '*1*4* Mre7-i $er i$i ))1 '*1*5* Deb API >u-k:i"e ))1 '*1*9* Mu2time,i"a2-i API"i ))1 '*1*/* API !a i-terak:i"u i!meBu pro3rama ))1 '*1*'* Priro,-i API ))1 '*1*)&* Omota8i oko API6"a ))1 '*1*))* Po!i a-"e API >u-k:i"a ))+ '*1*)%* Li$ta >u-k:i"a ))+ -.4. >inu!o)e sistemske #unkcije 125 -.5. 7irtualne ma.ine 125 '*4*)* Firtua2-e ma.i-e ko"e omo3ua a"u i$to reme-o i! r.a a-"e i.e operati -i? $i$tema )%5 '*4*%* Ap2ika:i"$ka irtua2-a ma.i-a )%5 '*4*1* Firtua2-o okru7e-"e )%5 '*4*+* Spa"a-"e >i!i8ki? ma.i-a u irtua2-u ma.i-u )%9 10. #vod u konkurentno programiranje 12& 1 .1. Da.to su potre&ne niti 128 1 .2. 4iti Bt*readC 128 1 .3. 1reiranje niti pod >inu!om 12)&*1*)* Kreira-"e -iti )%'
)&*1*%* eka-"e -a !a r.etak -iti )%' 1 .4. 4iti pod @indoAsom 13 1 .5. Pro&lem konkurentnosti 131 )&*4*)* A!a"am-o i$k2"u8i a-"e )1) )&*4*%* @ib2iote8-e >u-k:i"e i -iti )1% 11. +ptimizacija koda i per,omanse 133 11.1. 1ada optimizo)ati? kada ne 133 ))*)*)* Ka$-a optimi!a:i"a )11 ))*)*%* Ra-a optimi!a:i"a )1+ ))*)*1* Optimi!a:i"a u pra om reme-u )1+ 11.2. 1ako se tra;i spori kod u pro%ramima: 134 ))*%*)* Pro>a"2eri )14 11.3. Da li je optimizacija neop*odna: 135 11.4. 8ri tipa optimizacije 13" ))*+*)* @o2"i a23oritam )15 ))*+*%* @o2"a imp2eme-ta:i"a )15 ))*+*1* @ro"a-"e :ik2u$a )15 11.5. +enc*mark pro%rami 137 11.". 0ptimizacija izlaza kompajlera 137 11.7. Pro.irenje kompajlera Eildzan32 optimizatorom 138 12. Prilog- )nstrukcijski set Pentiuma )) 141 )%*)*)* Opera:io-i ko,o iI opi$ )+) )%*)*%* Prim"eri ko,ira-"a komp2et-i? i-$truk:i"a )+1
1.3.Memorija
O$-o -a "e,i-i:a memori"e "e ba"t* Ra8u-ar $a 1% me3aba"ta memori"e mo7e $a,r7a ati prib2i7-o 1% mi2io-a ba"to a po,ataka* S aki ba"t u memori"i "e o!-a8e- "e,i-$t e-im bro"em ko"i $e !o e a,re$a # $2ika )(* Mikropro:e$or 8ita ko,o e i-$truk:i"a i po,atke i! memori"e pri$tupa"ui -"i?o im a,re$ama*
Loka:i"a
&
) 1A
% +C
1 //
+ 9%
4 %5
5 /1
9 'J
Fri"e,-o$t %E
e$to $e memori"a kori$ti u eim koma,ima o, po"e,i-a8-i? ba"to a* Na PC ar?itekturiI ,ata $u ime-a i eim $ek:i"ama memori"e* Memori"a $e m"eri u ki2oba"tima # )&%+ ba"ta(I me3aba"tima #) &+/ 495 ba"to a( i 3i3aba"tima # )&919+)/%+ ba"ta(* et orobit-i bro" $e !o e -ib2* Sto3aI $ aka ?ek$a,eka,-a :i>ra pre,$ta 2"a -ib2* 0 a -ib2a 8i-e ba"tI pa $e ba"t pre,$ta 2"a , o:i>re-im ?ek$a,eka,-im bro"em* Fri"e,-o$t ba"ta arira i!meBu & i )))))))) u bi-ar-om $i$temuI & i JJ u ?ek$a,eka,-om te & to %44 u ,eka,-om* Ri"e8 #Eor,( 0up2a ri"e8 et ero$truka ri"e8 para3ra> % ba"ta + ba"ta / ba"to a )5 ba"to a
.l. 2 /edinice memorije
S i po,a:i u memori"i $u -umeri8ki* Z-ako i $e $m"e.ta"u kori.te-"em ko,o a ko"i mapira"u bro"e e u !-ako e* Je,a- o, -a"8e.i? ko,o a !-ako a "e po!-at po, ime-om ASCII #Ameri:a- Sta-,ar, Co,e >or I->ormatio- I-ter:?a-3e(* Po$to"i i -o i"iI ei -a8i- ko,ira-"a !-ako a ko"i po-eka, !am"e-"u"e ASCII po, ime-om A-i:o,e* G2a -a ra!2ika i!meBu o a , a -a8i-a "e .to ASCII kori$ti "e,a- ba"t !a ko,ira-"e !-akaI a A-i:o,e kori$ti , a ba"ta #i2i ri"e8( po !-aku* Na prim"erI ASCII mapira ba"t +) )5 #54)&( u !-ak AK A-i:o,e mapira ri"e8 &&+))5 u i$to $2o o* Po.to ASCII kori$ti ba"tI o3ra-i8e- "e -a $amo %45 ra!2i8iti? !-ako a * A-i:o,e pro.iru"e ASCII ri"e,-o$ti -a )5 bit-e ri"e8i i tako ,opu.ta pre,$ta 2"a-"e i.e !-ako a* To "e a7-o !a pre,$ta 2"a-"e !-ako a $ i? "e!ika $ i"eta*
1.4.1.Trodresne maine
S i tri opera-,a $u ek$p2i:it-o -a e,e-i u ei-i i-$truk:i"a* M A00 ,e$tI $r:)I $r:%: MO,e$tP L MO$r:)P N MO$r:%P M MALT ,e$tI $r:)I $r:%: MO,e$tP L MO$r:)P M MO$r:%P Ma,a o a" pri$tup i!32e,a r2o moa- I ima $ o"i? 2o.i? $tra-a* I-$truk:i"e !a?ti"e a"u m-o3o pri$tupa RAM memori"iI .to "e !-at-o $pori"e -e3o i-$truk:i"e u-utar pro:e$ora* Na"popu2ar-i"a 16a,re$-a ma.i-a "e bio ra8u-ar FAC ))* Prim"er troa,re$-e i-$truk:i"e -a o om pro:e$oru #-e mikropro:e$oru( "e a,,21 #R%(I#R1(I#R+( ko"a $abira ri"e,-o$ti -a 2oka:i"ama ko"e poka!u"u re3i$tri R% i R1 i upi$u"e re!u2tat -a a,re$u -a ko"u poka!u"e re3i$tar R+*
1.4.2.Dvoadresne maine
A %6a,re$-o" ma.i-iI i-$truk:i"e ima"u $amo , i"e ek$p2i:it-e a,re$e* Je,-a o, -"i? ima , i"e u2o3e: a,re$a i! or-o3 opera-,a i a,re$a o,re,i.ta* M A00 ,e$tI $r:: MO,e$tP L MO,e$tP N MO$r:P M MALT ,e$tI $r:: MO,e$tP L MO,e$tP M MO$r:P M MOFE ,e$tI $r:: MO,e$tP L MO$r:P /
Na"popu2ar-i"a %6a,re$-a ma.i-a "e mikropro:e$or Motoro2a 5/&&&* Prim"er , oa,re$-e i-$truk:i"e !a o u ar?itekturu "e $ub*2 #A)(I#A%( I ko"a o,u!ima ri"e,-o$t -a a,re$i -a ko"u poka!u"e re3i$tar A) o, ri"e,-o$ti -a a,re$i ko"u poka!u"e A% i re!u2tat $m"e.ta -a a,re$u -a ko"u poka!u"e A%*
Na"popu2ar-i"i pro:e$or i! o e kate3ori"e "e Mo$ te:?-o2o3Q 54&%I ko"i "e u3raBi a- u ra8u-are App2e II i Commo,ore 5+* Prim"er i-$truk:i"e -a o om mikropro:e$oru "e L0A )&&& ko"a pre-o$i ri"e,-o$t $ 2oka:i"e )&&& u akumu2ator*
$pe:i"a2-e opera:i"e PASH i POP* Ma2i ,io $teka "e u-utar pro:e$oraI o$tatak "e u memori"i* O aka ko-:ept ima matemati8ki kopro:e$or /&/9I ,o pro:e$ora +/5 pra 2"e- kao po$eba- 8ip* @ro" ba"to a -a $teku #,ubi-a $teka( uti8u -a ri"eme i! r.e-"a pro3rama* E o -eki? i-$truk:i"a ?ipoteti8ke & a,re$-e ma.i-e* M A00: pu$? # pop N pop ( M MALT: pu$? # pop N pop ( M PASH a,,r: pu$? # MOa,,rP ( M POP a,,r: MOa,,rP L pop Poka!ae $e kako $e mo3u kori$titi 3or-"e i-$truk:i"e ,a $e i!ra8u-a -are,ba a L a M b N : M , M e* Pretpo$ta 2"a $e ,a $e ari"ab2e aI bI :I ,I e -a2a!e -a memori"$kim 2oka:i"ama )&&I )&+I )&/I ))%I i ))5I re$pekti -o* PASH )&& PASH )&+ MALT PASH )&/ PASH ))% MALT PASH ))5 MALT A00 POP )&& Ka Ka b K #a M b( K #a M b( : K #a M b( : , K #a M b( #: M ,( K #a M b( #: M ,( e K #a M b( #: M , M e( K #a M b N : M , M e(
AL
A !a.tie-om re7imuI $ akom $e3me-tu "e pri,ru7e- e2eme-t ,e$kriptor$ke tabe2e* Ta" e2eme-t ima $ e i->orma:i"e potreb-e $i$temu ,a !-a o $e3me-tu* I->orma:i"e uk2"u8u"u: ,a 2i "e tre-ut-o u memori"iI ako "e$te Y 3,"e "eI ko"a $u pra a -a, ,atim $e3me-tom #-pr $amo !a 8ita-"e(* Re,-i bro" e2eme-ta $e3me-ta "e ri"e,-o$t $e2ektora $m"e.te-a u $e3me-t-im re3i$trima* Ma-a )56bit-o3 !a.tie-o3 re7ima "e ,a $u memori"$ke po!i:i"e i ,a2"e )5 bit-e ri"e,-o$ti* Kao po$2"e,i:a o o3aI e2i8i-a $e3me-ata "e 2imitira-a -a -a" i.e 5+ ki2oba"ta* To 8i-i prob2emati8-om upotrebu e2iki? -i!o a*
)1