Professional Documents
Culture Documents
Kompjuterët II
Kompjuterët II
Kompjuterët II
Kaçanik
KOMPJUTERËT II
2003/2004
Kaçanik
1.1. Magjistralja
Arkitektura e kompjuterit
Arkitektura e kompjuterit përshkruan strukturën e tij, funksionimin intern cili
përfshin bashkësinë e regjistrave, kujtesën operative, bashkësinë e instruksioneve dhe
mënyrat e adresimit të operandve dhe formateve të të dhënave, organizimit të hyrje/ daljeve.
Për realizim të sistemit kompjuterit bashkëkohor përdoren dy principet në si në
vazhdim:
-organizimi modular (organizimi me module) dhe
-lidhja e moduleve me ndihmën e magjistrales
Principi i organizimit modular ose principi modular konsiston në ndërtimin e
sistemeve kompjuterike dhe kontrollues në bazë të bashkësisë së moduleve. Me modul
(bllok) nënkuptohet komponenta e cila paraqet konstruksionin dhe mjedisin elektrik të
pajisjes llogaritare dhe kontrolluese, e aftë që si e pavarur ose në lidhje me modulet të
tjerët të zgjidhë detyra të caktuara.
Shembull: Modul karakteristik te kompjuterët PC është e ashtuquajtura video-
kartelë, pllakë elektronike që shërben për administrimin e ekranit dhe shfaqjen e të dhënave
në te.
Principi modular në punën e kompjuterit, posaçërisht e te kompjuterët PC dhe
mikrro, mundëson që prej moduleve të ndryshëm të ndërtohet e tërë familja e kompjuterit
të cilat ndërmjet veti dallohen sipas funksionit dhe karakteristikave të tjera. Me këtë
mundësohet rritja shkallë shkallë e mundësive llogaritëse, si dhe përmirësimin e sistemit
kur dhe për te paraqitet nevoja. Këtu si modul trajtohen dhe pajisje të veçanta periferike të
kyçura në sistemin kompjuterik
Lidhja me ndihmën e magjistrales
Mund ti dallojmë dy principe të lidhjes së moduleve ose pjesëve funksionale të
sistemit:
-principi i lidhjeve direkte kur bëhet lidhja e secilit modul me secilin dhe
-principin me magjistrale, e cila përdor të njejtën bashkësi sinjalesh për lidhje të
moduleve, me çka minimizohet numri i lidhjeve ndërmjet moduleve(blloqeve).
Kaçanik
Kaçanik
Magjistralja e përbashkët
Magistralja e kontrollave
Magistralja e të dhënave
Magistralja e adresave
Interfejsi
Procesori Kujtesa Interfejsi
Qendror operative ... kontrolleri i
kontrolleri i periferive periferive
Pajisja periferike
Pajisja periferike
Magjistralja e adresave
Linjat e adresave përdoren dhe për emërtimin (tregimin-shënimin) e burimit të të
dhënave ose destinimin. magjistralja e adresave mundëson që secilës qelizë të kujtesës,
secilit port hyrës dalës dhe resurseve të tjera interfejse t’ju ndaj adresat e veta. Gjerësia e
magjistrales së adresave përcakton kapacitetin e mundshëm maksimal të kujtesës së sistemit.
Magjistrale më e vogël e adresave është 16 bit, çka mundëson brez adresimi prej 0 deri
65536. megjithatë, procesorët bashkëkohor kërkojnë kujtesë operative me vëllim dukshëm
më të madh, për këtë arsye magjistralja e adresave ka 20, 24, 32,36dhe bile edhe 64 linja
adresave. Momentalisht po përdoren edhe magjistrale të adresave prej 128 Bit.
Te dhënat për adresë (sinjalet në linjat e adresave ) zakonisht viejn prej regjistrave
kontrollues (punues) të procesorit qendror, ndërsa formohen në njësi aritmetike te
adresave. Këto janë të thjeshta dhe qohen nga procesori në periferi.
Magjistralja e të dhënave
Magjistralja e të dhënave siguron rrugën për transmetim e të dhënave ndërmjet
moduleve te sistemit. Përmban linjat të cilat bartin bitët e të dhënave në njërën ose në
drejtimin tjetër. Numri i linjave me të dhëna është 8, 16 , 32 dhe 64, dhe shërbejnë për
bartje ndërmjet pajisjes dhënëse marrëse. Për qëllime mbrojtje të procesorit lypset ndarë
magjistralen e brendshme të të dhënave me magjistralen e jashtme të të dhënave në të cilën
Kaçanik
kyçet kujtesa operative dhe pajisjet periferike. Për këtë përdoret magjistralja bafër e të
dhënave, e cila paraqet qark me tri gjendje. Ky është një qark i domosdoshëm edhe kur
daljet e dy moduleve të ndryshëm duhet lidhur me hyrjen e një moduli të tret pasi lidhja
direkt elektrike e dy daljeve pengon dhe mund ti dëmtoj qarqet dalëse.
Magjistralja e kontrollit
Magjistralen e kontrollit e përbëjnë linjat të cilat përdoren për kontrollim të qasjeve
në linjat e shfrytëzuara për të dhëna dhe adresues. Sinjalet kontrollues shërbejnë për
komunikim të njësive funksionale (moduleve) të kyçur në magjistrale ashtu që bartin sinjale
komandues të cilët specifikojnë operacione të cilat duhet të kryhen, dhe gjithashtu, takt
informacionet (sinkronizimi) ndërmjet këtyre moduleve. Shumica e sinjaleve kontrolluse
formohen në procesor ose iu duhen procesorit qendror, ashtu që në magjistralen e kontrollit
ka sinjale kah procesori dhe sinjale nga procesori.
Shembull: sinjale karakteristik kontrollues janë:
-Sinjalet hyrëse për kërkesë për ndërprerje ose për lirim të magjistrales për qëllim të
qasjes direkt në kujtesë,
-sinjalet sinkronizues,
-sinjalet të cilët definojnë se a iu qaset kujtesës apo pajisjes hyrëse /dalëse,
-sinjalet që sjellin mikrroprocesorin në gjendjen fillestare,
-sinjalet mbi gjendjen e procesorit etj.
Administrimi i magjistrales
Kur në magjistrale kyçen më shumë module, është e nevojshme të ekzistoj një
bllok funksional për kontrollim(menaxhim) të magjistrales, pasi më shumë se një modul
mund ta kërkojnë në shfrytëzim magjistralen. Ky bllok quhet kontrollor i magjistrales ose
adapter i magjistrales. Ky mund të jetë modul i posaçëm ose pjesë e procesorit qendror.
Qëllimi është përcaktimi i një moduli, qoftë në procesorin qendror qoftë modul hyrës –
dalës, si udhëheqës (kryesor). Moduli udhëheqës mundet më pas të inicion bartjen e të
dhënave në ndonjë modul tjetër i cili vepron si përcjellës për këmbimin konkret.
Që njëri modul ti transferoj të dhëna modulit tjetër ai duhet të bëjë si në vijim:
-ta merr magjistralen në shfrytëzim,
-të transferoj të dhëna nëpër magjistrale.
Nëse ndonjë moduli iu duhen të dhënat nga një modul tjetër ai duhet :
-ta merr magjistralen në shfrytëzim,
-t’ia bart kërkesat modulit tjetër, dhe më pas të presë që nga moduli i kërkuar t’ju
dërgohen të dhënat e kërkuara
Administrimi i magjistrales mund të jetë i centralizuar ose i decentralizuar. Te rasti i
parë bartjen e të dhënave nëpër magjistrale e menaxhon kontrolleri i magjistrales. Te ky rast
Kaçanik
Interfejsi
Kaçanik
Magjistralja e përbashkët
Magjistralja e hyrje-daljeve
Interfejsi Interfejsi
...
Kontrilleri i periferive Kontrilleri i
periferive
Kaçanik
Moduli i
Moduli i Kujtesës
Kujtesës . . .
Magjistralja e kujtesës
Magjistralja e hyrje-daljeve
Interfejsi Interfejsi
. . .
kontrilleri i periferive kontrilleri i
periferive
Kaçanik
Magjistralja e sistemit
Kujtesa e ndarë
Kaçanik
Kujtsa distrib-utive
Kujtsa distrib-utive Kujtsa distrib-utive
. . .
Rrjeta ndërlidhse
(të dhënat barten me dërgimin e mesazheve )
Fig 1.5 Multiprocesori me kujtesë distributive
Për qasje në kujtesën jashtë asaj të vetes operative elementi procesorik përdor
transferin e mesazheve, proces i ngjajshëm te bartja paket të rrjetave komunikuse për bartje
të të dhënave. Me këtë zvoglohet trafiku në magjistrale, dhe është e mundshme të lidhen
një numër i madhë të elementve procesorik. Megjithatë, programimi i të gjitha sistemeve
është i vështirë. Pos kësaj sinkronizimi i të dhënave ndërmjet detyrave distributive bëhet
problematik, posaqërisht kur mesazhi duhet në shumë hapa të arrijë deri te elementi
procesorik përkatës.
Kaçanik
Kujtsa distrib-utive
Kujtsa distrib-utive Kujtsa distrib-utive
...
Kaçanik
Kaçanik
Kaçanik
Regjime pune
-përpunimi njëprogramësh (përpunimi monoprogram)
-përpunimi shumëprogramësh (përpunimi multiprogram)
-përpunimi paralel (multiprocesipërpunimi )
Fig 2.2 Regjimet themelore të sistemit kompjuterik
Kaçanik
Kujtesa operative
Kujtesa e jashtme
Të Programi
Të Programi
Të Programi Programi 1
Dhanat Dhënat Dhënat
4 Të dhënat 1
3 2
4 3 2
Programi nga paketi i cili ekzekutohet
Procesori qendror
Kaçanik
Kujtesa operative
Sitemi operativ Programi 1
Të dhënat 1
Procesori Programi 2
qendror
Të dhënat 2 Programi 3
Të dhënat 3
Kaçanik
Kaçanik
Përpunimi në largësi
Nëse për qasje në kompjuter përdoren hyrjet daljet e largëta, atëhere flitet për
përpunim në largësi Në procesor përmes linjave telekomunikuse janë të lidhur një numër i
madhë i terminaleve të largëta, kompjuteri personal ose stacione punuese të cilët shërbehen
në regjimin e punës multi-program. me ndërmjetësim të modemit ose koncetratorit nga
pajisja e largët iu dërgohen kompjuterit komanda dhe të dhëna, dhe në bazë të komandave
të pranuara dhe të dhënave kompjuteri kthen rezulltatet dalëse(fig 2.5)
Shembull tipik i përpurpunimit në largsi paraqet sistemi që aplikohet në banka.
Përparsi e këtijë sistemi është pos mundësisë të bartjes së shpejt të dhënave që ndodhin në
filijalla deri te kompjuteri, është dhe ajo se filijalla ka qasje në të dhënat të cilat ruhen në
bazën e të dhënave të kompjuterit me çka sigurohet shumë shpejt qasja në to. Në të vërtet,
këtu tentohet futja e kompjuterve qendror sa më të fort të cilët duhet të jenë të aftë të
përpunjnë të dhëna në domene shumë të mdha.
Kaçanik
..... modem
modem
modem
terminal
Përpunimi distributiv
Përpunimi distributiv ose i shpërndarë bazohet në, faktin se disa funksione të
përpunimit më mirë është bëhen të lokalizuara dhe disa të centralizuara. Përpunimi i
distribuiruar zgjeron principin e përpunimit në largësi duke i vendosur kompjuterët në pika
të largëta dhe lidhjen e tyre jo vetëm me kompjuterin qendror por dhe ndërmjet veti, si dhe
rrjetat lokale kompjuterike kjo mënyrë e përpunimit është bërë e realizueshme.
Përpunimi disributiv nënkupton vendosja e pajisjes kompjuterike për përpunim lokal
në pika të largta. Kjo pajisje përdoret për përpunim në vendin e ndodhjes së ndryshimit. Kur
nevojitet, është e mundshme qasja e bazave qendrore të të dhënave në kompjuterin qendror
ose me dërgimin e raporteve sumarizuese. Krahas kësaj, me lidhje ndërmjet kompjuterve,
p.sh me rastin e vendosjes së kompjuterve nëpër fabrika, mundsohet kordinimi të
aktiviteteve prodhuese, planifikimi i prodhimit, mbatja e pjesëve optimale rezervë e të
ngjajshme.
Në ratin më të përgjithshëm përpunim konsiderohet me distribuim ose shpërndarje
nëse shumë sisteme në të cilin janë të lidhur më shumë kompjuter të pavarur ndërmjet veti të
cilët munden të komunikojn. Këto janë sisteme kompjuterike distributive.
Në secilin kompjuter të sistemit distributiv bëhet përpunimi lokal, ndërsa përmes
rrjetave kompjuterike lokale ose linjave telekomunikuse ndërmjet veti shkëmbehen të
dhënat të cilat ndikojn në përpunimin e shumë kompjuterve.
Kaçanik
Nëse është numër i madhë i terminaleve dhe kompjuterët janë të lidhur në me kanale
telekomunikuse, atëhere këto e përbëjnë sistemin i cili quhet rrjeta kompjuterike.
Përpunimi në rrjetën kompjuterike paraqet zgjerimin e konceptit të përpunimit distributiv.
Përdorimi i konfigurimev të ndryshme të rrjetave lokale është shumë i përshtashëm për
përpunim distributiv.
Sistemi i cili përmban një numër të madhë të procesorve të cilit marrin pjesë në
zgjidhjen e të një problemi të vetëm quhet sistem kompjuterik shumëprocesorik,
multiprocesor ose kompjuter paralel. Në këtë rast sistemet shumë procesorik nuk
konsiderohen sistemet të cilët procesorët plotësues shërbejnë vetëm për ndimë, të themi
për aktiveteve të telekomunikimit të hyrje daljeve. Përpunimi te këto sisteme quhet
përpunim paralel ose multiprocesim.
Kaçanik
3. Kujtesa (memoria)
3. 1. Nocione të përgjithshme
Kujtesën ose sistemin e kujtesës e përbëjn pajisjet të cilat sigurojnë shkrimin
(regjistrimin) e të dhënave binare. Kujtesa shërben për regjisrimin (pranimin), ruatjen
(depozitimin, memorizimin ), dhe leximin (dhënien) e të të dhënave dhe programit.
Operacioni i leximit dhe opeacioni i shkrimit quhen dhe qasje në kujtesë. Secili sistem
i kujtesës i cilit do tipi qoft përmban mediumin e kujtesës në të cilin ruhen të dhënat, si
dhe blloqeve kontrolluese(drejtues) elektronike dhe blloqeve programues.
Për kujtes të kompjuterit përdoren tipe me brez të gjerë, teknologji,
organizimesh dhe çmimiesh. Asnjëra teknologji nuk është optimale në përmbushjen e
kërkesave për sistemin e kujtesës së kompjuterit Si pasoj e kësaj secili sistem
kompjuterik posedon hierarkin e nënsistemeve të kujtesave, ku ndonjërës procesori iu
qaset direkt, ndërsa të tjerave përmes moduleve të hyrje –daljeve.
Mediumi i kujtesës
Për përpunim të të dhënave në kompjuter, d.m.th. për futjen e tyre në kompjuter
ose daljen e tyre nga kompjuteri, si dhe për bartjen në largësi të dhënat ruhen
(regjistrohen, depozitohen) në bartës të posaqëm material –medium kujtese ose bartës
të të dhënave. Mediumi i kujtesës paraqet material ose konfiguracion i përbër prej tijë, te
i cili ndonjë madhësi fizike variabile përdoret për regjistrimin e të dhënave. Shemmbull:
mediume janë:shiriti magnetik, disqet magnetike, disqet optike, qarqet elektronike
bistabile etj.
Në të gjitha sistemet e kujtesë të cilët përdoren në ditët e sotme, në mediumet e
kujtesës ruhen (depozitohet) energjia në ndonjën sasi diskrete, siç janë p.sh momenti
magnetik, rryma, elektrizimi, rrugët përquese etj. Që një medium të mund të
përdoret për ruatje të dhënave duhet të posedoj:
a) dy gjendje stabile, me të cilat prezentohen vlerat binare “0” dhe “1”
b) nundsin e shkrimit me kalim në gjendje të caktuar,
c) mundësin e zbulimit (leximit) të gjendjes
Ndarja e kujtesës
Kujtesa e kompjuterit përbëhet prej kujtesës operative (kryesore,prunuse) dhe
kujtesës së jashtme (masovike).
Kaçanik
Kujtesa operative shërben për ruatjen e përkohshme të dhënave dhe programit, dhe
është e përbër prej elementeve bistabile kujtese. Krahas të dhënave për përpunim (të
dhënave hyrëse ) dhe të dhënave të cilat definojnë hapat(procesurën) e përpunimit
(instruksionet e programit), në kujtesën operative gjithashtu ruhen mesërezulltatet dhe
rezulltatet përfundimtare të përpunimit. Kujtesa operative i takon kujtesës interne të
kompjuterit, ku i takojn dhe kujtesa e regjistrave dhe regjistrat kontrollues(të kontrollit)
të procesorit
Kujtesa operative shesh përbëhet prej më shumë module kujtesash., në këtë rast
secili prej tyre mund të bëjë në të njetën kohë një qasje kujtese dhe përbën një nënbashksi
të hapsirës totale të adresave. Modulet e kujtesave janë të organizuar në banka kujtesash,
të përbërër prej më shumë module të cilët ndajnë të njejtën magjistrale hyrëse dhe dalëse.
Sipas kësaj në secilën bankë kujtese vetëm njëri modul mund të filloj ose të përfundoj
operacionin e kujtesës në cilën do rrjedhë të ciklit (ciklusit) të magjistrales.
Kujtesa e jashtme (masovike, sekundare, ndimëse) ka kapacitet të madh dhe
shërben për ruatje të të dhënave me vëllim më të madh dhe të arkivimit të tyre për një
period më të gjatë kohore, dhe dukshëm është më e ngadalshme se kujtesa operative.
Kaçanik
6. çmimi për një bit kujtese- raporti i çmimit total të kujtesës për nga kapaciteti i
kujtesës.
Kaçanik
Të Dhënat Të dhënat
Kontrollat
Të dhënat
Mediumi i kujtesës
Hierarkitë e kujtesave
Shumica e kompjuterve punojnë shumë më efikas nëse pos kujtesës operative
(krysore) përdorin dhe kujtesën e jashtme (masovike). Ku në kujtesën operative
ndodhen të dhënat dhe programi të cilat proceori i përdorë në çastin e dhënë. Të gjitha të
Kaçanik
dhënat e tjera ruhen në kujtesën e jashtme dhe barten në kujtesën operative kur të jenë të
nevojshme.
Kërkesat për kapacitet dhe qasje më të shpejt në kujtesë janë kontraditore, për
arsyse nëse shpejtësia është më e madhe, atëhere gjithashtu dhe teknika është më e
vështirë dhe më e shtrejtë që të arrihet rritja e kapacitetit të kujtesës.
Nëse kujtesa në disponim mund të konsiderohet si një sistem hierarkikë i
komponenenteve të të gjithë pajisjeve për ruatje të të dhënave të cilat i përdor sistemi
kompjuterik. Nga kjo kujtesa e kompjuterit organizohet në strukturë hierarkike të
kujtesave të pajisjeve të cilat në nivele të veçanta kan shpejtësia dhe kapacitete të
ndryshme(fig 3.2)
Procesori
Kujtesa - Kujtesa Kujtesa-kesh Kujtesa e
Regjistrat
Kesh Operativ e diskut Jashtme
e
qenror
Fig 3.2 Hierarkia e kujtesave.
Error: Reference source not found
Kaçanik
ato futen nga kesh-kujtesa e diskut ose nga kujtesa e jashtme. Kesh-kujtesa e diskut
shërben për rritjen e shpejtësisë së përpunimit përmes së cilës të instruksionet aktuale dhe
të dhënat aktuale mund të barten nëprocesorin qendror me shpejtësi të madhe. Me këtë
kompenzohet dallimi dhe shpejtësia e punës së procesorit dhe koha e qasjes së kujtesës
operative, pasi koha për qasje në kesh-kujtesë është përafërsisht e barabart me shpejtësin
e punës së procesorit. Kujtesën regjistrash e përbëjn bashkësi e regjistrave në procesor
ose fushë e posaqme regjistrash (Matricë regjistrash), të cilët shërbejn parasëgjithash për
ruatjen e përkohshme të operandve dhe mesërezulltateve.
Hiarakia që u spjegua përdoret te organizimi optimal të ndërlidhjeve të kujtesave
me nivele të ndryshme në Hierarki. Megjithat, hierarkia e kujtesave mundet kushtimisht
të konsiderohet dhe për klasë më të gjera të kujtesës. (fig 3.3)
Kujtesa kesh(cache)
Kujtesa RAM
Çmimi për MB
Kujtesa Disk- kesh
Disku i ngurtë
i vogël
Disku i CD-ROM-it, Disku MO
e gjatë
E
rror: Reference source not found
Arsyja e futjes së hierarkis së kujtesave është parasëgjish ajo ekonomike. Sipas
kësaj, çmimi i llogaritur për një bit është në proporcion të zhdrejt me nivelin e kujtesës
në hierarki. Pra do të ishte shtrenjtë që të gjitha programet dhe të dhënat të ruhen në
kujtesën opeative, e posaqërisht nëse nuk janë të domosdoshme për procesorin.
Pjesa e sistemit operativë e cila kontrollon rrjedhën e të dhënave ndërmjet të
gjitha pajisjeve kujtesash quhet sistem menaxhues i kujtesave(ang.memory
mangement). Ky shpërndan programet dhe të dhënat ndërmjet nivele të ndryshme
kujtesash në përputhje frekventimin e pritshëm të përdorimit të tyre.
Kaçanik
3. 4. Kujtesë regjistrash
Procesori qendror krahas shumë regjistrave kontrollues (pune), siç janë
akumulatori, numruesi i instruksioneve, regjistri i instruksionit etj., përmban dhe
kujtesën me kapacitet relativisht të vogël e cila quhet dhe kujtesë regjistrash. Kujtesa
regjistrash paraqet bashkësia e regjistrave në procesor të cilët quhen regjistre për qëllime
të përgjithshme ose fusha regjistrash. Këto regjistra përdoren për qëllime të ndryshme,
dhe parasëgjithash për ruajtje të përkohshme të operandve, mesrezulltateve,
komponenteve të adresave etj. Këto regjistre punojnë me shpejtësin e procesorit qendror,
kështu operacionet mbi të dhënat të cilat vendosen në regjistra ekzekutohen me shpejtësin
punuse të procesorit. Për këtë arsye të gjithë procesorët e rinjë përmbajn disa dhjetra
madje dhe disa qindra regjistra për qëllime të përgjithshme të cilët organizohen si të
ashtuquajtërn matricë regjistrash ose fusha të regjistrave (register file –depo(magazinë
regjistrash ). Regjistrave për qëllime të përgjithshme iu ndahen adresat për qëllim
identifikimi dhe iu qaset në të njëjten mënyrë si dhe lokacioneve të kujtesave operative.
Shpejtësia e kujesës regjistra është e barabartë me shpejtësin e procesorit qendror,
afërsisht dyherë më e madhe se shpejtësia e kujtesës kesh dhe dhjetë herë më e madhe se
shpejtësia e kujtesës operative.
Kujtesa regjistrash ka rol shumë të randësishëm në arkitekturat e reja të
procesorve në të cilët kërkohet shpejtësi e madhe e ekzekutimit të operacioneve. Ky
është rast special te procesori me struktur të reduktuar të instruksioneve e ashtuqujtura
arkitektura RISC. Në këto raste kërkohet që të dhënat dhe instruksionet për të cilat pritet
që të jenë të nevojshme për procesorin qendror, si dhe mesrezulltatet e operacioneve, të
ruhen në kujtesën regjistra ose në një ose më shumë kujtesa kesh.
3. 5. Kujtesa stek
Kujtesa Stek ose kujtesa magazinë është kujtesë regjistrash pa adresë me qasje
sekuenciale. Te këto kujtesa regjistrat formojnë një varg njëdimenzional në të cilin
regjistrat janë të lidhur me qarqe për bartje paralele të fjalëve binare kështu që në to
shkrimi ose leximi kryhet sipas principit “i shkruari i fundit-i lexuari i parë”(Ang.
LIFO-Last in-First out). Ky princip mund të krahasohet me mënyrën e përdorimit të
korpës në dyqanet vetëshërbim ose tabaka (tablla) në restoranet ekspres. Me fjalë të tjera
nëse një varg të dhënash regjistrohen(shkruhen) në stek, atëhere me rastin e leximit
renditja e tyre do të jetë e kundërt.
Shkrimi në stek ose leximi nga steku bëhet vetëm në një vend, në qelizën e
sipërme e cila quhet koka e stekut Për këtë arsye me rastin e përdorimit të stekut nuk ka
nevoj me dhënë adresën, pasi të dhënat duhet të shkruhen dhe lexohen me rendin e
caktuar përmes kokës së stekut. Me rastin e shkrimit të të dhënave në stek përmbatja e të
gjitha regjistrave zhvendoset në qelit fqinje për një vend “më poshtë”., ndërsa me rastin
e leximit zhvendosen për një vend “më lartë” (fig 5. 4a) Operacioni i shkrimit në stek
quhet PUSH(ang PUSH-futja ose vendosja në stek ), ndërsa operacioni i leximit nga
steku quhet POP(ang POP – marrja, largimi nga steku ).
Kaçanik
Koka e stekut
Pjesa e
Treguesi i Plotësuar
stekut e stekut
Leximi
Kufijt
a) stek (stack) b) Stack pointer e
varg(rend,rradhë) (SP) stekut
Ang. Queue
c) realizimi i stekut
Kaçanik
3. 6. Kujtesa operative
Kujtesa operative, kujtesa kryesore ose kujtesa me qasje direkte (ang RAM-
Random access Memory –kujtesë e qasjes (zgjedhjes, kapjes) së rastit – kujtesë me
qasje të arbitrare ) është kujtes e adresave e cila përdoret për ruajtje të të dhënave të cilat
përdoren në procesin e ekzekutimit të operacioneve të makinës në njësin aritmetiko-
logjike dhe njësin kontrolluese të procesorit. Këto janë të dhënat hyrëse për përpunim,
mesrezulltatet dhe rezulltatet përfundimtare për përpunim dhe instruksione të programit
të cilët ekzekutohen..
Në procesin e përpunimit realizohet komunikimi i përheshëm ndërmjet procesorit
qendor dhe kujtesës operative. Nga kujtesa operative në procesor barten instruksionet e
programit dhe operandët mbi të cilët zbatohen (kryhen) operacionet e parapara me
instruksinet e programit, ndërsa nga procesori në kujtesën operative dërgohen për ruajtje
të mesrezulltateve dhe rezulltati përfundimtar i përpunimit.
Sruktura tipike e kujtesës me qasje direkte është treguar në fig. 3.5. Kujtesa me
qasje direkte përbëhet prej lokacioneve të kujtesës të realizuar me qarqe bistabile dhe
rrjetave ndërprese përkatës të cilat sigurojn shkruarje dhe lixim të të dhënave. Në kujtesë
të dhënat binare ruhen në formë të grup bitave të cilat quhen fjalë kujtese. Secila fjalë
ruhet në lokacion të posaqëm ndërsa lexohet ose shkruhet si tërsi. Secila fjalë kujtese
mund të paraqet të dhëna numra, të dhëna alfanumerike, kod instruksioni dhe cilin do
kod tjetër binar.
Kaçanik
Regjistri i të dhënave
Lokacionet
Amplifikatorët dalës
Logjika Takt
për
Shkrim/ sinjali Regjistri pranues
lexim
Menagjuesi i
shkrimit /leximit
Kaçanik
Shënimi simbolik
Për shenimin e lokacioneve të kujtesës ose të blloqeve të kujtesës (zona me
loacione suksesive të kujtesës ) përdoren emra simbolik çka dhe është e rëndësishme te
programimi në asambler.
Nëse M është identifikator i kujtesës ose i modulit të saj, atëhere :
-M[ad] paraqet lokacionin e adresës adresa e së cilës është ad (-nganjëher ky
simbol përdoret për shenimin e përmbatjes së lokacionit të kujtesë adresa e së cilës është
ad, kur kjo nuk shkakton huti);
-R paraqet emrin simbolik të ndonjë regjistri të procesorit;
-M[ad[i]], R[i] paraqet vlerën e pozicionit binar dhe lokacionin e kujtesës adresa
e së cilës është ad, rrespektivisht regjistrit R;
- M[ad[8:5]], R[8:5] paraqet fushat (grupën e bitave) në pozicionet (klasët 8,
7, 6 dhe 5);
- M[ad] ose R[ad], R ose (R ) paraqet të dhënën që ndodhet në lokacionin e
kujtesës adresa e së cilës është ad rrespektivisht të dhënës në regjistrin R;
- M[ad]:=nen (ose (M[ad]):=nen ); M[ad]nen (ose(M[ad])nen) tregon
qasje në kujtesë dhe shkrimin e të dhënave nen në lokacionin ad të kujtesës;
- R:=M[ad] (ose (R) :=M[ad] ) tregon shkrimin në regjistrin R përmbatjen e
lokacionit të kujtesës adresa e së cilës është ad.
Segmentimi i kujtesës
Segment paraqet grupa e lokacioneve sukseksesive të kujtsës të madhësisë deri 64K
ose(64X1024=65535(FFFFH ku H-heksadecimal) (te mikrroprocesori i8086). Segmentet
përdoren që të arrihet zgjerimi i hapsirës totale të kujtesës. Nga kjo te ky mikrroprocesor
ekzistojnë 16 linja adresuese, çka d.m.th. se në këto linja mund të adresohen vetëm 64K
lokacione. Pasi kujtesa operative është e kapacitetit 1 M lokacione e më tepër është futur
segmentimi i saj.
Te mikrroprocesori i8086 për të specifikuar adresën e kujtesës nevojiten dy numra:
adresa fillestare e segmentit dhe zhvendosja (ang. Offset), ku zhvendosja paraqet largësin
relative (adresën relative) të lokacionit të kujtesës nga fillimi i segmentit. Në procesor ekzistojnë
katër regjistra të posaqëm të cilët quhen regjistra segmentues dhe shërbejn për adresim të
segmenteve në kujtesën operative. Këto janë (fig.3.6):
-regjistri i segmentit të programit (kodit të programit, ang CS-Code Segment), shërben
për adresim të instruksioneve të programit të cilët ekzekutohen;
-regjistri i segmentit të dhënave (ang. DS- Data Segment), shërben për adresimin e të
dhënave për përpunim;
-regjistri i sgmentit të stekut ( kujtesës-stek, ang. SS-Stack Segment ), shërben për
adresim të stekut (kur punohet me te);
-regjistri i segmentit shtesë (ang. ES-Extra Segment) me të njetin rrol si dhe regjistri i
segmentit të të dhënave.
Kujtesat statike si elemente kujtese përdorin qarqe bistabile prej gjysëmpërquesve.
Shumica e këtyre kujtesave realizohen në teknologjinë MOS (MOS –metal –oxide-
semiconductor-Metal –oksid –gjysëmpërques).
Kaçanik
Segmentet në kujtesën operative mund të jenë njëri pran tjetrit (përputhen ), por por
mund të përmbajnë dhe lokacione plotësisht të ndryeshëm të kujtesës operative, çka dhe është
rasti më i shpesht.
Kaçanik
CS
DS
SS
ES
Kaçanik
15
0 3 0
Adresa e
Tregues i segmentit (segment pointer) 0000 segmentit
15 0
Zhvendosja
Adresa e fjalës (Word address) (offset)
Mbledhsi i adresave
19 0
Kaçanik
Code segment
B3FF
Data segment
E000
Stack segment
5D27
Extra segment
52B9
Fig. Hapsira e plotë e kujtesës prej 1M te 8086 është e qasshme në segmente prej 64K byte. V
Kaçanik
Katër segmente 64K mund të vendosen mbrenda hapsirës së kujtesë prej 1MB
por por duhet të fillojnë në ndonjërën adresë të plotëpjestueshme me 16( pasi katër bitat
e ultë duhen të jenë zerro). Sikur që është ilustruar në fig , lokacionet e segmenteve mund
të jenë të çafrdo renditje, përfshirë ndarjen e tyre , të përpushëm(overlapping)
pjesërisisht, dhe të përpushëm plotësisht.
Pasi te segmentimi i kujtesës ekzistojnë dy tipe të adresave të kujtesë të
shoqëruara me secilin program, këto quhen adresa logjike (Logical addres) dhe adresa
fizike ( physical address). Adresa logjike i takon rangut prej 0 deri 65535 (FFFFh) dhe
korrespondon në 64 K lokacione mbrenda një segmenti. Kur zhvilohet një program i
vogël këto janë adresat që programeri duhet të mbanë llogari
Adresa fizike korrespondonë në adresat në daljet aktuale të adresave të 8086 në
linjat adresuese AD0 –AD19. Kjo adresë formohet me kombinimin e adresës logjike aq
sa një zhvendosje(offset) në segment adresues bazë(to the base segment address)
Shembull:
Nëse regjistri SI=0005H, çfarë lokacioni i kujtesës do tj’u shoqërohet string-ut
burim (string source) siç është përdorur definimi i segmenteve të terguar në fig e
mësipërme
Zgjidhje:
Opracionet string punojnë mbi të dhënat në në segmentin e të dhënave(data
segment). Për të kalkualuar dresën e stringut, shtohet përmbatja e regjistrit SI në segment
register me katër 0 të bashkangjitura
DS E0000
+ 0005
E0005
Bajti i cili do të sjellet(fetch) nga adresa fizike E0005H.
Një regjistër segment është mbush(loaded) , programerit nuk i nevojiten se çbëhet
me adresat fizike. Në këtë shembull burimi i të dhënave duhet të kuptohet si
offset(zhvendosje) e 0005 lokacionit nga fillimi i segmetit të dhënave( data segment)
(kudo që të jenë në hapsirën e adresave fizike)
Instruksioni fetch punon në mënyrë të ngjajshme. Nëse regjistri IP=2600, duke
përdorur përmbatjen e regjistrit code segment nga fig e mësipërme , fetchi tjetër do të vie
nga
CS B3FF0
+ 2600
B65F0
Njëra prej përparsisve të konceptit të adresave logjike është se programi mundet
në mënyrë dinamike të riloncohet kudo brenda hapsirave të adrersave 1MB nga
procesori. Kjo është për atë se adresa logjike është gjithëmon e njetë, pra nuk është
çështeje adresës fizike. Kjo gjithashtu ka përparsi me rastin kur punohet me fajlla të
dhënash të mëdha ose me informacionet të ngjashme. E tërë grupa me të dhëna mund të
operohet në të njetin program tjeshtë duke ndryshuar përmbatjen e regjistrit data segment
për adresimin e ri me për të dhënat fajllit .
Kaçanik
Instruction fetch CS JO IP
( ngarkimi (mbushja )
Stack operation SS JO SP
Variable DS CS,ES, SS Adresa efektive
String(burim) DS CS, ES, SS SI
String (destination) ES JO DI
BP i përdorur si base SS CS, ES, SS Adresa efektive
register
Kujtesa ROM
Kujtesa ROM (kujtesa me përmbatje konstante, kujtesa fikse, kujtesa të ngrira
ose permanete, ang, ROM –Read –Only-Memory –Kujtesa e cila mundet vetëm të
lexohet) është kujtes me qasje direkte e cila mundëson(e lejon) vetëm leximin, ndërsa
shkrimi në te nuk është i mundur. Të dhënat binare shkruhen në kujtesë lexuese ose në
Kaçanik
u
D D
E E
k adresat k
adresat o o
d d
e e
r r
i i
Amplifikatorët
Amplifikatorët dalës
dalës
Linjat dalëse Linjat dalëse
Kujtesa ROM përdoret për programe dhe të dhëna të kompjuterit të cilat nuk
ndryshojnë shpesh, siç janë nënprogramet, të dhënat tabelore, konstantat, test
programet etj. Secili kompjuter ka së paku një kujetsë lexuese e cila përdoret për ta vu
në lëvizje ( ngritjen-inicimin e punës) kompjuterin me rastin e kyçjesë dhe për thirrjen
nga kujtesa e jashtme programet kryesor të sistemit operativ. p. sh. te kompjuterat
personal është realizuar në kujetsën lexuese programi BIOS (Basic input-Output sistem –
Sistemi themelor i hyrje-daljeve. ). BIOS paraqet sistemin themelor për futjen dhe
marrjen e të dhënave. Ka rrolin e programit inicializues me të cilin kompjuteri (ngritet)
vihet në lëvizje, por përmban dhe një bashkësi programesh të rëndsishëm për përkrahje
të komunikimeve me të gjitha njësit periferike si p. sh. leximi nga tastiera, shkrimi në
ekran, zhvendosja e përmbatjes së ekranit etj.
Ekzistojn katër tipe të kujtesave ROM. Më të thjeshtat janë kujtesat ROM në të
cilat të dhënat shkruhen përgjithmon në procesin e prodhimit të qarqeve të integruara
gjysëmpërquese. Kjo ka domethënjen se këto kujtesa ROM munden vetëm njëher të
programohen. Programimi bëhet përmes maskës speciale në fundë të procesit të
prodhimit të qarkut të integruar. Këso kujtesa ROM përdoren vetëm nëse prodhohen
masovisht, pasi pregaditja e maskës mjaft kushton.
Kaçanik
Kaçanik
3. 7. Kujtesa asociative
Në shumë detyra për përpunim të dhënave nevojitet të gjinden të dhënat në ndonjë
strukturë të të dhëna të vendosur në kujtesën operative. Procedura e kërkimit të elementit
konsiston me krahasimin e të dhënave të ruajtura me vlerën e dhënë derisa të mos vie deri
te përputhja. Në këtë rast numri i qasjeve kujtesës operative varet nga vendi i elementit të
kërkuar dhe algoritmit me të cilin bëhet kërkimi.
Kaçanik
të ketë vlerën 1 nëse biti hyrës i çelsit k dhe gjendja e elementit të kujtesës s kanë të
njejtën vlerë. Në këtë rast biti i maskës m definon se a duhet biti i çelsit të testohet
(shqyrtohet) në përputhje ose jo.
Principi i punës së kujtesës asociative është si në vazhdim(fig 3.10). Regjistri
maskës përmban vlerën 1 në ato pozicione të cilët përcaktojn pjesë të çelsit për krahasim
në përputhje. Çelsi nga regjistri çels krahasohet me përmbatjen të secilit lokacion të
kujtesës, nëse regjistri i maskës ka 1 në të gjitha pozicionet. Për ndryshe, në krahasi
marrin pjesë vetëm ato bite të çelsit për të cilët në pozicionet përkatëse të maskës është
shkruar vlera 1. Këtu maska është fjalë binare e cila përcakton se cilët bita të çelsit
krahasohen me përmbatjen e lokacioneve të kujtesës.
Përmbatja e regjistrit çels krahasohet me përmbatjen e të gjjitha lokacioneve të
kujtesës në vetëm një cikël të kujteses. Për secilin lokacion të kujtesës ekziston nga një
komperator dalja e të cilëve është e barabartë me1 nëse ekziston përputhje, d.m.th. nëse
fjala e kujtesës ka të njejtat bita si dhe bitet e definuara të çelsit. Të gjtha lokacionet e
tilla të shenuara në regjistrin e indikatorit të përputhjeve., i cili ka nga një bit për
secilin lokacion të kujtesës me vlerë 1. Pas krahasimit mundet që lokacioneve të kujtesës
për të cilët ekziston përputhja tju qaset për qëllim të leximit, ku në këtë rast tani kujtesa
asociative trajtohet si kujtesë me qasje direkte
Regjistër çels
Regjistër
maske
0
Dekoderi i adresave
Regjister pranues
Kaçanik
3. 8. Kujtesa kesh
Që të zvoglohet koha për qasje në të dhëna dhe instruksione në kujtesën operative
e procesorit qendror shtohet kujtesa kesh (kujtesa ultra e shpejt, kujtesa doracake )
shpejtësia e të cilës i përgjigjet shpejtësisë punuese të procesorit. Kujtesa kesh është
kujtesë e vogël ultra e shpejt gjysëmpërquese me qasje të drejtëpërdrejt. Në kujtesën-
kesh ruhen të dhëna dhe instruksione nga kujtesa operative të cilat procesori në atë çast i
përdor.
Kujtesa kesh rritë shpejtësin e përpunimit, pasi në te ndodhen të dhënat rrjedhëse
(aktuale) dhe instruksionet e rrjedhës së programit të cilave procesori iu qaset me
shpejtësi të madhe. Në këtë mënyrë kujtesa kesh kompenzon ndryshimin ndërmjet
shpejtësisë së punës së procesorit dhe kohës për qasje në kujtesën operative, e cila është
e madhsisë me rang më të madh (d.m.th. Dhjetë herë). Me këtë rritet produktiviteti i
procesorit.
Kujtesa kesh shërben për harmonizimin e shpejtësisë së procesorit dhe kujtesës
operative e cila është më e ngadalëshme se procesori për një rang të madhësisë (rrethë 10
herë). Kjo mundëson rritjen e shpejtësisë së përpunimit, pasi në te ndodhen të dhënat
aktuale dhe instruksionet aktuale të programit të cilat procesori i qaset dukshëm më
shpejt, me çka rritet produktiviteti i punës së procesorit, rrespektivisht koha e
ekzekutimit të programit. Qëllimi i një sistemi efikas të kujtesës është që me kohë të
efektshme t’ja qasë procesorit të dhënat dhe kjo kohë të jetë e përafërt me kohën e qasjes
në kujtesën-kesh.
Kujtesa-kesh përdoret në mënyrën si në vijim(fig 3.11). Kujtesa operative dhe
kujtesa-kesh janë të ndara në njësi të cilat quhen blloqe. Blloku( nganjëher quhet dhe
linjë) paraqet bashkësin e n lokacioneve suksesive (njëpasnjëshme) të kujetsës të cilat
gjithmon si një tërsi barten ndërmjet kujtesës operative dhe kujetsës kesh. Kjo ka
d.m.thënjen se të gjitha të dhënat (ose instruksionet) e ndonjë blloku në të njejtën kohë
ndodhen ose nuk ndodhen në kujtesën-kesh.
Njësia e bartjes ndërmjet procesorit qendror dhe kujtesës kesh është fjala fizike.
Ndërs njësia e bartjes ndërmjet kujtesës kesh dhe kujtesës operative është blloku.
Madhsia e bllokut zakonishtë është ndërmjet 4 dhe 128 bajta. Kapciteti i kujtesës kesh
është në brezin prej 1 deri 256 KB. Në fig 5. 6 tregohet principi i përdorimit të kujtesës
kesh. Numri i blloqeve të kujtesës operative është dukshëm më i madhë se numri i
blloqeve të kesh kujtesë, kështu që në të njejtin qast ndodhen kopje të vetëm të një
numri të vogël të blloqeve të kujtesës operative.
Kaçanik
Kaçanik
përshtatshme është nëse kujtes-kesh përdor kujtesën asociative në të cilën çelsi paraqet
adresën e bllokut të kujtesës ndërsa pjesa e informacionit të të dhënës nga kujtesa
operative. Për ndërrim të blloqeve ekzistojnë shumë strategji, por më së shpeshti ndrohet
blloku i shfrytëzuar më herët ose blloku më i gjatë prezent. Kur blloku në kujtesën kesh
modifikohet me shkrimin e të dhënës së re nga procesori, ekzistojn dy mënyra të cilat
përdoren për azhurimin e kujtesës operative: a) shkrimi i drejtëpërdrejt – në të njejtën
kohë të dhënat shkruhen në kujtesën kesh dhe kujtesën operative, b) shkrimi me
ndërmjetsim – edhëna shkruhet vetëm në blloku n-të të kujtesës kesh, ndërsa blloku i
modifikuar kthehtet në kujtesën operative vetëm atëhere kur të ndrrohet me bllokun
tjetër. Megjithat, këtu nevojitet për secilin bllok të futet nga një bit i cili mban mend
(ruan) se a është blloku i modifikuar apo jo.
Faktori kryesor përmes të cilit matet efikasiteti i kujtesës kesh quhet faktori i të
qëlluarit h, ky është gjasa se përmbatja e lokacinit të kujtesës të cilën e adreson
procesori, d.m.th. edhëna e kërkuar, ndodhet në kujtesën-kesh. Madhësia 1-h quhet
faktor i dështimit. Faktori i dështimit mat penalet për shkak të dështimeve kesh, pasi
procesori ndërpret aktivitetin kur të konstatoj dështimin kesh. Faktori i të qëlluarit është
gjithmon më i vogël se 1, ndërsa në praktikë realizohen vlera më të mëdha se 0.9.
Parametra të tjerë me rëndësi të kujtesës-kesh janë: Koha e qasjes, mbatja në dështim,
mbatja në azhurim të kujtesës operative etj.
Kaçanik
Kaçanik
3. 9 Kujtesa virtuale
Në kiearakinë e sistemit të kujtesave, programi dhe të dhënat së pari vendosen në
kujtesën e jashtme( sekundare). Fragmente programi dhe të dhënash barten në kujtesën
operative(primare), dhe vetëm atëhere kur t’ju duhen procesorit qendror, pasi kapaciteti
i kujtesës operative është dukshëm më ivogël se kapaciteti i kujtesës të jashtme. Sikurse
kutesën opretive ta zavendsonte kujtesa e jashtame do të fitojshim shpetësi të
pamjaftueshme për qasje, për shkak të ngadalësis të kujtesës të jashtme.
Faqet e kujtesës
E tërë hapsira adresave të kujtesës së jashtme(sekundare) është e ndarë në blloqe
nga një numër fiks i lokacioneve të cilët quhen faqe kujtese ose faqe. Faqja mund të
përmbajë prej 256 deri 1024 dhe më shumë fjal kujtese. Kujtesa primare (operative)
ndahet në grupe të lokacioneve suksesive të të njejtit vëllim e cila gjithashtu quhet faqe.
Pjesë programesh dhe të dhënave barten nga kujtesa e jashtme dhe anasjelltas, gjithmon
në vëllimin prej një faqe. Mardhënja e faqeve të kujtesës të jashtme dhe operative është
treguar në fig. 3.12
Kaçanik
Kujtesa e jashtme
Kujtesa operative
Program 1
Program 1
Të dhënat 1
Të dhënat 12
Të dhënat 1
Program 2
Program 21
Kaçanik
av avs ac
ap aps ac
a) formati i adresës virtuale primare
av avs ac
Tabela e pasqyrimit të
adresës viruele
ap aps ac
b)Përkthimi i adresës virtuale në adresë primare
Fig 3.13- Pasqyrimi i i adresave virtuele në adresa fizike.
Kaçanik
adresa e faqes primare. Në vend të tabelave të faqeve shumë më mirrë është të përdoret
kujtesa asociative nëse dhe kjo është edhe ekonomikisht e pranushme.
Kaçanik
Ndrrimi i i faqeve
Faqja është e nevojshme të ndrrohet nëse faqja me adresë virtuele të cilën e
kërkon procesori nuk ndodhet në kujtesën primare. Gjatë ndrrimit të faqes në kujtesën
sekundare (të jashtme) kthehet faqja e cila sipas ndonjë kriteriumi është më së paku
aktuale, ndërsa në kujtesën primare në vend të saj bartet faqja e kërkuar.
Ngjajshëm si dhe te kujtesa kesh, për vlerësim të efikasitetit të shfrytëzimit të
kujtesës virtuele futet faktori i goditjes (të qëlluarit) dhe faktori i dështimit. Faktori i
goditjes paraqet gjasën se faqja e kërkuar ndodhet në kujtesën primare. Faktori i
dështimit paraqet gjasën se faqja e kërkuar nuk ndodhet në kujtesën primare. Fktori i
goditjes varet prej disa parametrave, dhe pra së gjithash prej:
-kapacitet të kujtesës primare,
-madhësisë së faqes ,
-formës të shfrytëzuar të dhënave dhe instruksioneve në faqe,
-algoritmit për ndrrimin e faqeve.
Për ndrrimin e faqes mund të përdoren disa algoritme të ndryshme, ndërsa më së
shpeshti janë:
1) rradha e futjes së faqeve- ndrrohet faqja e cila e para është e futur, d.m.th.
faqja e cila më së shumti është ndodhur në kujtesën primare;
2) faqja e mëhersheme e shfrytëzuar- ndrohet faqja e cila më herët është
shfrytëzuar, d.m.th faqja e cila është shfrytëzuar para të gjitha faqeve e cila
ndodhet në kujtesën primare;
3) faqja e cila më së paku është shfrytëzuarr- ndohet faqja e cila më së paku
është shfrytëzuar, d.m.th. më së paku ka qenë aktive.
Kaçanik
Kaçanik
4. Procesori
Funksioni i procesorit
Procesori paraqet pajisje digjitale e kontrolluar(e menaxhuar) me program i cili
kryen funksionet në vazhdim:
-në bazë të instruksioneve i përpunon të dhënat me kryerjen mbi to operacione të
caktura relativisht të thjeshta-instruksione makine;
-bjen vendime në procesin e përpunimit mbi rrjedhën (rradhën) zhvillimit të
ekzekutimit të instruksioneve të programit;
-menaxhon me komponentet tjera të kompjuterit;
-siguron bartjen e të dhënave ndërmjet komponeteve të kompjuterit, si dhe
këmbimin e të dhënave me mjedisin e jashtëm që e rrethon.;
Kaçanik
Struktura e procesorit
Që të mund ti kryej funksionet që u dhanë procesori qendror duhet që përkohsisht
ti mbaj në mend disa të dhëna. Ai duhet ta ruaj lokacionin e instruksionit të fundit në
mënyrë që të dijë se nga ta merrë instruksionin tjetër. Duhet ti mbaj në mend
instruksionin dhe të dhënat përkohsishtë derisa të mos ekzekutohet instruksioni. Me fjalë
të tjera procesori duhat ta ketë një kujtesë të vogël breanda(interne).
Fig 4.1 jep një pamje të thjeshtë në procesorin qendror, përfshirë dhe lidhjen e
tijë me pjesët e tjera përmes magjistrales së sistemit. Komponentet kryesore të procesorit
qendror janë njësia aritmetiko-logjike dhe njësia kontrolluese. Njësia aritmeriko-logjike
kryen përpunim e të dhënave. Njësia kontrolluese kontrollon procesin e të dhënave dhe
të instruksionev në dhe nga procesori qendror dhe kontrollon punën e njësisë aritmetiko
logjike. Pos këtyre procesori përmban kujtesën interne e cila përbëhet nga bashkësia e
elementeve kujtesë të cilët quhen regjistra.
Magjistralja e sistemit
Procesori
Njësia kontrolluese
qendror
Kaçanik
Administruesi i magistrales
(qarku ndëlidhës-interfejsi)
Regjistrat
Rendi i
për qëllime
instruksioneve të
Magjistralja interne përgjishme
Njësia kontrolluese
(kontrollimi dhe sinkronizimi)
Kaçanik
dhënave ndërmjet procesorit dhe kujtesës operative, si dhe lidhja e procesorit me pajisjet
periferike, kompjuterë të tjerë etj.
Pos komponenteve që përmendëm, procesori mund të përmbaj dhe kujtesën
kesh, kujtesën stek, njësin për kontrollim të kujtesës dhe një varg me blloqe që shërbëjn
për organizimin të procesit të përpunimit (bllokun shërbyes për ndërprerje të programeve,
bllokun mbrojtës të kujtesës etj.).
Magjistralja e sistemit
Kaçanik
80386, 80486 dhe pentium janë procesor 32 bitësh dhe paraqesin një përmisim të
dukshëm të këtij procesori.
Mikrroprocesori i 8086 ka dy njësi të posaqme procesorike: njësia për
ndërlidhje me magjistralen (ang. BIU-Bus Interface Unit) dhe njësin Ekzekutuese
(ang EU-Execution Unit). Këto dy njësi punojnë të pavarura dhe konkurente
(paralelisht). Njësia për ndërlidhje me magjistralen është për të gjitha operacionet me
magjistralen, siç janë thirrja e instruksioneve, leximi i operandit nga kujtesa operative
ose shkrimin e tyre në kujtesën operative, si dhe hyrja dhe dalja e të dhënave nga/në
periferit. Kjo njësi pregaditë instruksionet gjithëmon kur të ekzistoj hapsirë e zbrazët në
rendin(queue) e instruksioneve. Prej rendit në cilin janë pregaditura, instruksionet jepen
njësisë ekzekutuse, e cila këto i ekzekuton.
Kaçanik
Magjistralja e jashtme
CS
Regjistrat segment
DS
Dekoderi i instruksioneve
SS
Njësia për ndërlidhje me magjistrale (BIU)
ES
IP
Njësia për ekzelutim të instruksioneve (EU)
AX AH AL Njësia aritmetiko-logjike
BX BH BL
CH CL
CX
DH DL
DX
FLAGS
SP
BP
Kontrollimi dhe sinkronizimi
DI
SI
Kaçanik
4. 2 Regjistrat e procesorit
Regjistri është qark elektronik i cili shërben për ruatjen e të dhënave binare.
Përbëhet nga grupa e qarqeve bistabile e cila trajtohet si një tërsi. Pos qarqev bistabile të
cilët mabajn mend të dhëna, regjistri mund të ketë elemente të kombinuara ndërprese të
cilët shërbejn për kontrollimin e bartjes të të dhënave në regjistër ose nga regjistri.
Regjistrat e procesorve identifikohen me adresat e tyre ose me emrat simbolik.
Nëse shkrimi bëhet në të njejtën kohë në të gjitha qarqet bistabile të regjistrit,
atëhere ai quhet bistabil paralel. Regjistri te i cili bihet impulsi në hyrjen e posaqme nëpër
një sekuenc të gjendjeve të caktuara quhet regjister numrues ose numrues. Numrusi i
numron në sistemin binar të numrave ose në sistemin dekadeve të koduara-binare ose
sipas ndonjë moduli m. Numrimi mund të jetë rritës, zvoglues ose rritës/zvoglues, kur
ne sinjal të posaqëm kontrollues përcaktohet numrimi rritës ose numrimi zvoglues.
Regjistri i cili mundet përmbatjen binare ta zhvendos djathtë ose majt quhet regjistër
zhvendosës(ang. Shift register). Ka hyrjen kontrolluese për zhvendosje majtë ose
djathtë, hyrjen serike dhe daljen serike ose paralele.
Kaçanik
Kaçanik
Kaçanik
15 8 7 0 15 0
Kaçanik
C
AX AH AL S
BX BH BL DS
CX CH CL SS
DX DH DL ES
15 0
SP
BP 15 0
DI IP
SI FLAGS
Fig. 4.6.-Regjistrat e miktoprocesorit intel 8086
Regjistri IP quhet treguesi i instruksionit (nga ang. IP- instruction pointer) dhe ky i
përgjigjet numruesit të instruksioneve te procesorët e tjerë. Regjistri i shenuar me
FLAGS është regjistër i kushteve dhe ky përmban indikator të cilët vendosen para
(gjatë) ekkzekutimit të operacioneve.
Regjistrat e të dhënave mund të trajtohen katër regjista 16-bitash ose si 8
regjistra 8-bitësh. Regjistrat 8 bitësh kan si germë të dytë shënimin simbolik H ose L,
Çka tregojnë bajtin e lart ose të ultë të regjistrit përkatës 16-bitësh. Regjistrat e të
dhënave janë regjistra për qëllime të përgjithshme, por te instrusionet e veçanta kanë
gjithmonë rrolë të caktuar, pra dhe në bazë të kësaj iu janë ndarë edhe emrat.
AX (akumulator) përdoret me rastin e shumëzimit të të dhënave 16 bitëshe,
pjestimit, gjatë ekzekutimit të operaconeve të hyrje/ daljeve, dhe të disa operacioneve
me të dhëna karakter (stringje). Funksion të ngjajshëm kanë regjistrat AL dhe AH kur
është fjala për bajtat. BX (regjistri bazë –ang. base register) përdoret më së shpeshti te
adresimi bazor – bartje(translate) . CX (regjistri numërues-ang count register)
shërbren si numrues i instruksoneve për përsëritje (cikle) ose gjatë punës me të dhëna
karakter. DX (regjistri i të dhënave-ang. data register) ka rrolin e akumulatorit ndimës
me rastin e shumëzimit të dhënave 16 bitshe dhe me rastin e pjestimit. Pos kësaj shpeshë
përdoret për ruatjen e adresave të regjistrit pranues gjatë bartëjeve të hyrje daljeve
idirekte .
Regjistrat tregues dhe indeks SP, BP, DI dhe SI janë regjistra adresues të
cilët përdoren për punë me adresa (për gjenerimin e adresës efektive të kujtesës). SP
është tregues i stekut, ndërsa BP, DI dhe SI mund të përdoren si regjistra bazë ose
regjistra indeks, në vartësi nga mënyra e adresimit. Pos kësaj, regjistri BP gjithashtu
mund të përdoret si regjister bazë ose indeks.
Për t’ju qasur të dhënave në segmentet me të dhëna, adresa e segmentit vendoset
në regjistrin segment të dhënave SS, ndërsa zhvendosja në njërin prej regjistrave BP,
SI ose DI. Gjat punës me stek adresa e segmentit të stekut është në regjistrin e segmentit
të stekut SS, ndërsa zhvendosja përkatëse në regjistrin SP. Sipas kësaj, SP( SP-Stack
Pointer –treguesi i stekut) ka rolin e treguesit të stekut. Regjistri BP (ang Base Pointer
–tregues i bazës) përdoret te shumica e operacioneve aritmetike. Me rastin e adresimit
Kaçanik
bazë-ideks, por si tregues shtesë(plotësues) për punë me të dhëna dhe steke. Regjistri
SI (ang Source Indeks –indeksi burim) është regjistër indeks i cili përdoret në
operacione të ndryshëme, ndërsa posaqërisht në operacionet me stringje, ku në këtë
rast tregon në lokacionin nga i cili duhet marrë të dhënat burim. Regjistri DI (ang DI-
destination Index- indeksi i cakut ) ka rrol të njejt si dhe SI, pos se DI tregon në
lokacionin në të cilin duhet shenuar rezulltati.
Në tabelën 4.1 jepen përdorimet themelore të të gjitha regjistrave:
Regjistri përdorimi
AX(AH +AL) - shumëzimi dhe pjestimi dybajtësh, fjalët e hyrje daljeve
AL shumëzimi një bajtësh, hyrja./dalja e bajtave, përkthimi,
aritmetika decimale.
AH shumëzimi dhe pjestimi njëbajtësh
BX krahasimi
CX operacionet me stringje, ciklet variabile, zhvendosja,
rotirimi(rrotullimi)
DX shumëzimi dhe pjestimi dybajtësh, hyrjet/daljet indirekte
SP operacionet me stekun (kujtesën magazinë)
SI operacione me stringje (vargje shenjash)
DI operacione me stringje
Treguesi i instruksionit IP ruan zhvendosjen i cili iu jepet përmbatjes të regjistrit
segment që të formohet adresa fizike e instruksionit i cili më pas duhet të ekzekutohet.
Regjistri i kushtit FLAGS përmban indikator të kushtit. në fig 4.7 është treguar
regjistri i kushtit dhe bitat e indikatorve.
Indikatori CF (ang.CF- carry Flag- indikator i bartjes) vendoset në 1 nëse
ekziston bartja gjat mbledhjes, rrespektivisht huazimi gjatë zbritjes. Përdoret gjithashtu
te operacioni i shumëzimit, operacioni krahasimit dhe gjatë ekzekutimit të operaconit të
zhvendosjes të ndonjë regjistri majtë djathtë ose rotirim.
Indikatori PF (ang PF- Parity Flag –indikatori i paritetit ) vendoset në 1 nëse
rezulltati i ndonjë opeeracioni përmban numrin çift të njisheve binare, përndryshe
vendoset në zero. Ky indikator ka të bëj në vlerat binare tetë bitëshe dhe më së shumti
përdoret me rastin e bartjes të të dhënave.
Kaçanik
Kaçanik
Fig
Kaçanik
Fig. Regjistrat e përgjithshëm në modin 64-bit (të pashëm nga aplikacioni i programerit)
Kaçanik
Kaçanik
Adresat /
të dhënat
Kontrollat
(udhëheqja)
Adresat /
kontrollat
kontrolla
Kaçanik
Kaçanik
Kaçanik
Mikrroinstrusionet
Ekzekutimi i instruksioneve mund të ndahet në etapa më të vogla të thjeshta të
cilat quhen mikrropunë ose mikrrooperacione. Këto në procesor ekzekutohen në një takt
interval të caktuar elementare pune. Shembull tipik i punës elementare e cila kryhet në
procesor paraqet bartja e përmbatjes nga një regjistër i procesorit në tjetrin kryerja e
operacioneve matematikore mbi operandët etj.. Bashkësia e mikrroinstruksioneve të cilat
ekzekutohen në një takt inteval të procesorit quhet mikrroinstruksion. Sekuencat e
mikrroperacioneve me të cilat realizohet operacioni (d.m.th. instruksioni) formojnë
mikrroprogramin(miikrrodin) e operacionit. Si pas kësaj ekziston këto hierarki etapash të
ekzekutimit të programit në procesor: Programi, Instruksioni (mikrroprogram ose
mikkrokod), mikrroinstruksione
Mikrrokodi
Siç ke thënë instruksioni i “fletë” procesorit se çka duhet punoj. Që të mund të
ekzekutohet instruksioni shpesh duhet ti kryen shumë hapa. Për këtë në esencë
instruksioni është një listë hapash. Këta bashkësi instruksionesh dhe hapash përbëjnë
mikrrokodin. Mikrrokodi programerëve u shëreben të shkruajnë programe të kompjuterit
të nivelit të ultë(low-level), që kryejnë operacione siç janë p.sh bartjen e të dhënave në
regjistër dhe nga regjistrat dhe kryrjen e operacioneve matematikore mbi të dhënat.
Secili prodhues për procesorët e vetë zhvillon mikrrokodin e lehtët/ apo të
përbërbër varsisht prej kërkesave që iu parshtrohen sistemit që çipi do ti ve në lëvizje.
Në shkrimin e mikrrokodit ekziston dhe kompromisi: sa më i gjërë që të jetë bashkësia e
instruksionve , më lehtë do të shkruhen programet për procesor , megjithat sa më të gjera
të jenë bashkësia e instruksioneve, performansat janë më të dobta. Kontrollimi i këtyre
hapave praqet divergjencat më të mëdha në projektimin e mikrroprocesorit
Rritja e përhershme e taktit të mikrroprocesorit ka dhe efekte negative.
Vështërson punën qarqeve të kompjuterit dhe me këtë shtrejton projektimin dhe
prodhimin. Për këtë arsyeje shumë energji është hargjuar në zhvillimin e procesorit,
shpejtësia e të cilit rrirë dhe përpunimin e numrit më të madhë të instruksioneve në taktin
Kaçanik
Kaçanik
c)Formati trebajtësh
OP Mod reg r/m LS-disp MS-data
d) formati katërbajtësh
OP Mod reg r/m LS-Disp MS-disp LS-Data MS-data
f) formati gjasht bajtësh
Fig.4.9 Formatet e instruksionit të mikrroprocesorit intel 8086
Kaçanik
Mod
11
r/m 00 01 10 W=0 W=1
(BX)+(SI) (BX)+(SI)+D8 (BX)+(SI)+D16
000 AL AX
DS DS DS
(BX)+DI) (BX)+(DI)+D8 (BX)+(DI)+D16
001 CL CX
DS DS DS
(BP)+(SI) (BP)+(SI)+D8 (BP)+(SI)+D16
010 DL DX
SS SS SS
(BP)+DI) (BP)+(DI)+D8 (BP)+(DI)+D16
011 BL BX
SS SS SS
(SI) (SI)+D8 (SI)+D16
100 AH SP
DS DS DS
(DI) (DI)+D8 (DI)+D16
101 CH BP
DS DS DS
D16 (BP )+D8 (BP)+D16
110 DH SI
DS SS SS
Kaçanik
Kaçanik
Kaçanik
Kaçanik
Pipelining
Mikrroprocesorët kryesisht kanë punuar me një instruksion në të njejtën kohë.
Mikrroprocesori një instruksion e ka lexuar nga kujtesa operative , dhe sipas rradhës ka
ekzekutuar secilin hap, dhe më pasë ka lexuar instruksinin tjetër. Dizajni pipelinig i
mundëson procesorit të lexoj instruksionin, të fillon procesimin dhe posa të fillon
procesimin e instruksionit të parë, fillon të tjetrën. Pasi instruksioni kërkon më shumë
hapa që kryhen në pjesë të ndryshme të mikrroprocesorit , pipeling i mundëson procesorit
punë në të njejtën kohë me shumë instruksione. Instruksionet nëpër çip kalojnë sikur
automjtet në shiritat e hallave prodhuse.
Përderisa secili instruksion i ekzekuton hapat që hargjojnë resurse nga pjesë të
ndryshme të procesorit hapat do të ekzekutohen pa problem. Megjithat , vargje të
ndryshme të instruksioneve duhet me kujdesë të kordinohen. Nëse një hap nuk ka suksesë
, ose vonohet do pësojnë të gjitha instruksionet në pipeling.
Pentiumi i intelit është një shembull i pielingut. Këta procesor kanë katër nivele të
pipelingut, çka ka kuptimin që në të njejtën kohë mund të ekzekutojnë katër instruksione
të ndryshme.
Arkitektura superskalare
Hapat e instruksioneve s’është e thanun të kryhen sipas rradhës së futur në
program. Disa hapa mund të kryhen në të njejtën kohë> Mikrroprocesorët superskalar
mundësojnë këte të bëhet . Ky mundet në të njetën kohë ti proceson më shumë hapa , pasi
ka shumë pipeline, rrugë ekzekutuse. Megjithat , këta rrugë ekzekutuse paralele nuk janë
të vetmet për zbatim të sukseshëm të dizajnit superskalar. Mikrroprocesori, gjithashtu
duhet të përcaktoj se cilat instruksione mund të ndahen dhe të mos prishet rezulltati, si
dhe mënyrën se si të ndahen. Emri superskalar rrjedhë nga fakti që ky dizajnë siguron më
shumë rritja inkrementale lineare e shpejtësisë, që arrihet me mjetet tradicionale të
zvoglimit, ose thjeshtimit të qarqeve të mikrroprocesorike. Më herët shpejtësia e
mikrroprocesorit është rritur me zvoglimin e qaqerqeve mikkroprocesorike rrespektivisht
zvoglimin e rrugve të cilat sinjalet elektrike kalojnë nëpër procesor. Nga ana tjetër
dukshëm përmirson performancat e procesori me rritjen ose superskalaritetin e qarqeve
mikrroprocesorike.
Kaçanik
Kaçanik
fillimi
Thirrja e instruksionit nga kujtesa operative dhe formimi i adresës së instruksionit tjetër
Dekodimi i instruksionit
Po
Kërkesa për ndërprerje
Përpuni i kërkesës
për përpunim
Fig 4.10 Cikli punues i procesorit
Kaçanik
Kaçanik
Kaçanik
Regjistri i instuksionit RI
opcode ...
Opernd
(a)
Kujtes operative
(b)
Adresimi direkt- tek adresimi direkt për qasje(të drejtuarit) në kujtesë përdoret
vetëm pjesa adresuese(fusha e operandit) e instruksionit e cila njëkohsisht paraqet dhe
adresën efektive, pra operandi ndodhet në kujtesën operative . Adresa e tillë quhet dhe
adresë direkte ose apsolute.
Kaçanik
Regjistri i instuksionit RI
Kujtes operative
Vargu i regjistrave
(Register Array)
Fig -adresimi regjister
Kaçanik
Adresimi indirekt
Në vendë që fusha e operandit të specifikon adresën e operandit si te adresimi
direkt ose regjistër , kjo fushë mund të specifikon një adresë “ndërmjetësuse” të elmentit
të kujtesës tjetër që përmban adresën e operandit të dëshiruar kjo njihihet me emrin
adresimi indirekt . elemnti i kujtesë ndërmjetësues mund të jetë regjistër ose fjalë e
kujtesës operative. Mund dë vërejm nga skema e adresimit indirekt në të cilin lokacioni i
operandit mbahet në ndonjë regjistër do të nevojitet numër më i vogël i bitave për kodim
të identifikatorit të regjistrit në pjesën(fushën) e operandit se kur ndodhet në mediumin
ndërmjetësues siç është kujtesa operative për ruatjen e fjalës.
Në fakt , ky është një avantazh e përdorimit të adresimit indirekt: ju mund të
specifikoni adresë në kujtesën operative të operandit të dëshiruar në mënyrë idirekte me
vendosjen e një tregusi(pointer) në një fjalë tjetër të kujtesës operative që aktualisht e
përmban këtë adresë
Si një shembull për përdorim të adresimit indirekt, le të supozojmë një bashkësi
prej N numrave të lokacioneve të njëpasnjëshme të fjalëve të kujtesës operative duhet
shtuar dhe rezulltati të lihet në R15 (fig) . Adresa startuse L e këtyre numrave ngarkohet
(shkruhet) në regjistrin R0 dhe R15 inicializohet në zerro. Le të ketë kuptimin që me
simbolin “@R” përdorimni i regjistrit R si burim i një adrese më mirë se një operand dhe
me simbilin “#I” që I është si një operand i drejtëpërdrejt(immediate), kështu që
sekuenca e instruksioneve
ADD @R0,R15
INCR R0,#1
Kurë të përsëritet N-herë do ti mbledh N numra në lokacionet e kujtesës operative
L,L+1,.....L+N-1 dhe lë rezulltatin në R15
adresimi indirekt kujtesë- adresa e cila nuk specifikon adresën e lokacionit të
operandit në kujtesë, por lokacionin e kujtesës në të cillën ndodhet adresa e operandit,
quhet adresë indirekte. Përdorimi i adresave indirekte kërkon qasje të dy lokacioneve të
kujtesës që të mund tju qaset vetë operandit. Adresimi i tillë quhet adresim indirekt
kujtesë(fig..(b).
Kaçanik
Regjistri i instuksionit RI
opcode ...
(a) Vektori
i regjistrave operandi
Regjistri i instuksionit RI
opcode . ...
(b)
Kujtes operative
Fig -adresimi i indirkt e)
R0
L ADD @R0 R15 ...
L+1
R15
Regjistri i instuksionit RI
Vektori(vargu)
i regjistrave
L+N-1
Një prej arsyejeve kryesore të futjes së adresimit indirekt kujtesë është zgjerimi i
hapsirës adresuese, pasi e tërë fjala e kujtesës mund të përdoret për adresë. Adresimi
Kaçanik
indirekt kujtesë ka gjetur dhe dhe shumë zbatime të dobishme. Ky adresim realizohet
shumë efikas dhe përdoret praktikisht te të gjithë procesorët. Tek adresimi indirekt
kujtesë operandit iu qaset në dy intervale kohore (takt impulse ). Në të parin pjeasa
adresuese e instruksionit dërgohet në regjistrin adresues të kujtesës RA dhe në atë adresë
lexohet përmbatja në regjistrin pranues RP dhe bartet në RA dhe në këtë adresë ndodhet
operandi i cili vendoset në RP.
Është e mundshme të bëhen krahasime interesnte ndërmjet adresimit të
drejtëpërdrejt dhe direkt dhe adresimit indirekt kujtesë. Te adresimi i drejtëpërdrejt
kujtesës nuk ka nevojë me iu qasur pasi operandi është i thirrur me instruksion. Për këtë
thuhet se adresa është e rangut null. Te adresimi direkt nevojitet një qasje në kujtesë për
t’ju qasur operandit, dhe ate adresa e rangut të parë. Për thirrjen e operandit te
adresimi indirekt kujtesë nevojiten dy qasje kujtesës dhe kjo është adresa e rangut të
dytë.
Adresimi indirekt regjistër- adresimi indirekt i operandit nuk është e thanun të
jetë në ndonjë lokacion të kujtesës, por për to mund të përdoret ndonjë regjistër për
qëllime të përgjithshme të procesorit qendror. Kjo mënyrë e adresimit quhet adresim
indirekt regjistër. Në raport me adresimin indirekt kujtesë, kjo mënyrë e adresimit është
më e shpejtë pasi kërkon vetëm një interval kohorë (Cikël të kujtesës).
Adresimi auto-inkrementues dhe adresimi auto-direkt.- mundësi interesante
ofron adresimi indirek regjistër gjatë të cilit regjistri për qëllime të përgjithshëme i cili
përdoret për ruatje të adresës së opeandit automatikisht para ose pas përdorimit rritet ose
zvoglohet për një. Në këtë mënyrë përgaditet adresa e operandit të ardhëshëm të vendosur
në në lokacionin tjetër të kujtesës. Këto metoda adresimi quhen dhe adresim auto-
inkrementus dhe auto- direktë
Adresimi indeks (indeksimi).
Problemi i i qasjes të këtyre N fjalëve suksesive në kujtesën operative mund të
zgjidhet në një mënyrë tjetër. Adresa startuse L e vargut(array) është e specifikume si një
konstant dhe zhvendosja e elementit i-të (i=0,1, . . . , N-1) mbahet në regjistrin që quhet
Regjistër indeks(ang index register). Le të supuzojmë se ky regjistër është i shenuar me
X. Atëhere adresa efektive e elemetiti të i-të të vargut mund të llogaritet si
L+X
Le të supozojmë. P.sh që regjistri R1 përdoret si një regjistër Indeks. Mbani mend se L
është një konstant që tregon një adresë aktuale, elementet suksesive të vargut mund të
shtohen dhe rezulltati të lihet në R15 që së pari të inicializohet R1 dhe R15 në 0 dhe më
pasë ekzekutimi N herësh i sekuncës së instruksioneve
ADD #l,r1,R15
NCR R1,#1
Këtu, adresa efektive e operandit të parë llogaritet si R1 +L (fig),rezullton se
operani në kujtesën operative në këtë adresë i shtohet përmbatjes së regjistrit R15 dhe
rezulltati lihet në R15. instruksioni INCR vetëm rritë vlerën e regjistrit indeks për 1.
Ky shembull ilustron, një operand të specifikuar në mënyrën e adresimit indeks
përbëhet prej dy pjesëve: një konstante të çfardoshme dhe një regjistri indeks.
Kompjuterë të veçant mund të kenë një apo më shumë regjistra që përdoren vetëm si
regjistra indeks.
Kaçanik
Kujtesa operative
(RAM)
R1
ADD L R1 R15
R15
R15 Regjistri i
. Vektori(vargu) instuksionit RI
. i regjistrave
.
+
Adresa efektive
Adresimi bazë-zhvendosje
Në mënyrën e adresimit bazë-zhvendosje (fig) një operand specifikohet në në regjistër që
quhet base register(B) dhe një konstant e çfarëdoshme që quhet zhvendose (D)(nga ang.
Displacment e cila shpesh quhet dhje offset-zhvendosje). Regjistri i specifikuar bazë
Kaçanik
mbanë disa adresa të kujtesës operative, dhe adresa efektive e operandit të dëshiruar
mund të llogaritet si
B+D
Mënyra Adresimi bazë zhvendosje u krijua për dy arsyeje.
Një, kjo përmban përkrahjen direkte për zhvendosshmërin e programit dhe segmenteve të
dhënave- që është kompatibël me sistemet kompjuterike për allocimin e në programi dhe
segment të dhëna në hapsira të ndryshme të kujtesës operative në kohë të ndryshme. Ky
kompabilitet bëhet pjesërisht i domësdoshëm me emergjencat e multiprogramimit dhe
kujtesës virtuale gjatë gjysmësë së viteve 1960.
Adresimi bazë-zhvendosje përktah relokatibilitetin në mënyrën si në vazhdim.
Kur kur një program ose segment i të dhënave S assemblohen ose kompilohen në kod
makine përkthysi nuk ka njohuri se ku ky kodë do të jetë rezident në kujtesën operative
gjatë kohës së ekzekutimit; për këtë arsyesje segmenti do të në hapsira të ndryshme të
kujtesës operative në raste të ndryshme të ekzekutimit, varsishtë prej hapsirës sëlirë të
lejushme. Kështu që Object code duhet ashtu të gjenerohet që të gjithë instruksionet
refernt dhe të dhënat brenda S janë të caktura si zhvendosje relative të përmbatjes të vetë
regjistrit bazë të specifikuar B. Kur S ëashtë aktualisht i ngarkuar në kujtesën operative
adresa startuse automatikisht vendoset në base register. Gjatë qasjes së operandit adresa
efektive e operandit llogaritet me mbledhjen e përmbatjes të B dhe zhvendosjes
Regjistri Bazë (B)
Base Register(B)
R0
.. . R0 24 .. .
.
. Regjistri i
. +24
+24 Vektori(vargu) instuksionit RI
i regjistrave
Zhevdosja (D)
Dispalcment(D)
+
Kujtesa operative
(RAM)
shembull:
le ta marrim parasysh kondin në assembler të IBM system/370 si në vazhdim:
BALR 15,0
Kaçanik
USING *,15
L 10, INTERVAL
...
...
INTERVAL DC F’1’
...
Në mënyrë gjenerale , instruksioni BALR ngarkon regjistrin të specifikuar si operand i
parë me adresë të një instruksioni tjetër dhe degëzohet në adresën e specifikume si
operand i dytë. Ku ky i fundit është0 , degëzimi nuk ndodhë dhe kontrolli bartet në
instruksion tjetër. USING është një instancë e një psedo eporacioni, kështu që shërben si
një direktev të vetë asemblerit se sa një instruksion ekxekutues; ky e udhëzon asamblerin
që regjistri i specifikuar si operand i dytë se duhet të mbajë adresën(relocatable rilokuuse)
të një instruksioni tjetër- kështu që është një regjistër që shërben si adresë Base.
Pra kur ky segment asemblohet, USING i thotë asemblerit që L instruksione të
adresave të intervalit do të gjenerohen si renditje e çiftit
<15,D>
ku D është zhvendosja e INTERVAL-it relative të përmbatjes të regjistrit 15. kur ky kod
ekzekutohet , BALR dotë siguroj që regjistri 15 mban vlerë e drejtë.
Arsyeja e dytë për emergjencën e adresimit Bazë –zhvendosje është zvoglimi i
numrit të nevojshëm të bitave për specifikim të një adrese të operandit.. le të supozojmë
se kujtesa operative përbëhet prej 2 24 bajt, kështu që kur një operand në kujtesën
operative specifikohet direkt në instruksion, ose kur një zhvendosje relative në vetë
adresën base duhet dhënë në instruksion, fusha( pjesa) duhet të jetë mjaftë e madhe që tju
referohet të gjithë kujtesës; në shembullin tonë fusha adresuse duhet të jetë 24 bitë.
Kaçanik
vazhdim të adresimit:
Shembull: në instruksionin
Mov AX, -96
Vlera decimale –96 shkruhet në regjistrin AX.
Adresimi direkt (ang Direct)– Te adresimi direkt ose absolut instruksioni
përmban zhvendosjen 16-bit-she D16 në bazë të së cilës formohet adresa efektive e
Kaçanik
Segmenti me te
MOV AX, DX:[02H]
dhëna
DS 0000H
0001H
MOV AX, ADR ADR LL 0002H
HH 0003H
AX HHLL 0004H
Shembull:
MOV AH,[3000]
1. regjistri DS do të shumëzohet me 16;
2. prodhimit i shtohet 3000 dhe fitohet adresa ;
3. përmbatja e në adresën e fituar vendoset në AH.
Shembull: në instruksionin
MOV AX, BX
Operandi mirret nga regjistri BX dhe bartet në regjistrin AX.
Kaçanik
( )
ae= ( DI )
(SI )
shembulli 1: me instruksionin
DS 0000H
BX
0001H
OOO2H DS:[BX] LL 0002H
HH 0003H
HHLL 0004H
AX
shembulli2: me instruksionin
MOV [DI], BX
Përmabtaja e regjistrit BX shkruhet në lokacionin e kujtesës adresa e së cilit është
në regjistrin DI
Shembull:
MOV AH, [BX]
1.regjistri DS do të shumëzohet me 16;
2.prodhimit i shtohet përmbatja e regjistrit BX dhe fitohet adresa ;
3.përmbatja e në adresën e fituar vendoset në AH.
Adresimi bazë (based addressing mode) ose adresimi relativ bazë (besed and
Relative addressing mode ).-te kjo mënyrë e adresimit përdoret regjistri BI ose BP.
Nëse përdoret regjistri BP, edhëna është në segmentin e stekut, ndërsa nëse përdoret
regjisri BX, edhëna është në segment të të dhënave. Adresa efektive e operandt ae
formohet si shumë zhvendosjes 8 bitshe D8 ose zhvendosjes 16 bitshe D16 dhe të
përmbatjes së regjistrit bazor BX ose BP, d.m.th.
( BX ) D 8
ae=
( )( )
(BP )
+
D 16 ¿
¿
Kaçanik
Shembull: në instruksionin
MOV AX, [BX] +2
adresa efektive llogaritet në mënyrën si e treguar si në fig (4.14),
Segmenti me te dhëna
MOV AX, 2[BX] +
0000H
BX
0001H
OOO1H LL 0002H
HH 0003H
HHLL 0004H
AX
ae=
(((SIDI)))+((D( D816))) ¿ ¿
adresimi bazë dhe indeks janë të ngjajshëm dhe për këtë nganjëher konsiderohen
si një mënyrë e adresimit e cila quhet adresimi relativ regjistër. Në të vërtet, projektantët
kanë përcaktuar regjistrat BX dhe BP për ate bazor ndërsa SI dhe DI për adresim me
indekse.
Shembull: le të jetë VEKT adresa fillestare e ndonjë vektori elementët e të cilit
marrin(zëjn) nga dy bajt. Atëhere VEKT dotë jetë adresa e elementit të parë të vargut,
VEKT+2 adresa e elementit të dytë në varg etj. Me instruksionet
MOV DI, 2
MOV AX, VEKT[DI]
Në regjistrin AX do të shkryhet elementi i dytë i vargut.
Kaçanik
ae=
(((PBBX )))+(((SIDI))) ¿ ¿
Adresimi relativ Bazë- indeks ose adresimi bazë -indeks me zhvendosje.-
te kjo mënyrë e adresimit adresa efektive ae formohet si shumë e adresës bazë-indeks dhe
zhvendosjes 8 bitshe me shenjën D8 ose zhvendosje 16 bishe D16 (fig 4.15)
BX ) (SI )
ae=
(((PB )) +(( DI ))+( DD168 )
BP 100H
0004H
0005H
OOO4H
DI LL 0006H
HH 0007H
AX HHLL 0008H
Adresimi relativ me program- kjo mënyrë e adresimit përdoret vetëm tek instruksionet
JUMP dhe CALL, instruksionet kushtëzuese dhe instruksione drejtuese me rrjedhën e
ekzekutimit të programit. Adresa efektive llogaritet si shumë e përmabtjes të treguesit të
instruksionit IP dhe zhvendosje 8 bitshe D8 ose zhvendosjes 16 bitshe D16.
Adresimi i stringjeve(vargut të karaktereve) te instruksionet të cilat manipulojnë me
stringje karakterësh përdoret regjistrat SI dhe DI, dhe ate ashtu që SI tregon në bajtin e
parë të stringut burim, ndërsa DI tregon në bajtin e parë të stringut Cakë. Gjatë
ekzekutimit të instruksionit procesori automatikisht azhuron(rregullon) përmbatjen e
regjistrit DI dhe SI.
Kaçanik
4. 6. Njësia aritmetiko-logjike
Njësia aritmetiko-logjike (fig4. 16a) është pjesë e kompjuterit në të cilën kryhen
operacionet mbi të dhënat.
Për atë se cili operacion dhe mbi cilat të dhëna duhet të zbatohet e kumton(lajmron)
njësia kontrolluese (drejtuese-dirigjisuese) me sinjalet për zgjedheje të operacioneve (fig
4.16.b)
Kaçanik
MUX
ALU
Ra
Rb
MU
X
Fusha regjistrash
Shkrimi i rezulltatit
Njësia aritmetiko logjike e procesorit RISK është treguar në fig 4.17. siç shihet,
të gjitha operacionet ekzekutohen mbi operandët të cilët mirren nga fusha e regjistrit, në
të cilën gjithashtu kthehet rezulltati. Regjistri Ra dhe Rb në dalje shërbejnë që për njërin
nga kto përkohsisht të mbaj mend rezulltatin e operacionit në ndonjë situacion të
posaqëm, i cili mundet nga këtu të kthehet përsëri në hyrje ose të dërgohet në fushën e
regjistrit..
Kaçanik
b) instruksione logjike
c) instruksione për zhvendosje
instruksionet aritmetike kryhejn operacionet themelore aritmetikore( mbledhja,
zbritja, shumëzimi dhe pjestimi), më tutje krahasimi i dy përmbatjeve,
komplimentimi, rritja ose zvoglimi i përmbatjes të ndonjë regjistri për 1 etj.
Me instruksionet logjike kryhen operacione logjike ( operacionet e Bulit ose
algjebra e ndërpresve): AND, OR, XOR, NOT.
Me instruksionet për zhvendosje zhvendoset përmbatja binare e ndonjë regjistri
të procesorit, rëndomt të akumulatorit, për një numër të caktuar vendesh majtas ose
djathtas.Instruksionet kontrolluese gjithashtu mund të ndahen në disa nëngrupa.
a) instruksionet për degëzim dhe për kapërcim
b) instruksionet për cikle(përsëritje) të programeve
c) instruksionet për nënprograme.
Të gjitha instuksionet shërbejn për kontrollimin(drejtimin) e rrjedhës së ekzekutimit
të programit.
Me instruksionet hyrëse- dalëse r barten të dhënat nga procesori në ndonjë
pajisje periferike ose nga pisja periferike në procesor
Kaçanik
pozicioni paraprak.
Shembull: mbledhja e dy numrave binar;
c) oeracioni i përbër shumëklasësh, kur secili bit i rezulltatit varet nga
gjithë bitat e operandit : p. sh. shumëzimi i dy numarave binar.
Mbledhja binare
Tabela e mbledhjes për sistemin numerik binar është dhënë në tabelën 4.4a.Dy
numra shumëshifror binar mblidhen sipas procedurës si në vazhdim:
1) mblidhen dy shifrat me peshë më të vogël; nëse ekziston njishi për batje mbahet
mend në pozicionin tjetër më të lartë;
2) mblidhen dy shifrat të pozicionit tjetër më të lartë dhe shifra e bartjes nga pozicioni i
më parshëm më i ultë. Bartja e re mahet mend te pozicioni për pozicionin tjetër më
të lartë;
3) nëse ekzistojnë akoma pozicione në të cilat nuk është kryer mbledhja, veprojmë
sipas hapit 2;
4) nëse është kryer mblidhja e shifrave në të gjitha pozicionet dhe nuk ekziston bartje,
procedura e mblidhjes ka përfunduar. Nëse ekziston bartje shkruhet 1 në pozicionin
tjetër më të lartë, me çka dhe procedura e mblidhjes përfundon.
Tabela:4.4 Tabela për mbledhjen dhe shumzimin në sistemin numerik binar
a)Tabela e mledhjes b) tabela e shumëzimit
+ 0 1 * 0 1
O 0 1 0 0 0
1 1 10 1 0 1
Mbledhësi binar
Mbledhsi binar i plot (ang. FA- full adder) paraqet rrjetën e kombinuar të realizuar me
qarqe të elementeve logjikë të cilat shërbejn për mblidhjen e të dy numrave njëshifror
binar ose të dy shifrave në klasën e i-të të numrit shumëshifror binar dhe të bartjes prej
klasës së mëparshme më të ultë. Tabela e saktësisë e cila përshkruan punën e mbledhsit të
plotë është dhënë në fig 4.18a ndërsa paraqitja grafike në fig 4.18b.
Kaçanik
ai bi pi-1 si pi
0 0 0 0 0
0 0 1 0 1 ai
FA si
0 1 0 0 1 bi
pi
0 1 1 1 0 pi-1
1 0 0 0 1
1 0 1 1 0 b) paraqitja grafike
1 1 0 1 0
1 1 1 1 1
a) Tabela e saktësisë
Kaçanik
bn-1 an-1
b1 a1 b0 a0 0
ai
FA si
bi
pi FA
pi-1 FA FA
EK
pn-1 sn-1 pn-2
p1 s1 p0 s0
Mbledhisi shumë-
Mbledhisi shumëklasësh Paralel
klasësh serik
Zbritja binare
Numrat në sistemin numerik binar zbriten sipas rregullit i cili përdoret në sistemin
numerik dekad. Në këtë rast me rastin e punës me numra me pikë shkruhet në të njejtin
pozicion sipas vertikales.
Shembull: në sistemin numerik binar prej numrit binar 10101.11 zbritet numri
binar 1001.001.
10101.110 (BIN)
-1001.001 (BIN)
1100.101 (BIN)
Ngjajshëm si te mbledhja një klasëshe mund të definohet dhe zbritsi i plot
njëkasësh i cili përdoret për zbritjen e dy numrave binar një shifror. Me zbritsin e plot
njëklasësh mund të realizohet zbritsi binar shumëklasësh.Megjithat, për realizimin e
zbritsit në kompjuter për në vend të procedurës së përshkruar përdoret paraqitja përmes
komplimentit. Mund të vëtetohet se përmes komplimentit operacioni i zbritjes
zëvendsohet me ate te mbledhjes të komplimetit të zvogluar.
Shembull: zbritja nga shembulli i mëparshëm me përdorimin e komplimentit të dytë
zavendsohet me mbledhje dhe ka formën:
Kaçanik
0 0 0 0 0 0 0 0 1 0 1 0 1. 1 1 0 (BIN)
+1 1 1 1 1 1 1 1 1 0 1 1 0. 1 1 1 (BIN)
1 0 0 0 0 0 0 0 0 0 1 1 0 0. 1 0 1( BIN)
Sipas rregullit të përdorimit të komplimenteve të dysheve njëshi për bartje në
pozicionin më të lartë hudhet (injorohet) dhe fitohet rezullti përfundimtar
0 0 0 0 0 0 0 0 0 1 1 0 0. 1 0 1, dmth 1 1 0 0. 1 0 1.
Shumëzimi binar
Rregulla e njohur e cila përdoret për sistemin numerik dekad përdoret dhe për
shumëzimin e dy numrave në sistemin numerik binar. Dallimi qëndron në ate se me
rastin e shumëzimit dhe mbledhjes tani përdoren tabelat e shumzimit në këtë sistem
numerik.
Tabela 4.4b jep shumëzimin për sistemin numerik binar. Numrat binar
shumëshifror shumëzohen ashtu që i shumzueshmi shumëzohet me shifren e nga secili
pozicion të shumzuesit, duke filluar nga shifra e peshës më të vogël, dhe prodhimet
partciale shkruhen njëri nën tjetrin të zhvendosur majtë për një vend, dhe më pas
mblidhen.
Shembull: shumëzoni në sistemin numerik binar numrat 1011.1 (BIN) dhe 110.1 (BIN)
1011.1
X 110.1
10111
10111
10111
1001010.11
Realizimi i shumëzimit në kompjuter bazohet në të njejtën rregull, por se
përdoret një procedur e modifikuar e cila ka formën si në fig 4.20;
1) Vendoset (AK)=0 , pra regjistri i akumulatorit në zero (vlerat fillestare mblidhen me
prodhimet parciale dhe (M)=n (numri i klasëve të shumzuesit);
2) Nëse shifra e shumëzuesit në pozicionin më me peshë më të vogël b0 e barabart me
një(b0=1), shto shumës prodhimin parcial të shumzuesit, nëse është zerro, mos e
shto;
3) Shumën e prodhimit parcial dhe shumzuesin zavendosni për një vend djathtë (në
këtë rastë shifra me peshë më vogël e shumëzuesit humb)
4) Zvoglo përmbatjen e regjistrit (M) për 1, d.m.th (M):=(M)-1
5) Nëse përmbatja e regjistrit (M) >0, kthehu në hapin 2, përdryshe përfundo
ekzekutimin e algoritmit.
Në fig 4.20 regjistrit AK iu është shtuar si zgjerim regjistri RQ. Me përfundimin e
procedurës së shumzimit prodhimi do të gjindet në kombinim regjistrave AK+RQ, pasi
dihet se me shumzimin e dy nunrave n-shifror mund të fitohet produkti i cili ka 2n
shifra. Duhet vrejtur se zhvendosja e prodhimit parcial djatht në regjistrin RQ nuk ka
ndikim në prodhmin parcial, pasi këto shifra janë me peshë më të ultë në të cilat shtimi
të shuzueshmit më tutje nuk ka ndikim.
Kaçanik
Dhënja të shumëzueshmit
ALU
+
M n
AK 0 Shumzuesi b0 RQ
Zhvendosja djatht
për një vend
Fig.4.20.-Realizimi i shumëzimit
Shembull: Shumëzoni në sistemin numerik binar numrin 11001 (BIN) me numrin 110
(BIN).
Ishumëzueshmi :11001
Shuma parciale e prodhimit shumëzuesi
0000000000 110
0000000000
+ 11001 11
0000110010
00000110010
+ 11001 1
0 0 0 1 0 0 1 0 1 1 0 = Rezulltati
Nga procedura themelore e shumëzimit shihet se realizimi i shumëzimit binar në
kompjuter kryhet vetëm me mbledhjen e shumëfisht binare dhe zhvendosje për një
pozicion binar. Në këtë mënyrë është e mjaftueshme që në njësin aritmetike të ketë vetëm
mbledhës dhe qarqe për zhvendosje, të cilët mundësojnë që përmes instruksionit të
posaqëm për zhvendosje në njësin aritmetiko-logjike të realizohet zhvendosja.
Te prezentimi (paraqitja) me kompliment të numrave negativ ekzistojn algoritme
të posaqëm për shumëzim të numrave binar. Këtu shifra binare e shenjës trajtohet si të
tjerat, dhe për këtë duhet kryhet një koreksion i konsiderueshëm i rezulltatit.
Pjesëtimi binar
Pjestimi në sistemin binar kryhet sipas të njëjtës rregull si dhe në sistemin
numerik dekad, por duhet përdorur tabelën e mbledhjes dhe të shumëzimit për sistemin
numerik binar. Realizimi i operacionit të pjesëtimit në kompjuter kryhet diçka me një
procedur të modifikuar, dhe konsiton në zbritjen suksesive të pjestuesit nga i
pjestueshmi. Do të përshkruajm procedurën për pjestimin binar:
Kaçanik
Kaçanik
10. Si zhvillohet thirrja e instruksionit nga kujtesa dhe vendosja e saj dhe regjistëri i
instruksioneve RI?
11. Cilët bita përmban regjistri i kushteve?
12. Cilët regjistra i përmban mikrroprocesori i 8086?
13. Cilat bita i përmban regjistri i kushteve i mkrroprocesorit i8086?
14. përmendni cilat dy funksone kryesore i kryen njësia kontrolluese?
15. Cilat lloje të ndërprerjeve ekzistojnë te mikrroprocesori i8086?
16. Përmes cilave sinjale dhe si zhvillohen ndërprerjet te mikrroprocesori i8086?
17. Si kryhet qasja direkte te mikroprocesori i8086?
18. Ç’farë është instruksion dhe cilat informacione duhet t’i përmbajë?
19. Ç’farë është mikrroinstruksion?
20. Ç’farë është adesim i kompjuterit dhe si në bazë të saj ndahet instruksionet?
21. Përshkruani formatet të cilat mund ti kenë instruksionet e mikrroprocesorit i8086?
22. Ç’farë është cklusi i ekzekutimit të instruksioneve dhe cilat faza i përmban?
23. Si rrjedhë faza e pregaditjes(thirrjes) së instruksineve?
24. Cilat janë karakteristikat themelore të arkitekturave RISK dhe CISK?
25. Në cilat faza ndahet cikli punues i procesorit te përpunimi tubacion (pipeline)?
26. Ç’farë janë mënyrat e adresimit dhe si formohen adresat efektive?
27. përmendni mënyrat kryesore të adresimit?
28. Cilat mënyra të adresimit përdoren te mikrroprocesori i80866?
29. Si formohet adresa efektive te adresimi drejtëpërdrejt, direkt dhe adresimi me
regjistra?
30. Si formohet adresa efektive te adresimi regjitër indirekt, bazik dhe indeks?
31. Cilat mënyra të adresimit ekzistojnë te mikrroprocesori i8086?
32. Për ç’farë shërben njësia aritmetiko-logjike dhe si realizohet?
33. Si ndahet bashkësia e instruksioneve të procesorit?
34. Çfarë është operacion unar dhe çfarë është operacion binar?
35. Ç’farë opracion njëklasësh dhe shumëklasësh?
36. Si bëhet mbledhja binare?
37. Si realizohet mbledhësi shumëklasësh binar?
38. Si bëhet zbritja binare?
39. Si zhvillohet procesi i shumëzimit të numrave pa shenjë dhe si realizohet?
40. Si zhvillohet procesi i pjetëmit i numrave pa shenjë?
Kaçanik
5. Asembler
Kaçanik
Emrat simbolik
Emri simbolik(titulli simbolik, identifikator) paraqet vargun e përbër prej
germave të alfabetit dhe të shifrave decimale të cilat fillojnë me germё ndërsa shërbejn
për të shёnuar ndojë nocion ose objekt. Përdorimi i emrave simbolik në jetën e
përditshme është një metod shumë e përhapur dhe për këtë dhe është arsyeja e futjes së
tyre në programim.
Kodet e operacioneve dhe instruksioneve shkruhen me emra simbolik e cila në të
njejtën kohë paraqesin dhe shenja mneomike( emrat e zgjedhur kështu ndimojnë që më
leht të mbahen mend dhe nocione përkatëse në të cilën ajo ka të bëj ). P.sh. shenja
mneomike për zbritje(në gj.shqipe) mund të jetë ZB, zhvendosaja e akumulatorit
ZHAK, etj. Konsiderohet se është më mirë të përdoren shenjat mneoteknike prej 2, 3 ose
4 simbole (germa dhe shifra) dhe praktikisht ky numër sillet nga 1 deri në 6 ose 7
simbole.
Për shёnim simbolikë të operacioneve të realizuar në kompjuter ne do të
përdorim emra simbolik të cilat paraqesin shenja mnemonike(mneomoteknikës) të
emrave të këtyre operacioneve në gjuhën angleze, në të ardhmën pothuejse të gjithë
kompjuterët të cilët ne i përdorim janë të prodhuar në mjediset ku dhe flitet anglishtja.
Adresat e operandёve dhe adresën e pjesës së instruksionit gjithashtu shenohen
me emra simbolik. Ku është përvetsuar principi që emrat simbolik të adresave të
operandve paraqesin emrat e këtyre operandve. P.sh nëse shkruajmë LD X, atëhere X
paraqet emër simbolik të lokacionit të kujtesës në të cilën do të jetë e vendosur vlera për
variablën të cilën e kemi emёrtuar me X. Në vend të emrave simbolik dikur është lejuar
që për shenim të adresave për operand të përdoren shprehjet aritmetike në cilat figurojn
adresat dhe konstantat numra të plot, të ashtuquajturat shprehje adresuese. Në pjesën
adresuese të instruksionit përdoret nganjëherë emrat simbolik dhe në pjesën modifikatorit
të adresës.
Në program shpesh nevojitet që të thёrrasim ndonjë instruksion në te. Në këtë
rast nevojitet të futet emri simbolik për instruksion në tërsin të cilën tani e quajm shenja
ose emri i instruksionit (dikur është përdor termi llabela e instruksioni, etiketa). Shenja e
instruksionit faktikisht paraqet emër simbolik për adresën e lokacionit të kujtesës në të
cilën do të vendoset ai instruksion.
Kaçanik
Gjuha asembler
Gjuhët programuese te të cilat instruksionet në program paraqiten me
instruksione simbolike të makinës quhen gjuhë simbolike të makinës ose gjuhë asembler.
Karakterizohen me ate se janë shumë të ngjajshme me gjuhën e makinës së kompjuterit
konkret dhe me to qëndrojn në raport 1:1, d.m.th. secilit instruksion simbolik i përgjigjet
një instruksion i makinës. Kodi burimor i shkruar në gjuhën asembler përmban:
-instruksione asembler- instruksione që i shërbejn mikrroprocesorit,
-direktiva asembler (pseudoinstruksione)- instruksione që i shërbejn asemblerit
Gjuha simbolike e makinës krahas këtyre përmban dhe një varg mundësish shtesë
për shkrim, modifikime dhe pregaditje të programit.
Shembull:
;
push ds
mov ax,0
push ax
mov bx,dseg
mov ds,bx
mov es,bx
;
mov dx,offset mesazh1
call prints
mov dx,offset varg
Kaçanik
call inputs
call newline
;
Fig 5.1 Forma simbolke e programit
Përdorimi i gjuhës asembler për programim kërkon që kompjuteri të ketë një
program të posaqëm me të cilin programi simbolik të përkthehet në program makine,
d.m.th. në kodin binar.
Asembleri
Asembler paraqet program të posaqëm i cili i përket grupës të programeve të
sistemit me emrin përkthyes programi dhe shërben për përkthimin e programit simbolik
në program makine. Ku elementi labela përkthehet në adresën e lokacionit të kujtesës ku
instruksioni do të vendoset, operacionet përkthehen në kodin binar të operacionit, ndërsa
adresa e operandit në adresën ku është vendosur e dhëna mbi të cilën kryhet operacioni.
Modifikatori përkthehet në bita të posaqëm ose grup bitash të cilat specifikojn
informacione shtesë për ekzekutim të instruksionit. Me komponimin e elementeve :
operand, modifikator, adresa e operacionit, formohet kodi binar i instruksionit.
Që të mundet asembleri të bëjë përkthimin, novojitet me ia dhënë adresën
fillestare në kujtesë nga e cila fillon vondosja e programit. Te kompjuterët bashkёkohor
kjo punë bëhet me program të posaqëm sistemi, përkthimi nga gjuha asemblerike bëhet
në adresat relative duke filluar nga adresa 0. Adresat e vërteta formohon në çastin e futjes
së programit në kujtesё para ekzekutimit.
Kaçanik
Variablat
Variablat paraqesin shenjën(llabelën) për të dhënat e veçanta., d.m.th. për
lokacione kujtesash të caktuara në të cilat vendoset vlerat e këtyre të dhënave. Munden në
program të definohen në dy mënyra.:
-me direktivën për definim të të dhënave dhe
-LABEL-direktivën
Secila varibël është e përcaktuar me këto atribute:
-segment- segmenti i kujtesës në të cilën ndodhen vlerat e variablave.
-zhvendosja – distanca në bajta nga fillimi i segmentit deri te fillimi variblës të
lokacionit të kujtesës në kuadër të segmentit;.
-tip-gjatësia e variblës në bajt.
Labelat
Labelat paraqesin shenja(etiketa) për pjesë të progarameve në të cilët mund të
“kalohet” ose të “kapërcehet” ose për pjesë të programeve ose për pjesë të programeve të
cilat mund thirren siç janë nënprogramet. Si dhe variablat, dhe labelat përmbajn tre
atribute : segment, zhvendosje dhe tip. Segmenti dhe zhvendosja kanë të njejtin kuptim
si dhe tek variablat, gjersa tip specifikon tipin e instruksionit e cila do të ekzekutohet në
lokacionin e dhënë në program. Për labelat janë të definuara dy tipet në vazhdim.
-NEAR- shenja për label të cilës iu qaset prej të njejtit sigment fizik dhe
-FAR- shenja për label të cilës të cilës iu qaset nga sgmenti i tjetër fizik.
Konstantet
Konstantet të cilat mund të përdoren në gjuhën asembler të mikrroprocesorit
i8086 mund të jenë :
-numra ,
-shenja ose germa.
Konstantat numra mund të jenë :
-binare,
-decimale dhe
-heksadecimale.
Konstantet numra përbëhen prej shifrave binare (njishe dhe zero) në fund të të
cilave duhet të jetë shenja se punohet me sistemin numerik binar p.sh germa B:
1100101B.
Konstantet decimale përbëhen prej vargut të shifrave arabe (0 deri 9) në fund të
vargut me shifra vendoset shenja për sistemin numerik dekad : germa D. Për dallim prej
konstanteve binare, konstantet decimale s’është e thënun të mbajnë shenjë për sistem
numerik dekad.
Kaçanik
Operatorët
Operatoret kan rrol që të modifikojn operandët e instruksionit të gjuhës asembler.
Ekzistojnë:
-operator aritmetik: +, -, *, /, Mod, SHL, SHR;
-operator logjik: AND, OR, XOR, NOT
-operatorët relacional: EQ, NE, LT, GT, LE, GE;
-operator vlerë-kthyes: $, SEG, OFFSET, LENGTH, TYPE, SIZE.
-Atribute: PTR, SHORT, THIS, HIGH, LOW;
Përdormi i operatorve të veçant do të spjegohen në shembujt konkret.
Kaçanik
Kaçanik
majtë ose djathtë. Këtu ekziston variante të ndryshme, varsisht se a është zhvendosja
rrotulluse apo jo.
Instruksionet për kontrollë të rrjedhës së ekzekutimit të programit ose instruksionet
për degëzim mundësojnë që të ekzekutohet njëra ose tjera pjesë e programit varsisht prej
ndonjë kushti të dhënë(të marrë) gjatë rrjedhës së punës së programit.për këtë këto
ndikojnë në rradhën e ekzekutimit të instruksioneve.
Instruksionet hyrëse/dalëse shërbejn për bartjen e të dhënave nga procesori në ndonjë
pajisje periferike ose të leximit nga pajisja pariferike në procesor, gjthashtu të testimit,
fshirjes ose vendosjen e indikatorve të gjendjes në pajisjet periferike.
Në grupën e instruksioneve me emrin instruksione të tjera përfshhihen instruksionet
të cilat nuk mund të rangohen në asnjërn prej grupave që i përshkruam. Ne këtu do ti
shqyrtojmë instruksionet pa veprime (s’kan operacione), ndalja ose ndërprerja e
ekzekutimit të programit, pritjet në ndonjë kusht, ndalimi ose lejimi të ndërprerjes së
programit etj.
; e kujtesës VENDI
b) PUSH BURIM
Me këtë i instruksion përmbatja e operandit burimor BURIM shkruhet në
Kaçanik
Shembuj:
PUSH AX
PUSH DX
PUSH WORD PTR[SI+2000]
PUSH [F0F0]
PUSH BX ;(UM:=(BX); UM:=(UM)+1
PUSH AX ;përmbatja e regjistrit AX shkruhet në kokë të stekut
Në procesorin 8086/88 mund ti vejmë/hjekim në/nga stek të gjitha regjistrat 16
bitësh(CS,DS,SS,ES,F dhe IP)
0000 2A
0001 3A Gjendja e stekut para
0002 5C urdhëresës PUSH Nga fig shihet se SP ka vleren 0005
0003 4D ndersa BX=ab02 kur te ekzekutohet
udhresa PUSH BX, SP do te zvoglohet
0004 FA <== SP=0005 per 2
0005 2C BX=AB02 per kete ne adresen ne te cilin tani tregon
0006 3D per mbatja e bx do te duket si me fig
0007 4C
0008 15
0009 ED
Kaçanik
0000 2A Gjendja e stekut para
0001 3A urdhëresës PUSH
0002 5C
0003 02 <== SP=0003
0004 AB BX=AB02
0005 2C
0006 3D
0007 4C
0008 15
0009 ED
c) POP CAK
Me këtë instruksion realizohet leximi të përmbatjes të kujtesës stek,
d.m.th.bartja e të dhënave nga koka e stekut në operandin CAK. Pas
ekzekutimit të këtij instruksioni treguesi i stekut inkrimentohet (rritet) për dy
dhe me këtë tregon në kokën e re të stekut.
Shembuj:
POP BX ;(UM):=(UM)-1; (BX):=((UM))
POP AX ; kopjohet përmbatja nga koka e stekut në AX
shembull :
POP CX
POP[FFFF]
POP DC
POP CS –është shpesh e ndalueme per pune (shih fig)
le ta vëzhgojmë situatën si në fig e më parshme e cila tregon gjendjen e stekut
pas instruksioni PUSH BX. Tani le ta japim POP DX , steku do te duket
keshtu:
0000 2A
0001 3A Gjendja e stekut pas
0002 5C urdhëresës POP DX
0003 02
0004 AB <== SP=0005
0005 2C BX=AB02,
0006 3D DX=AB02
0007 4C
Kaçanik
0008 15
0009 ED
d)
e) XCHG CAK, BURIM
Me këtë instruksion shkëmehen përmbatjet e operandit BURIM dhe CAK.
Gjatë ekzekutimit të këtij instruksioni së paku një operand duhet të jetë
regjistër, por regjitrat segment nuk mund të përdoren si operanda.
Shembuj:
XCHG AX, DX ; këmbehet përmbatja AX dhe DX
p.sh përmes instruksionit MOV do të dukej kështu:
MOV CX, DX
MOV DX,AX
MOV AX, CX (Siç shihet duhen tre instruksione dhe një regjister me hargju
ma tepër);
XCHG VAR, AX ;regjistri AX mbushet me vlerën e variablës VAR të
tipit ;DW dhe në të njetën kohë variabla VAR merr vlerën e përmbatjes së
;regjistrit AX
f) XLAT
Ky instruksion bart anëtar të caktuar të vargut (tabelës) në AL. Përdoret
kryesisht për adresim indirekt, për çka është e domosdoshme se para thirrjes të
këtij instruksioni inicializohet regjistri bazor BX në vlerën e zhvendosjes të të
dhënave e cila bartet.
p.sh përmes mov do të ishte kështu: MOV AL, [BX,AL]
Kaçanik
Kaçanik
Kaçanik
Kaçanik
Kaçanik
Kaçanik
Kaçanik
Operacioni i zhvendosjes
Me operacionin e zhvendosjes përbatja binare i ndonjë regjistri të procesorit
qendror zhvendoset për një apo më shumë pozicione binare majtë ose djathtë. Zhvendosja
majtë për një vend përcakton se shifra binare ngo pozicioni i i-të zhvendoset në
pozicionin e i+1. P.sh. përmbatja e 00110101 e zhvendosër majtë për një vend merr
formën 01101010. Varsisht nga mënyra në të cilën punohet me bita në pozicionet e larta
dhe të ulta dallohen zhvendosjet logjike , zhvendosjet aritmetike dhe rrotullimi.
Zhvendosja e përmbatjes binare për një vend majtë është ekujvalente me
shumzimin e asaj përmbatje me 2. zhvendosja djathtë për një vend është ekujvalent me
pjestimin e përmbatjes për 2.
Operacioni i zhvendosjes përdoret më së shumti me rastin e realizimit të
operacioneve aritmetike të shumzimit dhe pjestimit , por ka dhe shumë zbatime të tjera
praktike. P.sh , për paketimin e kodeve të simboleve të cilët ndodhen në dy regjistra të
ndryshëm ose në lokacionin e kërkesës spari zhvendoset njëri prej tyre për 8 pozicione.
Kaçanik
1110101100011000 gjendja pas zhvendosjes për tre vende majt (bit-ët 100
humbin)
0010011101011000 gjendja pas zhvendosjes logjike për dy vende djathtë (bit-ët
11 humbin)
instruksionet për zhvendosje logjike majtë dhe djathtë kanë format si në vazhdim:
a)SHL CAK, K
SHL
CF (shift left)
Kaçanik
Shembull:
1 0 1 0 1 1 0 1 0 0 0 1 1 0 1 1 përmbatja fillestare
1 1 1 1 0 1 0 1 1 0 1 0 0 0 1 1 përmbatja pas zhvendosjes aritmetike për tre vende
djathtë
Kaçanik
ROL
CF Rotate left
Shembull:
0 1 0 1 1 1 1 0 0 0 0 1 1 0 11 përmbatja fillestare
0 1 1 0 1 0 1 1 1 1 0 0 0 0 11 përmbatja pas rrotullimit djathtë për tre vende
0 1 1 1 1 0 0 0 0 1 1 0 1 1 01 përmbatja pas rrotullimit majtë për dy vende.
Opetacioni i rrotullimit shpesh realizohet zbashku me bitin e bartjes CF. Në këtë rastë
gjatë rrotullimit djathtë biti me pesh më të vogël bartet në CF ,ndërsa përmbatja e CF në
poziconin me peshë më të lartë. Instruksionet kanë format si në vazhdim:
c)RCR CAK,K (rotate through carry right)
Me këtë instruksion realizohet rrotullimi djathtë e operandit CAK dhe CF për k
vende
RCR
Rotate through carry right CF
RCL
CF (Rotate left throug carry left)
Kaçanik
Kaçanik
instruksionet e krahasimit
CMPS CAK,BURIM
a)CMPB
b)CMPW
Operandët për këto instruksione mirren prej të njetiv regjistra si dhe te
instruksioni për bartje. Me këtë instruksion krahasohen anëtarët e vargut. Efekti i
instruksionit është i njejtë si dhe te instruksioni CMP, vetëm se mekëtë instruksion
punohet me vargje.
Programi në vazhdim bënë krahasimin e blloqeve që fillojnë me adresat DS:3E20
dhe ES:2E40 në gjerësin të njetë prej 1CA bajtave.
CLD
LEA SI,[3E20]
ES: LEA DI, [2E40]
MOV CX,1CA
REPE CMPSB
Instruksionet kërkuese
Instruksioni për kërkim të vargjeve janë të ngjajshme me instruksionet për
krahasim. Dallim është në ate se instruksioni krahason të dhënën e lexuar me përmbatjen
e akumulatorit. Rezulltati i krahasimit përdoret për vendosjen e indikatorve në regjistrin e
kushtit. Formati i shkrimit të këtyre instruksioneve është si në vazhdim:
a)SCAS CAK
b)SCASB
c)SCASW
Kaçanik
Instruksionet e mbushjes
Këtë grup e përbëjnë instruksionet si në vazhdim
a)LODS BURIM
b) LOADSB
c) LOADSW
Me këto instruksion anëtari i vargut burim kopjohet në akumulator. Si dhe në
instruksionet paraprake, adresa e antarit të vargut burim ndodhet në çiftin e regjisrave
DS:SI. Pas kopjimit regjistri i indekseve azhurohet.
Instruksionet e vendosjes
Me instruksione të vendosjes kopjohet përmbatja e akumulatorit në anëtarin e
caktuar të vargut. Adresa e anëtarit të vargut në të cilën do të jetë i kopjuar përmbtja e
akumulatorit ndodhet në çiftin e regjistrave ES:DI. Formati dhënjes së këti instruksioni
nga kjo grup është:
a)STOS CAK
b) STOSB
c) STOSW
Siç dhe vrehet instruksionet e vendosjes kanë veprim të kundërt nga instruksioni i
mbushjes.
Programi i cili fshin ekranin me rezulucion të lartë, pra mbush bllokun i cili fillon
në B800:0000 ME gjerësi 4000 Bajta
MOV AX,B800
MOV ES,AX
CLD
MOV AL,0
ES: LEA DI,0000
MOV CX,4000
REP STOSB
Instruksionet e përsëritjeve
Instrusionet për punë me vargun e shenjave operojnë me të dhënat veç e veç.
Mirpo , më së shpeshti paraqitet nevoja që operacionet mbi vargjet të zbatohen në më
shumë antarë të vargut në mënyrë suksesive. Kjo zgjidhet me instruksionet e përsëritjeve.
Instruksionet e përsëritjeve iu vendosen si prefiks instruksioneve të tjera për punë me
Kaçanik
Kaçanik
a) JMP CAK
Ky instruksion realizon kapërcimin pakusht në labelën e caktuar ose lokacionin e
kujetsës të përcaktuar me operatorin CAK. Labela mund të jetë FAR ose NEAR. Nëse
punohet me NEAR labelën është e mundshme të realizohet këcimi vetëm në kuadër të
segmentit, ndërsa me FAR labelën mund të kcehet ndërmjet segmenteve.
1. JMP SHORT adresa direkte/relative
adresa instruksioni
C000 JMP SHORT 05
C002 ...
... ...
C007 MOV AX,8
Por thjesht
C000 JMP SHORT C007
C002 ...
... ...
C007 MOV AX,8
2.JMP NEAR adresa direkte
JMP NEAR 2CAE-shkakton kcimin në 2cae në kudër të segmentit të definuem
në regjistrin CS
JMP NEAR 2CAE~MOV IP,2CAE
3.JMP FAR
JMP FFFF:0000 është ekujvalent
MOV CS, FFFF
MOV IP, 0000
Në debung ky kcim nuk do të ishte plotësisht i shfrytëzueshëm me përjashtim për
kcimet në kujtesën ROM
Ky shembull shkaton veprimin sikurse të kyçim dhe çkyçim kompjuterin.
Përdorimi më i shpeshtë i kësaj forme është në programet COM
4. JMP regjistër 16 bitësh
Nganjëher gjatë kohës së shkrimit të programit nuk dimë sak se në cilin lokacion
duhet me kapërcy, këtë duhet ta dimë më pasë. Në këtë rastë këtë duhet shkruar në vend
të
MOV IP,AX si
Jmp ax. Në vend të regjistrit AX mund të shkruhet cilido regjistër
5 JMP lokacinion kujtese 16 bitshe
kur ekziston kcimi indirekt përmes regjistrit pse të mos ekzistoj edhe në ndonjë lokacion
kujetse . Paraqitja fiktive do të duket kështu:
MOV IP,[3A2E]- Pra sintaksa është
JMP [3A2E] ose
JMP WORD PTR[3A2E]
6 JMP LOKACION 32 Bitësht kujtese
JMP IP,[2E00] mund të kuptohet si
MOV IP,[2E00]
MOV CS,[2E02]- më së shumti shfrytëzohet në interrupt rutinat
Kaçanik
Nëse JMP SHORT ose JMP NEAR harrom short ose near debungi në vend të
vlerës së operandit vetë përcakton optimumin e instruksionit JMP. P.sh nëse në program
shtypim segmentin123A dhe shtypim JMP FAR 1AEF , kjo do të transformohet në
JMP 123A:1AEF (pra segmenti në të cilin në atë çastë punohet nunëkuptohet)
Kaçanik
5.12. Nënprogramet
Nocioni nënprogram
Në nënprograme shpeshë takohen grup të instruksioneve të cilat paraqesin tërsi
logjike ose kanë domethënje të pavarura dhe përsëriten në shumë vende. Pjesët e tilla të
programit përshkruajnë më shumë ose më pak etapën vetijake të ndonjë procesi llogaritar,
Kaçanik
ndësa mund të ekkzistojnë pos gjatë zgjidhje së një detyre konkrete dhe në zgjidhjen e të
më shumë të dyterave të ndryshme. Pas kësaj ,në secilën degë të shkencës dhe teknikës
ekzistojn vartësi funksionale të cilat shumë shpeshë përdoren. Ky është rast te llogaritjet e
funksioneve elemntare matematikore, zhjidhjet e ekuacineve , shëndrimin e ndonjërit kod
në tjetrin dhe të shumë përpunimeve të tjera tipike. Për qëllim të programit më të leht
dhe më të shpejt këta pjesë të programit ndahen në tërsi të pavaruar të programit të cilat
posaqërisht shkruhen, testohen dhe shfrytëzohen.
Programet të cilët janë të organizuar në mënyrë të tillë në të cilët mund të
zbatohet kontrolllimi(udhëheqja) nga ndonjë program tjetër dhe me përfundimin e
përpunimit kthehet përsëri në atë program quhet nënprogram. Me “bartje të kontrollës”
nënkuptohet marrja e instruksioneve të tjera për ekzekutim nga lokacionet e kujtesës në
cilën ndodhet instruksioni i parë ekzekutues i nënprogramit. Programi nga i cili thirret
nënprogrami quhet program kryeor ose bazë.
Nënprogramet paraqesin njësi të pavaruara të programit të cilat shkruhen vetëm
njëher ,ndërsa mund të përdoren kurdoher që të jetë nevoja për ta ,në një ose në më
shumë programe. Secili nënpërogram ka emër të posaqëm dhe thirret në mënyrë të njejtë
si të instruksioneve të veçanta të kompjuterit. Sipas natyrës të nënprogramit mund të
konsiderohen si dhe procedura për llogaritjen e ndonjë funksioni ose të më shumë
variablave ose për ekzekutimin e të një grupi të operacioneve të përbashkët dhe tipike për
shumë programe.
Foramat e nënprogrameve
Zbashku me përsëritjet në program nënprogramet përbëjnë teknikën bazë të
programimit te kompjuterët bashkëkohor. Sistemi i shkrimit të nënprogrameve mundëson
që vetëm një kopje e nënprogramit mund të thirret sipas dëpshirës herësh. Pos
programimit më të lehtë arrihet dhe ekonimicitet i konsiderueshëm i kujtesës.
Nënprogrami mund të shkruhet me shkallë të lartë të pavarsisë logjike nga
programi kryesor ose nënprogramit tjetër. Kjo mundëson që lehtë ti bëjmë modifikimet
në programin kryesor pasi lehtë mund të përcillen rrugët të këtyre modifikimeve dhe
ndikimet e tyre
Pavarsia logjike ka ndikim të konsiderueshëm dhe ate njerëz të ndryshëm ose
grup njerzish mund të shkruajnë pjesë të një programi të madhë. Mekanizmi i lidhjes të
programit kryesor dhe të nënprogrameve dhe mënyra e bartjes(përcilljes) së parametrave
të nënprogrameve definojnë në mënyrë precize se si këto grupe mund të komunikojnë
njëri me tjetrin.
Te shumica e kompjuterëve është e mundshme të shkruhen nënprograme në më
shumë gjuhë të ndyshme burimore dhe të lidhen në të njejtin program. Kjo ka randësi të
posame kur njëra prej këtyre gjuhëve është gjuhë simbolike e makinës ,ndërsa të tjerat të
larata programuese.
Struktura e nënprogramit
Krahas pjesës kryesore të nënprogramit në të cilën kryhet përpunimi, e
ashtuquajtura trupi i nënprogramit, në secilin nënprogram ekzistojnë dhe pjesë të tjera .
Kaçanik
për kalim në nënprogram (d.m.th. hyrje në nënprogram) përdoret sekuenca thirrëse (vargu
thirrës) i instruksioneve në të cilat në asembler ose në gjuhë të lartë programuese jepet
emri i nënprogramit me instruksion të posaqëm për thirrje të nënprogramit në formën:
CALL <emri i nënprogramit>
Secilën herë kur hyjet në nënprogram nevojitet ti jepen vlerat hyrëse të
domosdoshme për punë të nënprogramit. Në të njetën kohë nevojitet, pasë përpunimit , të
sigurohen dhe kthimi i rezulltatit në programin kryesor. Të dhënat të cilat futen në
nënprogram dhe rezulltatet dalëse nga nënprogrami quhen me një emër të përgjithshëm
parametrat hyrës dalës të nënprogramit. Për qasje të parametrave nganjëher formohen
pjesë të posaqme të nënprogrameve.
Në rrjedhën e ekzekutimit të programit lajmrohet nevoja për shfrytëzimin e
regjistrave të caktuar të procesorit qendror. Duke pasur parasyshë që përmbatjet e
mëparshme të këtyre regjistrave mund të jenë të nevojshëm për punën e më tutjeme të
programit kryesor, anulimi (fshiraja) e e tyre në nënprogram do të shkaktonte deri te puna
e mëtutjeme jo e drejtë e programit kryesor. Për këtë arsye nevojitet që në fillim të
nënprogramit të parashihet ruatja e përkohshme në vetë nënprogramin përmbatjet e të
gjitha regjistrave të procesorit qendror të cilët përdor në atë nënprogram. Kjo pjesë
zakonisht quhet mbajtja mend e gjendjes së procesorit ose mbatja mend e gjendjes së
nënprogramit. Pas përfundimit të përpunimit në nënprogram dhe para kthimit në
programin kryesor, lypset që përmbatja e këtyre regjistrave të përtrihet(rigjenorohet, të
rivendosen përsëri), d.m.th, të kthehet procesori në në gjendjen të parahyrjes në
nënprogram.
Në fig 5.2 është paraqitur struktura e nënprogramit
Hyrja në nënprogram
Mbatja mend e gjendjes së procesorit
Pregaditja për qasje të parametrave të nënprogramit
Trupi i nënprogramit(përpunimi)
Pregaditja e informacionit mbi rezulltatin
Ripërtritja e gjendjesë së procesorit (rigjenirimi)
Kthimi(dalja) nga nënprogrami
Domeni i punës së nënprogramit (mbatja mend e variablave)
Fig 5.2. struktura e nënprogramit
Tipet e nënprogrameve
Varsisht prej mënyrës në të cilën nënprogrami përfshihet(kyçet) në program,
dalohen dy nënprograme:
-nënprogramet e hapura dhe
-nënprogramet e mbyllura.
Nënprogarmi i hapur paraqet varg instruksionesh të cilët futen në programin
kryesor. Para secilit drejtim në nënprogramin e tillë në programin krysor ndërfutet
“kopja”të këtij vargu të instruksioneve , d.m.th një vargë i tillë i instruksioneve iu
bashkangjitet programit dhe ate aq herë sa dhe kryhet drejtimi në te (fig 5.3). Emetë
kryesore e nënprogrameve të hapur është përsëritja e të gjtha instruksioneve gjatë secilit
drejtim çka dhe kërkon më shumë kujtesë.
Kaçanik
Prog rami
Nënprogrami i P –rami
Nënprog
Hapur n
S s
s
Nënprogrami
i hapur
S
ss
5.45.3Përdorimi
mënyra ei përdorimit të nënprogramit
nënprogrameve të mbylluara
Kaçanik
Instruksioni CALL
Formati i shkrimit të instruksionit CALL është:
CALL procedura_ere ; kalimi në procedur procedura_ere
Ky instruksion adresën kthyese e shkruan në stek dhe kontrollën(udhëheqjen) e
bartë instruksionit të par të procedurës (proceduara_ere). Procedura mund të jetë e tipit
NEAR ose FAR . Nëqoftëse procedura është e tipit NEAR , në stek shkruhet përmbatja e
numruesit të instruksionit (IP), ndëra për procedurat e tipit FAR nevojitet që në stek të
shkruhet përmbatja e numruesit të instruksionit dhe përmbatja e regjistrit segment CS
1. CALL adrresa direkte –thirrja e nënprogramit të afërt
p.sh nëse në programin ton kemi CALL 2FEC kompjuteri do të sillet kështu
-zvoglon SP për 2
-në adresën e re në adresën në të cilën tregon SP vendos vlerën IP
-vazhdon kryerjen e instruksionit i cili gjindet në adresën 3FEC
2. CALL adresa direkte – thirrja e nënprogramit të largët
ngjajshëm si dhe në instruksionin e mëparshëm me një ndryshim se në stek
vendoset adresa e plotë(segment dhe offset) dhe SP zvoglohet për 4
CALL 3A00:2E4C
PUSH IP
PUSH CS
MOV CS ,3A00
MOV IP,2E4C (Asnëri prej instruksioneve nuk ekziton pos PUSH CS
3 CALL Lokacion i kujtesës 16bitshe
edhe nënprogarmet mund ti thrrasim në mënyr indirekte. P.sh thirre nënprogramin
i cili ndodhet në ndonjë adresë
CALL WORD PTR[3E02] ose
CALL [3E02]
Kjo është diçka si :
PUSH IP
MOV IP,[3E02]
Instruksioni RET
Instruksioni RET merrë përmbatjen e kokës së stekut dhe vendos atë në
numruesin e instruksionit , me çka bartë dhe kontrollën në adresën kthyese të programit
kryesor. Përdoret pa operand dhe formati i saj i shkrimit është:
RET ; kthimi nga nënprogrami
Shembull:
Kaçanik
Makrourdhëresat
Makrrourdhëresat paraqesin emra simbolik të gjuhës burim(asembler) me të cilat
që më parë është e definuar vargu i instruksioneve të makinës. Makrrourdhëri paraqet
nënprogram të hapur dhe me rastin e thirrjes së tijë në programin kryesor ndërfutet i tërë
vargu i instruksioneve të makinës.
Kaçanik
Kalimi në nënprogram
Kaçanik
Bartja e paramerave
Krahas zhgjidhjes së problemit të kthimit nga nënprogrami, problem tjetër me
randësi në përdorimin e nënprogrameve paraqet mënyra e bartjes të vlerave hyrëse ose të
ndonjë informacioni mbi to nga programi kryesor në nënprogram dhe bartja e rezulltateve
ose të informacioneve mbi to nga nënprogrami në programin kryesor. Këto pyetje
nganjëher quhen dhe pregaditja(dërgimi) i të dhënave për nënprogram.
Nënprogrami në nënprogram
Në praktik shpesh nevojitet që nga një nënprogram të thirrit si dhe nga programi
kryesor. Në këso raste ne themi se kemi strukturën e nënprogramit në nënprogram, dhe
ajo grafikisht është e paraqitur në fig 5.6.
Kaçanik
Kaçanik
Kaçanik
Kaçanik
newline proc
push dx ; ruhet regjistrat e shfrytëzuar
push ax;
mov dl, 0ah ; shtypet karakteri line Feed(LF) (
call printc ; kalimi në rresht të ri)
mov dl,0dh ; shtypet Cariage Return(CR)
call printc ; karakteri për fillim të rreshtit
pop ax ; kthehen vlerat e mëparshme
pop dx ; te regjistrave
ret
newline endp
printc proc
push ax ;
mov ah, 02h ; zgjidhet funksioni i DOS-it 02h
int 21h ; thirret interrrapti 21h
pop ax
ret
printc endp
printint proc
push ds ;
push di ; ruhet përmbatja
push ax ; e regjistrit të shfrytëzuar
push bx ;
push cx ;
push dx ;
mov ax,dseg ;
mov ds,ax ; inicializohet DS
assume ds:dseg DS tani mund të shfrytëzohet
mov di ,offset numri ; DI inicializohet të tregoj në adresë
add di,5 ; ku duhet të vendoset shifra e fundit
mov cx,10 ; pjestuesi =10
mov ax, dx ; numri i cili shtypet tani është në AX
mov bx,dx ; A gjithashu dhe në BX
cmp ax,0 ; krahasojmë AX dhe 0
jge pers ; nëse AX>0 shkojmë në pon a nese nuk është
neg ax ; AX=-AX gjithashtu AX është sigurisht poziitiv
pers :xor dx,dx ; DX=0
div cx ;AX=AX div 10 ,DX=AX mod 10
add dl,’0’ ; formojmë ascII kodin e shifrës dhe
mov [di],dl vendosim në adresën në të cilën tregon DI
dec di ; DI=Di-1
cmp ax,0 ; ai kemi përpunuar të gjitha shifrat?
Kaçanik
inputc proc
mov ah,01h ; zgjedhet funksioni i DOS-it 01h
int 21h ; ekzekutohet interrapti 21h
ret ; kthimi ne programin kryesor
Inputc endp
inputs proc
push ax ; ruhen regjistrat e shfrytëzuar
push di;
mov di,dx ; OFFSET adresa e vargut shkon në DI
cik : call inputc ; lexohet karakteri në AL
cmp al,13 ; a është i shtypër ENTER
je fundi1 ; nëse po përfundon
mov [di],al ; nëse nuk është vendosur karakteri në varg
inc di ; dhe rrisim treguesin për 1
jmp short cik ; dhe e gjitha nga fillimi
fundi1: mov byte ptr[di],’$’ ; në fund japim shenjën për fund të vargut
pop di ; kthejm regjistrat e shfrytëzuar;
pop ax;
ret ; kthimi në programin kryesor
inputs endp
inputint proc
push di
push dx ; ruhen regjistrat e shfrytëzuar
push ds ;
push bx ;
Kaçanik
push cx ;
mov dx,dseg ;
mov ds,dx ;
assueme ds:dseg;
xor dx,dx ; DX=0
mov di, offset inpnumri; OFFSET i vargut të shfrytëzuar shkon në DI
mov byte ptr[di], 07 ; MAX numri i karakterit të lexuar është 7
mov dx,di ; DX=DI (offseti i vargut)
mov ah,0ah ; zgjedhet funksioni i Dos-it 0ah dhe thirret INT21h ashtu
int 21h ; që në vargun innumri ndodhen shifrat e numrit të lexuar
xor cx,cx ; CX=0
mov bx,10 ; konstanta për shumzim
xor ax,ax ; AX=0
add di,2 ; di tregon në në shiofrën e parë të lexuar
xor dx,dx ; Dx=0
per : mov dl,byte ptr[di]; karakteri i par shkon në dl
cmp dl,13 ; a është prezente enter-i?
je fu ; nëse po përfundojmë punën
cmp dl’-‘ ; a është prezente shnja ?
je negt ; nëse po CH=1 , që më pas të ndrrojm shenjën
mov cl,dl ; rujmë (për shkak të shumzimit) DL në CL
imul bx ; shumzojmë Ax me BX
xor dx,dx ; pastrojmë DX
mov dl, cl ; kthejmë karakterin e lexuar në DL
sub dl,’0’ ; nga ascii kodi i shifres formojmë vetë shifrën
add ax,dx ; dhe i shtojmë AX=AX+DX
jmp per1 ; kalojm në per1
Negt: mov ch,1 ;CH=1 , me çka ruajmë se a është numri i lexuar negativ
per1 : inc di ; DI= DI+1pra tregon në shifren tjetër të lexuar
Jmp short per ; sërisht krejt prej fillimit
fu : cmp ch,1 ; a është CH=1
jne fun ; nëse jo dmth numri i lexuar nuk është negativ
neg ax ; në të kundërtën Ax=-ax
fun : pop cx ; kthejmë përmbatjen e regjistrit të shfrytzuar
pop bx ;
pop ds ;
pop dx ;
pop di ;
ret
inputint endp
Cseg ends
end
Kaçanik
sseg ends
dseg segment
ipari
ipari dw ? ; variablat te cilat
idyti dw ? ;perdoren ne program
Mesazhi 1 shum dw ?
ndrysh dw?
mesazhi1 db ’Jepni numrin:$’ ; mesazhe të cilët
idyti mesazhi2 db ’shuma eshte:$’ ;shtypen
mesashi3 db ‘ndryshimi eshte:$’;
Dseg ends
ax=ipari
Cseg segment
ax=ax+idyti Assume cs:cseg, ss:sseg, ds:dseg, es:dseg
Extrn prints:near,newline:near,printc:near,printint:near
Extrn inputs:near,inputc:near;inputint:near
shum=ax
main proc far
push ds
ax=idyti mov ax,0
push ax
ax=ax-ipari mov bx,dseg
mov ds,bx
ndrysh=ax mov es,bx
;
mov dx,offset mesazhi1;offseti i mesazhit shkon në DX
Mesazhi 2
Kaçanik
;
mov ax,idyti ;AX=IDYTI
mov ax, ipari ; AX=AX-ipari
mov ndrysh, ax ; Rezulltati vendoset në NDRYSH
;
Kaçanik
Dseg segment
ipari dw ? ; variablat te cilat
idyti dw ? ;perdoren ne program
prodh dw ?
hers dw ?
mesazhi1 db ’Jepni numrin:$’
mesazhi2 db ’prodh ështe:$’
mesashi3 db ‘hersi është:$’
mesashi4 db ‘ndërsa mbatja është:$’
Dseg ends
Cseg segment
Assume cs:cseg, ss:sseg, ds:dseg, es:dseg
Extrn prins:near,newline:near,printc:near,printint:near
Extrn inputs:near,inputc:near;inputint:near
main proc far
push ds
mov ax,0
push ax
mov bx,dseg
mov ds,bx
mov es,bx
;
Kaçanik
mbetja
fund
Kaçanik
Kaçanik
fillimi
Titlle Vargu
1 mesazhi sseg segment stack
db 256 dup(?)
sseg ends
numri
dseg segment
numri dw ?
cx=0 varg dw 50 dup(?)
mesazhi1 db ’shkruni numrin e anëtarve të vargut:$’
dx=0 mesazhi2 db ’mesi aritmetik është:$’
po dseg ends
dx>numri
ax cseg segment
assume cs:cseg, ds:dseg, ss:seg, es:dseg
cx=cx+ax extrn prints:near, newline:near, printc:near, printint:near
extern inputs:near, inputc:near, inputint:near
main proc far
push ds
dx=dx+1 mov ax,0
push ax
ax=cx/numri mov bx,dseg
mov ds,bx
mov es,bx
;
mesazhi2
ax
fund
Kaçanik
call newline;
mov [di],ax ; vendosim antrain e lexuar në VARG
add cx,ax ; CX=CX+AX
add di,2 ; DI=DI+2 (operojmë me fjalë)
inc dx ; DX=DX+1
jmp short pers;
vazhd: mov ax,1 ; AX=1
mov di, offset varg ; DI tregon në numrin e parë për shtypje
pers1: cmp ax, numri ; a është AX> NUMRI
jg fund ; nëse po përfundojmë
mov dx,[di] ; nëse jo DX=Antari aktual i vargut
call newline
call printint ; shtypet anëtari aktual i vargut
add di,2 ; DI=DI+2 ( tregon në anëtarin e dytë të vargut)
inc ax ; AX=AX+1
jmp short pers1;
fund: mov ax,cx ; AX=CX
cwd ; pregaditja për pjestim
idiv numri ; AX=DX:AX/NUMRI
mov dx, offset mesazhi 2;
call newline ;
call prints ; shtypet MESAZHI2
dseg segment
varg dw 50 dup(?)
maimadhi dw -32768
maivogli dw 32767
mesazhi1 db ’jepni numrin e anëtarve të vargut:$’
mesazhi2 db ’anëtari më i madhë i vargut është numri:$’
mesazhi3 db ’anëtari më i vogël i vargut është numri:$’
dseg ends
Kaçanik
Cseg segment
assume cs:cseg, ds:dseg, ss:seg, es:dseg
extrn prints:near, newline:near, printc:near, printint:near
extern inputs:near, inputc:near, inputint:near
main proc far
push ds
mov ax,0
push ax
mov bx,dseg
mov ds,bx
mov es,bx
;
mov dx,offset mesazhi1 ;
call prints ; shtypet MESAZHI1
call inputint ;
call newline
mov di, offset varg ;
mov bx,ax
mov cx,1
pers: comp cx,bx
jg vazhd
call inputint
mov [di],ax
call newline
cmp ax,maimadhi
jng vazh1
mov maimadhi,ax
vazh1: cmp ax,maivogli
jnl vazh2
mov maivogli ,ax
vazh2: add di ,2
inc cx
jmp short pers
vazhd: mov cx,1
call newline
mov di,offset varg
cak: cmp cx,bx
jg fund
mov dx,[di]
call printint
call newline
add di,2
inc cx
Kaçanik
dseg segment
varg dw 50,51 dup(?) ; bajti i parë i vargut përmban gjatësin e vargut
nvarg db 51 dup(?) ; gjatësia e vargut =50 +’$’ në fund
mesazhi1 db ’jepni vargutfillestar:$’
mesazhi2 db ’vargu i ndryshur është:$’
dseg ends
cseg segment
assume cs:cseg, ds:dseg, ss:seg, es:dseg
extrn prints:near, newline:near, printc:near, printint:near
extern inputs:near, inputc:near, inputint:near
main proc far
push ds
mov ax,0
push ax
mov bx,dseg
mov ds,bx
mov es,bx
;
mov dx,offset mesazhi1;
call prints ;
mov di, offset varg;
Kaçanik
call inputs;
call newline
cld ; DF=0 dhe se DI dhe SI rriten te LODS,STOS
mov di, offset varg+2 ; nga bajti i dytë gjindet vargu i lexur
mov di,offset nvarg;
xor cx,cx ;CX=0
mov cl,[si-1] ; në bajtin e parë të vargut është numri i karakterit të lexuar
pers: lodsb ;Al=[DS:SI], SI=SI+1
cmp al,’a’ ; a është AL <’a’
jb tjeter ; nëse po kcjmë në Tjetër
cmp al,’z’ ; a është AL>’z’
ja tjeter ; nëse po shkojmë në tjetër
sub al,32 ; në të kundërtën prej të voglave formjmë germa të mëdha
jmp short incizo ; këcejmë në incizo
tjeter: al,’A’ ; a është AL<’A’
jb incizo ; nëse po përfundojmë
cmp al,’Z’ ; a është AL>’Z’
ja incizo ; nëse po përfundojmë
add al,32 ; nga shkronjat e mëdha formojmë të voglat
incizo: stosb ; [ES:DI]=AL,DI=DI+1
loop pers ;CX=CX-1, nese është CX<> 0 kcejmë ne pers
mov byte ptr[di],’$’ ;përcaktojm fundin e vargut nvarg
mov dx,offset mesazhi2 ; pregditemi per shtypje
call prints ; shtypim mesazhin përkatës
mov dx, offset nvarg ;pregaditemi për shtypjen e vargut të ri
call prints ; shtypin vargun e ri të përfituar
ret
main endp
cseg ends
end main
Kaçanik
ose db ‘or $’
eose db ‘xor $’
negac db ‘not nr1 $’
dsed ends
Cseg segment
assume cs:cseg,ds:dseg,ss:seg,es:dseg
extrn prints:near,newline:near,printc:near, printint:near
extern inputs:near, inputc:near,inputint:near
main proc far
push ds
mov ax,0
push ax
mov bx,dseg
mov ds,bx
mov es,bx
;
mov dx,offset mesazhi1 ;DX=OFFSET mesazhi1
call prints ;shtypet mesazhi1
call inputint ; dhe lexohet numriprej tastierës
mov numri1 ,ax ; i cili vendoset në lokacionin përkatës
call newline ; kalojmë në rreshtë të ri
call prints ; sërisht shtypim mesazhin 1
call inputint ; lexojmë numrin nga tastiera
mov numri2 ,ax ; dhe e vendosim në lokacionin përkatës
;
call newline ; kalojmnë rreshtë të ri
mov dx,offset mesazhi2 ;DX=OFFSET MESAZHI2
call prints; shtypet mesazhi2
mov dx, numri1 ; DX=numri1
call printbin ; shtypet Numri1 në binar
call newline ; kalojmë në rreshtë të ri
mov dx,offset mesazhi3 ; DX=OFFSET mesazhi3
call prints; shtypim mesazhin 3
mov dx,numri2 ; DX=NUMRI2
call printbin ; shtypim NUMRIN2 në binar
call newline ; kalojmë në rresht të ri
;
mov dx,offset rez ; DX=OFFSET rez
call prints ; shtypim minuset (duket me mire:)
call newline ; kalojme në rresht të ri
mov dx,offset i ;DX=OFFSET mesazhi i
call prints ; shtypet mesazhi
mov dx,numri1 ;DX=NUMRI2
Kaçanik
ret
main endp
cseg ends
end main
Shembulli8 zhvendosja
title shiftimi
Kaçanik
dseg segment
numri dw ?
n dw ?
mesazhi1 db ‘ jepni numer:$’
mesazhi2 db ‘ jepni numerin n:$’
mesazhi3 db ‘ numer=$’
shle db ‘SHL 1=$’
shl1 db ‘SHL n=$’
shri db ‘SHR 1=$’
shr1 db ‘SHR n=$’
carry db ‘CF=$’
dseg ends
Cseg segment
assume cs:cseg,ds:dseg,ss:seg,es:dseg
extrn prints:near,newline:near,printc:near, printint:near
extern inputs:near, inputc:near,inputint:near
main proc far
push ds
mov ax,0
push ax
mov bx,dseg
mov ds,bx
mov es,bx
;
mov dx,offset mesazhi1 ;DX=OFFSET mesazhi1
call prints ;shtypet mesazhi1
call inputint ; dhe lexohet numri prej tastierës
mov numri,ax ; i cili vendoset në lokacionin përkatës
call newline ; kalojmë në rreshtë të ri
mov dx,offset mesazhi2 ; DX=OFFSET i meszhit2
call prints ; shtypim mesazhin
call inputint ; lexojmë numrin N nga tastiera
mov n,ax ; dhe e vendosim në lokacionin përkatës
call newline ; kalojmnë rreshtë të ri
;
mov dx,offset mesazhi3 ;DX=OFFSET mesazhi3
call prints ; shtypet mesazhi
mov dx, numri ; DX=NUMRI
call printbin ; shtypet Numri në binar
call newline ; kalojmë në rreshtë të ri
Kaçanik
Kaçanik
Kaçanik
Kaçanik
6.Softveri sistemor
6.1. Nocioni dhe ndarja e softverit sitemor
Sistemi i kompjuterik është kombinimi i hardverit dhe softverit (fig 6.1a ).
Hardveri (përkrahja teknike, pajisja makinerike ) ka të bëjë me pajisjen e cila paraqet
komponentet fizike të cilit do sistem të cilat kryejn funksione të caktura. Hardveri
përfshin komponentet elektrike, elektromekanike, elektronike dhe mekanike të
kompjuterit.
Termi softver ose përkrahja programore përdoret për ato komponente të sistemit
të cilat nuk janë fizike. Në kuptim më të përgjithshëm termi softver përkundër termit
hardver, tregon të gjitha programet të cilat mund të përdoren në një sistem kompjuterik.
Ndarja themelore e softverit është treguar në fig 6.1b ). Termi softwere sistemi
përdoret në të gjitha programet të cilët në ndonjë mënyrë iu ndimojn të gjithë
shfrytëzuesve të tipit të caktuar të kompjuterit që sa më mirë ta shfrytëzojnë kompjuterin.
Softwere aplikativ, për dallim nga softvere të sistemit, përmbajn programe që shërbejnë
për zgjidhje të problemeve të shfrytëzuesit.
Kompjuteri =
Hardver +Softver
a) komponentet kompjuterit
Softevri (përkrahaja programore)
- Softvere sistemi
- Softvere aplikative
b) ndarja e softverit
Kaçanik
Softveri komunikues
Softveri komunikues përmban programe funksionet e së cilëve janë administrimi i
komunikimit të kompjuterit me terminal të largët ose me kompjutër tjetër. Komponentet
themelore të softverit komunikues janë treguar në fig (6.2b)
Detyra kryesore e softverit komunikues është administrimi i fuksionimit dhe të
komunikimit të të gjitha pajisjeve të lidhur në rrjetën e kompjuterve, ndërsa posaqërisht :
kontrollës reciproke të veprimit të proceseve në rrjetë, adminstrimin e vetë rrjetës,
administrimin e shërbimeve të rrjetës. Grupa e parë dhe e tretë e detyrave kontrolluese
janë karakteristike për të gjitha llojet e rrjetave, ndërsa grupa e dytë është karakteristikë e
sistemeve distributive.
Kaçanik
Kaçanik
Kaçanik
Kaçanik
Kaçanik
Kaçanik
Kaçanik
Kaçanik
Planifikuesi i punëve
Planifikimi i punëve dhe ndarja e resurseve ekzekutohen(kryhen) në mënyra të
ndryshme në vartsi nga mënyra e përpunimit të të dhënave në kompjuter (regjimet
punues) :
- te regjimi monoprogram të punës udhëheqja me punë bëhet me formimin e
rradhitjes për kryerjen e punëve. Nëqoftse ndonjë program kompleks përbëhet
prej shumë programeve të moduleve objek (pjesë), atëhere përcaktohet se cili
modul do të jetë në çastin e caktuar në kujtesën operative dhe cili do të mbetet
në ate sekundare.
- Te regjimi multi-program i punës punët e arritura formojnë rendin pritës, të
cilat më pas, programi i posaqëm –planifikusi i punëve i zgjedhë sipas
përcaktimit të një kriterimi të dhënë. Punët e zgjedhura bëhen aktive. Se çfar
prioriteti do të kenë punët e caktuar varet prej qëllimit me të cilin dëshirohet të
arrihet. Qëllimet mund të jenë nga më të ndryshmet. Më së shpeshti është e
nevojshme të arrihet sa më e madhe fuqia lëshuese e kompjuterit (ekzekutimi i
numrit sa më të madhë të operacionev në periodën kohore sa më të shkurt )
ose të realizohet koha sa më e shkurtë e përgjigjjes (minimalizimi i kohës nga
pranimi i programit deri te marrja e rezulltateve).
Kaçanik
Ndarja e resurseve
Programet për ndarje të resurseve hyejn në kuadër të programeve të sistemit për
menaxhim të detyrave (supervizor), por në mënyrë të caktuar shërbejn për kontrollim të
punëve. Funksionet themelore të cilat këtu realizohen janë:
-rindarjen e pajisjeve periferike të cilat lirohen,
-rirradhitja e kujtesës operative me përfundimin e programit,
-rirradhitjen e çelsave brojtës të kujtesës,
-vërtetimi i ndarjes së kujtesës operative para fillimit të programit,
-formatizimi i zonave(domeneve) të kujtesës ,
-pregaditja për mbushjen (ngarkimin) e programit në kujtesën operative dhe
-bartja e kontrollës në program.
Kaçanik
Adminstruesi i ndërprerjeve
Siç është e njohur procesori shpesh punon me ndërprerje. Ndërprerja paraqet
përgjigjje në ngjarjet asinkrone ose sinkrone. Ndërprerjet përdoren për qëllim të rritjes së
efikasitetit, besushmërisë dhe të sinkronizimit të elementeve të procesorit. Mënyra të
ndryshme të punës të sistemeve operative kërkojn mekanizma për gjenerimin të një vargu
me sinjale ndërprerës që të mund ta realizojnë këtë. Njëashtu që sigurohet besushmëria e
sistemit, nëse kjo nuk është e rreguluar në mënyrë softverike në kuadër të sistemit
operativ, përdoret një hardver i posaçëm i cili teston se a kan dështuar pjesë të veçanta,
nëse dështimi zbulohet, procesori për këtë lajmrohet me sinjal të posaqëm
Funksioni i programit të sistemit operativ për administrim të ndërprerjeve
përmban këto aktivitete :
-zbulimin e kërkesës për ndërprerje ;
-përcaktimin e prioriteteve të ndërprerjeve;
-pregaditjen e ndërprerjeve;
-kthimin në programin e ndërprer.
Me sinjalin ndërpres kërkohet kalimi nga programi aktual në programin për
përpunimi të ndërprerjeve. Ekzistojnë lloje të ndryshme të ndërprerjeve të cilët kanë
prioritete të ndryshëm, dhe me marrjen e sinjalit për ndërprerje, programi i ndërprerjeve,
programi ndërprerës përkohsisht e lëshon dhe kur të krijohen kushtet, procesori përsi iu
ndahet. Që programi të mund të filloj normalisht të punoj, nevojitet të ruhen përmbatjet
aktuale(në rrjedhë) të disa regjistrave të procesorit (p.sh akumulatorit, numruesit të
instruksionit, regjistrit indeks, bazik dhe regjistrit të gjendjeve). Kur programi përsëri
aktivizohet, rexhistrat në fjalë mbushen me përmbatjet e ruajtura.
Kaçanik
Kaçanik
Administrimi(menaxhimi) i periferive
Sistemi operativ në një masë të caktuar kontrollon punën e pajisjeve periferike në
formën e përkrahjes programore. Për shkak të vetë specifikave të pajisjeve periferike, të
cilat janë kryesisht janë makina elektromekanike ( pra dhe dukshëm më të ngadalshme se
procesori), kontrollimi këtu zhvillohet në dy nivele kryesore: logjik dhe fizik.
Në nivelin logjik kontrollimi i periferive duhet të siguroj:
detektimin e gabimit dhe koreksionin eventual ose tërhiqjen e vretjes,
përshtatja e pajisjes periferike njësis qendrore të kompjuterit,
sigurimin e punës me periferin, çka nënkupton dhe përkrahjen e standardit për
këmbimin e të dhënave.
Në nivelin fizik menagjimi me pajisje siguron:
- përcaktimin (ose ndarjen) e adresës kujtesës operative,
- formimin e vargut me shenja kontrolluese për vendosjen e komunikimit,
- sinkronizimin punës të më shumë pajisjeve periferike( p.sh monitorve dhe
tastierës),
- përshtatjen e shpejtësisë të rrjedhës së të dhënave nëpër pajisje të ndryshme
periferike.
Menaxhimi i fajllave
Etërë forma kryesore për ruatjen e të dhënave në kompjuter janë fajllat. Sistemi
operativ mban evidencën mbi fajllat kështu që ka një tabelë të posaqme në të cilën janë të
shkruara fajllat e të dhënave. Këto tabela ndodhen në kujtesën operative dhe më së
shpeshti përmbajnë:
-emrin, madhësin dhe kohën e ndyshimeve të fundit në fajlla,
-të dhënat mbi organizimin e saj,
-mënyrën për qasje në fajlla dhe
-gjendjen e fajllit.
Menaxhimi me fajlla paraqet në realitet, ndërlidhjen programit të shfrytëzuesit
(aplikativ) dhe funksionit të sistemit operativ për menaxhim me hyrje daljet (supervizorin
e hyrje daljeve). Krahas mbatjes së evidentimit mbi fajllat, funksionet e menaxhimit me
fajlla janë :
Kaçanik
Kaçanik
-paraprocesorët gabimeve
-programe ndimëse
Kompilatori
Kompilimi mund të ndahet në dy detyra kryesore:
a) analizë –vërtetimi i strukturës të programit burim dhe
b) sintezë –gjenerimin (konstruksionin ) e programit objekt ekujvalent me
programin burimor.
Në procesin e analizës programi burimor konvertohet në formën apstrakte e cila
përmban të gjitha veçoritë me randësi të algoritmit. Analiza përfshin analizën leksikore
dhe analizës sintaksore. Në analizën leksikore renditën njësit hyrëse me kuptim të
caktuar, siç janë emrat, konstantat, fajalët e rezervuara dhe operatort. Analiza sematike
paraqet procesin e vendimarrjes se a është vargu i simboleve hyrëse fjali e gjuhës së
dhënë, dhe nëse është, përcaktimi i strukturës sintaksore të këtij vargu.
Procesi i sintezës përmban dy pjesë të posaqme: gjenerimi i kodit dhe asamblimit.
Gjenerimi i kodit transformon programin burim apstrakt në program ekujavalent të
makinës. Me asamblim bëhet konverzioni i urdhëresave të makinës në formatin përkatës
dalës dhe formohet moduli objekt i përshtatur përpunimt të lidhësit makinës cak.
Interpretatori
Mënyra interpretuese për realizim të përkthyesit më së shpeshti zbatohet te gjuhët
programuese interaktive, Siç është p.sh. bejzik (ang BASIC) dhe te gjuhët e ndryshme
komanduese. Kurdoherë që të arrijë rreshti i ri hyrës, aksionet e mëtutjem i ndërmerë
kontrolleri i përpunimit i cili i thërret:
a) programin homogjenozator për qëllim të konverzionit të rreshtit të programit
hyrës në ndonjë format standard intern ;
b) analizatorin sintaksor dhe gjeneratorin e kodit për qëllim të vërtetimit
sintaksor dhe gjenerimi i kodit të makinës;
c) procesori i komandave për qëllim të përpunimit të urdhërave
kontrollues(udhëheqës) p.sh.RUN, por jo dhe ekzekutimin e saj.
Kaçanik
Paraprocesori
Paraprocesori është program i cili kryen ndonjë modifikim të programit burim që
ta bëjë atë të përshtashëm për hyrjen në kompilator. Modifikimet mund të jenë ndryshime
të thjeshta të formatit por më së shpeshti janë zgjerime( ekspanzione) të
makrrourdhërave të gjuhëve të larta programuese me të cilat zgjerohet gjuha për ndonjë
zbatim special.
Kaçanik
Programet ndimëse
Programet ndimëse paraqesin bashkësi programesh të cilët nuk janë të natyrës
fundaamentale por me to zgjerohen mundësit e sitemit kompjuterik dhe këtë dhe
përmisohet kualiteti i shërbimit në shërbim të shfrytëzuesit. Numri dhe llojet të këtyre
programeve të cilët janë pjesëmarrës në softverin e sistemit dallojnë prej sistemit në
sistem. Në vazhdim i japin vetë disa tipe programesh ndimëse :
formimimi i biblotekave të programeve,
mirëmatja e fajllave: fshirja, formatizimi, lidhja, kopjimi, riemrimi etj.
Shfrytëzimi i fajllave: modifikimi, azhurimi, leximi, prezentimi në ekran etj.
Puna me katalogje (emror)
Konvertimi i fajllit nga njëri format në tjetrin,
Shtypja e përmbatjes të fajllit
Krahasimi i përmabatje të dy fajllave etj.
Kaçanik
Kaçanik
Pjesa qendrore e sistemit operativ quhet bërthamë, nukleus ose kernel, kjo pjesë
e sistemit operativ është e ngarkuar (angazhuar) për komunikim direkt me harduerin.
Udhëheqja me harduerin UNIX-i e realizon përmes fajllit special ( SPECIAL FILE). Për
komunikim me shtresat e larta përdor thirrjet sistemore(SYSTEM INTERFACE
CALL).
Komponentet kryesore të bërthamës janë:
-sistemi për udhëheqje me detyra,
-sistemi mbi mbajtjen e evidentimit mbi fajllat,
-sistemi për udhëheqje të hyrje-daljeve
Administrimi i detyrave
Sistemi për udhëheqje me detyra realizon:
-komunikimin ndërmjet detyrave,
-sinkronizimin ndërmjet detyrave
-planifikimin e detyrave
-administrimi i kujtesës.
Kaçanik
Detyra ose procesi në UNIX paraqet programi i cili ekzekutohet. Ajo mund të
gjendet në dy regjimet kryesore punë;
-në sistemor-regjimin e favorizuar (system state) ose regjimin e bërthamës, kur
detyrën e ekzekuton bërthama dhe kur iu qaset segmenteve të dhënave të sistemit.
-në regjimin e shfrytëzuesit (user state), kur detyrat i kryen programet shfrytëzues
dhe iu qaset segmenteve të të dhënave të shfrytëzuesit.
Kalimi nga regjimi shfrytëzues në regjimin e sistemit realizohet përmes përmes
thirrjes së sistemit, ndërsa kalimi nga regjimi i sistemit në regjimin e shfrytëzuesit ndodhë
kur shërbimi i sistemit (qasja e segmenteve të të dhënave të sistemit) –përfundon, ose kur,
nëse shërbimi nuk ka mund të kryhet, dërgohen mesazhe përkatëse për gabime.
Krijimi i detyrës realizohet përmes thirrjes sistemore fork. Kur të filloj leximi i
programit të bërthamës nga disku, aktivizohet detyra “0” ose bërthama. Të gjitha
proceset e reja i krijon ndonjëra prej detyrave ekzistuese. Secila detyrë e merr numrin e
saj identifikues. Kështu p.sh bërthama ka numrin e identifikimit 0; detyra në vazhdim të
saj , e cila mbikqyer krijimin e detyrave të tjera (init proces), krijohet nga ana e
bërthamës, me thirrjen e sistemit fork dhe kjo merr numrin identifikues 1. Detyrat e tjera
mund të kenë numrat të ndryshëm identifikues.
Komunikimi ndërmjet detyrave dhe sinkronizimi ndërmjet këtyre realizohet në
shumë mënyra të ndryshme:
-lidhjen e detyrave përmes datapërcjellsit ( gyp-pipe)-rrjedhës së bajtëve
ndërmjet proceseve në një drejtim,
-lidhjen e detyrave përmes mesazheve,
-lidhjen e detyrave përmes kujtesës së përbashkët,
-lidhjen e detyrave përmes semaforit.
Planifikimi i detyrave paraqet ndarjen e kohës së procesit detyrave. UNIX përdor
algoritmin e planifikimit rotativ me rende në shumë nivele (algoritmi –RR- roud rubin
with multilevel feedback). Detyrat e shfrytëzuesit marrin prioritete dinamike, varësisht
prej sasisë të përfitimit të kohës së procesorit. Detyrat që kanë përfituar më shumë kohë
të procesorit , marrin prioritet më të ulët dhe anasjelltas.
Administrimi i kujtesës
Menaxhimi me kujtesë realizohet me krijimin e hapësirës të adresave virtuale.
Kujtesa ,detyrave iu ndahet në faqe. Secila detyrë merr imazhin e kujtesës e cila tregon
përmbajtjen e cila është në kujtesë në kohën e kryerjes së detyrës. Imazhi i kujtesës i
ndarë detyrës së caktuar mund të kalohet nga kujtesa operative në disk (ang. Swapping) ,
nëse ndonjëra prej detyrave të prioritetit më të lartë kërkon kujtesën operative
Menaxhimi i fajllave
Sistemi për menaxhimin e fajllave kryen punët si në vazhdim:
-ndarjen e hapësirës në kujtesën e jashtme (disqet, shiriti magnetik),
-mban evidentimin mbi hapësirën e lirë,
-gjen të dhënat (kërkon përmbajtjet e fajllave) sipas kërkesës së shfrytëzuesit,
- mban llogari mbi qasjet në fajlla.
Kaçanik
doc cdr
Fajllat katalog janë nyjat të cilat lidhin strukturën e fajllave në një tersi. Këto
fajlla kanë formatin e shkrimit që më parë të definuar dhe trajtohen si fajllat e tjerë, pos
se posedojnë mbrojtje shtesë.
Kaçanik
Zakonisht fajllat FIFO dhe fajllat special në strukturën e pemës mund të paraqiten
si fletë, ndërsa fajllat katalog (emëror) paraqesin degët e pemës.
Kaçanik
Kaçanik
Komanda Domethënia
cd Ndërrimi i direktoriumit aktual
chmod Definimi i mënyrës për qasje të fajllit
chown Ndërrimi i poseduesit të fajllit
cmp Krahasimi i përmbajtjeve të dy fajllave
cp Kopjimi i fajllit
date Shfaqja ose ndryshimi i datës aktuale
find Kërkimi i pemës me katalogë
kill Mbyllja e detyrës aktuale të hapur
is Shfaqja e përmbajtjes të katalogut aktual
mail Dërgimi ose pranimi i postës elektronike
mkdir Krijimi i katalogut të ri
paswd Ndërrimi i fjalëkalimit
pwd Shfaqja e katalogut aktual
rm Fshirja e fajllit të dhënë
rmd Fshirja e katalogut aktual
stty Shfaqja ose ndryshimi i opsioneve të terminalit
who Shkrimin e listës me shfrytëzuesit aktual
Kaçanik
Kaçanik
Kaçanik
Kaçanik
Popullariteti i këtij sistemi operativ fillon nga verzioni Windows 3.0. Ky verzion
është shitur mbi katër miljon ekzemplar. Më vonë lajmrohet verzioni Windows 3.1,
Windows 3.11 të cilët edhe më shumë forcuan pozicionin të këtij sistemi operativ në
botë. Sot Windowsi është sistemi operativ më i shituri në botë. Për tipe të ndryshëm të
kompjuterve ekzistojn verzione të ndryshëm të Windows-it:
Windows 3.1 iu ka shërbyer kompjuterve PC të tavolinës për klasët 386 dhe 486
dhe Pentium PC si dhe për kompjuterë të ndryshëm transportuse(të bartshëm);
-Windows for workgroups –(dritaret për grupe punuese) ose Windows 3.11,
paraqet në të vërtet Windows 3.1, me përkrahjen për rrjetat lokale, postën elektronike të
integruar në te;
-WinPad- sistemi operativ për kompjuterë të dorës me interfesin grafik të
shfrytëzuesit;
-Windows for Pens- verzion i sisemit operativ i cili mundëson njohjen e shkrimit
me dorë të dokumentit;
-Windows 95, pasardhës i Windows 3.1x, paraqet verzionin 32 bitësh të sistemit
operativ që u shërben kompjuterve me karakteristika më të mira të sistemit operativë dhe
kërkesa për kujtesë më të mëdha. Ky verzion paraqet sistemi operativ komplet të ndarë
prej MS DOS-it por edhe më tutje e përkrah;
-Windows NT –sistemi operativ për stacione punuse të fuqishme dhe rrjeta
serverësh.
Programet për ofrimin e shërbimeve të sistemit operativ Windows përmbahen në
tre module:
-moduli për përkrahje të përgjithshme-kernel,
-moduli grafik(GDI)
-moduli i shfrytëzuesit-për menagjim të dritareve.
Këso strukturë e kan sistemet operative 16-bitësh nga grupa –Windows 3.1x.
Windows 95 mbështet në këtë struktur, por përmban kompletë strukturën për punë me
programet 32 bitësh., mundëson gjatësin më të madhe të emrave të fajllave, qasje më
efikase të disqeve optike dhe pajisjeve të tjera periferike dhe mundësi shtesë për punë në
rrjetë. Me gjithat mundësi më të mëdha ofron verzioni Windows NT.
Windows NT
Windows NT (ang NT-New Tehnoogy-teknologji e re ), paraqet sistemin
operativ 32 bitësh, i krijuar me ambicje që në të ardhmen të tejtë baza për të gjithë
kompjuterët PC, stacionet punuese dhe serverët. Bashkon të gjitha vetit e mira të
verzioneve të mëparshme të cilat duhet ti posedojë një sistem operativ bashkohorë.
Krahas veçorive të verzioneve të mëparshem ,ky sistem operativ përmban:
a)mundësin të punës në platforma hardverike të ndryshme ( dhe në kompjuterët
me tipe të ndryshëm procesorve qendror);
b)përkrahjen e të gjitha tipeve të rrjetave kompjuterike dhe përparim në mundësin
për përpunim distributiv;
c) mundësin të shfrytëzimit të të gjitha aplikacioneve të deritashme të krijuara në
DOS dhe Windows;
Kaçanik
Kernel
Hardver
Kaçanik
Aplikacioni
(puna)
1
Procesi(ang process)-Kur një program ekzekutohet krijohet procesi i sistemit operatit(p.sh procesi i
windows 98). Një proces është një tip i objektit që përmban një hapsirë adresuse, një bashksi të objekteve
(resurceve) të pashëm për procesin, si dhe bashkësi të Threadeve(nënproceseve) që ekzekutohen në
kontekst të procesit.
2
Nënprocesi (ang Thread)- një tip i objektit brenda procesit që i ekzekuton instruksionet e programit. Duke
përdorur shumë nënprocese(threads) lejohen operacione konkurente brenda procesit dhe mundësohet që
një një proces të ekzekutohet në pjesë të ndryshme të programit të tijë në procesor të ndryshëm në të njejtën
kohë. Një nënproces( thread) ka bashkësin e tijë të regjistrave , Kernel stack e tijë, bllokun e mjedisit të
threadit(a thread evironment block), stekun e përdorusit në hapsirën e adresave të procesit të tijë.
Kaçanik
WIN32 API WIN16 API MS-DOS API OS/2 API POSIX API
Windows NT
Nënsistemi WIN32
Nënsistemi WIN16
Nënsistemi MS-DOSNënsistemi OS/2 Nënsistemi POSIX
Windows NT Executive
*Baza e sistemit operativ
* Fajllat e sistemit , drajverët e pajisjeve dhe kodi i rrjetës
Windows 2000
Nga prespektiva e programerit windows 2000 është i ndarë në dy shtresa , të cilat në të
vërtet janë dy mode të ndarë funksional. Në modin kernel Windows 2000 i kryen detyrat
e brendshme dhe drejton në mënyrë interakltive ndërmjet programit dhe sistemit operativ
dhe ndërmjet programeve të veta. Në rastin e përgjithshëm është i mbrojtur prej
“bredhjve “ të përdorusit nëpër te. Në modin e përdorusit , i cili në të vërtet është i
vendosur mbi modin kernel, që të jetë sa më afër përdorusit të startoj aplikacionin. Zona
që vëzhgohet nuk është e mbrojtur pasi ka qasje në aplikacion.
Kaçanik
Nënsistemi
Win32
Modi shfrytëzues
Modi kernel
Mikrro kernel
Drajverat e pajisjeve Drajverat e displejve
Shtresa abstrakte e hardverit
Hardweri
Kaçanik
Kaçanik
Tendencat në përgjithësi
Përparimi i teknologjisë në prodhimin qarqeve të integruara gjysëmpërquese dhe
përmirsimi i përhershëm i atyre ekzistuese dhe zbulimi i arkitekturave të reja ka për
rezullat zhvillimin të jashtëzakonshëm dhe ate parasëgjithash të procesorve, si dhe
përparimin e kujtesave të jashtme dhe periferive të ndryshme. Mikroprocesorët ekzistues
gjithnjë dhe më shumë po iu afrohen me mundësit e tyre funksionale procesorve të
fuqishëm, dhe me to po realizohen të gjitha idet e reja me të cilat përmirsohen mundësit
funksionale dhe rritja e shpejtësisë së punës. Karakteristika me më rendësi të procesorve
të rinjë janë:
-ekzistimi i më shumë njësive të posaçme procesorike,
-realizimi i njësisve procesorike si sisteme rrjedhëse,
-futja në procesor të shumë tipeve të kujtesave-kesh,
-parapërpunimi i instruksionit,
-kombinimi i aritekturës RISK dhe CISK,
-paraparja e degëzimit të adresave,
-ekzekutimi i më shumë instruksioneve në një ciklues të makinës,
-ekzekutimi i instruksionit jashtë rradhës së tijë,
-sistem shumëprocesorik dhe të tjera.
Njësit procesorike
Shumica e procesorve bashkëkohorë tani më përmbajnë shumë njësi procesorike
të specializuara të cilat funksionojn paralelisht dhe të pavarura njëra nga tjetra, në
sinkronizimin e punës kur dhe kjo është e nevojshme. Disa nga këto njësi janë të
multilinkura. Njësit tipike janë:
-njësia për aritmetikën e numrave të plotë,
-njësia për aritmetikën e numrave me pikë të lëvizshme,
-njësia për degëzim,
-njësi për parapërpunimin e instruksionit,
-njësin për ekzekutimin e instruksionit,
-njësia për administrimin e magjistrales së sistemit,
-njësin për shkrimin e të dhënave në kujtesë,
-njësin për leximin e të dhënave nga kujtesa,
-njësin për punë mulimediale etj.
Shumica prej këtyre njësive kanë regjistra intern të rendeve pritëse ose kujtesave
baffer për qëllim të sinkronizimit dhe pritjes në ekzekutim ose kujtesën-kesh me
pasqyrim asociativ të cilat mundësojn qasje të shpejt në kërkimin e të dhënës.
Kaçanik
Kujtesa kesh
Kujtesa kesh realizohet brenda në procesor zbashku me komponentet përkatëse.
Kapaciteti i kujtesës-kesh është prej disa Kb deri disa dhjetra Kb. Kujtesat-kesh tipike në
proceor janë:
-Kujtesa-kesh për instruksione,
-kujtesa-kesh për të dhëna ,
-kujtesa-kesh për dekodimin e instruksionit paraardhës.
Këto kujtesa-kesh quhen kujtesa-kesh primare, pasi nga jashtë mund t’ju kyçen
kujtesat-kesh sekundare.
Kujtesa kesh punon me shpejtësin me të cilin dhe punon procesori, dhe ia ofron
procesori në disponim të dhënat të cilat në te ndodhen. Në këtë mënyrë shumë shpejtohet
ekzekutimi i shumë operacioneve në procesor.
Krahas kujtesës-kesh, në procesor gjithmon rritet dhe numri i regjistrave për
qëllime të përgjithshme, të cilat janë më shumë se disa dhjetra, por që ky numër do të
jetë disa qindra.
Kaçanik
Multimediumi
Multimedium paraqet bartjen në të njejtën kohë, shfaqjen dhe shfrytëzimin e të
dhënave nga më shumë mediume të ndryshme kujtese, siç janë të dhënat tekstuale ,
grafika , fotografit statike , fotrografit e lëvizshme dhe video, të folurit dhe të dhënat
audio.Përdorimi në të njetën kohë i më shumë mediumeve është shumë i përshtashëm për
njeriun , e posaqërisht kur indirekt informaciont të cilat vizualisht pranohen.
Shfrytëzimi i multimediumeve parashtron kërkesa të reja dhe për nga procesori
dhe përnga sistemi i bartjes, pasi duhet të barten dhe përpunohen numër shumë i madhë i
të dhënave, ku gjithashtu është i nevojshëm dhe procedura e kompresimit dhe
dekompresimit te fotografit e lëvizshe dhe të pa lëvizshme. Për këtë është tendenca e
zgjerimit të bashkësisë së instruksioneve të procesorit me instruksione speciale (spaku
dhjetë deri njëzet) me të cilat dukshëm shpejtohet përpunimi i të dhënave multimediale.
Kaçanik
ngarkes e mëdhe për furnizuesit, ndërsa shfrytëzuesit gjithëmon është dashtë që të shtojnë
hargjime shtesë që ti arrijnë shkallën rritëse të nevojave të tyre.
Që nga vitet e 80-ta gjithjnë e më shumë flitet mbi të ashtuquajturin sistemin e
hapur kompjuterik, i cili më së miri mund të definohet përmes tre karakteristikat
themelore të cilat duhet t’i posedojnë:
-portabilitetiti,
-skallabilitetit dhe
-interolebaritetit.
Portabiliteti tregon bartjen e softverit aplikativ nëpërmjet kompjuterve të
ndryshëm pa intervenim shtesë në kodin(programin) burim. Skalabiliteti tregon
mundësin e bartjes të softverit aplikativ në nivele të ndryshme të kompjuterit.
Interliberatiti nënkupton mundësin e komunikimit ndërmjet kompjuterve të prodhuesve
të ndryshëm pa marrë parasyshë largësin dhe madhësin e kompjuterit.
Që kjo të mund të realizohen këto kërkesa nevojitet një punë me vëllim të madh
në përpunimin dhe futjen e standardit ndërkomtar në shumë laminjë të informatikës dhe
të teknologjisë.
Duhet theksuar se në një masë të madhe kompjuterët personal kanë kontribuar që
të mendohet edhe për sistemin e hapur kompjuterik pasi kompjuterët personal mund të
ndërtohen me pajisjet të prodhuesëve të ndryshëm dhe të funizohen me programe
aplikative prej shtëpive të ndyshme të softwerit, çka nuk ka qenë rast te kompjuterët e
tjerë.
Pyetje dhe detyra:
1. Cilat janë karakteristikat më me rëndësi të procesorve të rinjë?
2. Cilat njësi procesorike kanë procesor të rinjë?
3. Për cilat nevoja futet kujtesa kesh dhe për çka kontribon?
4. Me çka karakterizohen superskalariteti dhe superrjedhja?
5. Cilat mënyra realizohet shpejtimi i ekzekutimit të instruksionieve?
6. Ç’është multimedia?
7. Me çfarë karakterizohen siteme kompjuterike të hapur dhe të mbyllur?
8. Cilat janë tre karakteristikat themelore të sistemeve të hapura kompjuterike?
Kaçanik
Shtesë
Instruksionet aritmetike
OF SF ZF AF PF CF
ADD d,s + + + + + + d=(d)+(s)
ADC d,s + + + + + + d=(d)+(s) +CF
AAA ? ? ? + ? + Nivelizimi ASCII*
DAA ? + + + + + Nivelizimi ASCII*
INC d + + + + + + d=(d)+1
SUB d,s + + + + + + d=(d)-(s)
SBB d,s + + + + + + d=(d)+(s) -CF
ASS ? ? ? + ? + Nivelizimi ASCII*
DAS ? + + + + + Nivelizimi ASCII*
DEC d + + + + + + d=(d)-1
NEG d + + + + + + d=-(d)
CMP d,s + + + + + + krahason d dhe s
MUL s + ? ? ? ? + AX=(s)*(AL),s=bajt
DX:AX=(s)*(AX),s=fjal
IMUL s + ? ? ? ? + MUL Për numra me shenjë
AAM ? + + ? + ? Rregullimi ASCII*
Kaçanik
DIV s ? ? ? ? ? ?
AL=(AX)/(s),s=bajt
AX=(DX:AX)/(s),s=fjal
IDIV s ? ? ? ? ? ? DIV për numrat me shenjë
AAD s ? + + ? + ? Rregullimi ASCII*
CBW AC=(AL)
CWD DX:AX=(AX)
* pas operacioini të caktuar aritmetik ndrron përmbatja e regjistrit AX ashtu që përmban
vlerën e shifrës në ASCII e cila është rezulltat i atij operacioni të caktuar
OF SF ZF AF PF CF
Instruksionet për zhvendosje
SHL d,1 + + + ? + + zhvendos d 1 vend majtë
SHL d,CL ? + + ? + + zhvendos d CL vende majtë
SAR* d,1 0 + + ? + + zhvendos d 1 vend djathtë
SAR d,CL ? + + ? + + zhvendos d CL vende djathtë
SHR d,1 + 0 + ? + + zhvendos d 1 vend djathtë
AHR d,CL ? 0 + ? + + zhvendos d CL vende djathtë
Instruksionet për Rotacion
ROL d,1 + - - - + + Rotohet d majtë për 1 vend
ROL d,CL ? - - - + + Rotohet d majtë për CL vende
ROR d,1 + - - - + + Rotohet d djathtë për 1 vend
ROR d,CL ? - - - + + Rotohet d djathtë për CL vende
RCL d,1 + - - - + +Rotohet d majt për 1 nëpër CF
RCL d,CL ? - - - + + Rotohet d majt për nëpër CF
RCR d,1 + - - - + +Rotohet d djathtë për 1 nëpër CF
RCR d,CL ? - - - + + Rotohet d djathtë nëpër CF
* SAR dhe SAL dallohen prej SHL dhe SHR sipas asaj se SAR dhe SAL ruajnë shenjën e regjistrit të
shfrytëzuar ndësar SHL dhe SHR këtë nuk e bëjnë.
Instruksionet logjike
OF SF ZF AF PF CF
AND d,s 0 + + ? + 0 d=(d) and (s)
Or d,s 0 + + ? + 0 d=(d) or (s)
XOR d,s 0 + + ? + 0 d=(d) xor (s)
NOT d - - - - - - d=not(d)
TEST d,s 0 + + ? + 0 (d) and (s)
Kaçanik
OF DF SF ZF AF PF CF
CLD - 0 - - - - - Vendos DF në zero
STD - 0 - - - - - Vendos DF në një
Prefiksi i përsëritjes Përsërit instruksionin string
Kaçanik
Instruksionet e kërkimt
SCAS ds + + + + + + + CMP AX, [ES:DI],DI=DI+DF
SCASB ds + + + + + + + Krahaso bajt, DI=DI[+][-]1
SCASW ds + + + + + + + Krahaso bajt, DI=DI[+][-]2
instruksionet për lexim
LODS ss - - - - - - - AX= [DS:SI],SI=SI+DF
LODSB ss - - - - - - - Lexohet bajt në AL
LODSW ss - - - - - - - Lexohet fjala në AL
Instruksionet për vendosje
STOS ds - - - - - - - [ES:DI]=AX
STOSB ds - - - - - - - [ES:DI]=AL
STOSW ds - - - - - - - [ES:DI]=AX
Ismail Dashi
Kaçanik