Modet e adresimit

## Adresimi
### Hyrje
Fusha për adresim e një instruksioni është relativisht e vogël per kah madhësia.Do të dëshironim që të adresonim një numër më të madh të të adresave memorien kryesore.Për të arritur këtë shfrytëzohen një numër i madh i teknikave të adresimit.Ato përfshijnë një lloj marrëveshje ndërmjet rangut të adresave, numrit te referencave memorike në instruksion dhe kompleksitetit të kalkulimit të adresës.Disa nga teknikat më te përdorshëmë të adresimit janë:
* E menjëhershme
* Direkte
* Indirekte
* Me regjistër
* Indirekt me regjistër
* Me zëvendësim
* Me Stack (lexo: stek)
## I menjëhershëm

Kjo ështe metoda më e thjeshtë e adresimit në të cilën vlera e operandit është pjesë e vetë instruksionit.
**Operdandi = A**
Kjo metodë përdoret për të inicializuar vlera të konstanteve apo të variablave.Vlerat numerike ruhen si komplement i dyshit.Biti me peshën më të madhe e tregon shenjën e numrit.Përparësia e kësaj teknike është se nuk ka referenca në memorie gjë që e bënë këtë metodë shumë të shpejtë.Mangësi është numri i kufizuar i hapsirës adresuese që kufizon edhe gjatësinë e operandit.
## Direkt

Një fomrë shumë e thjeshtë e adresimit është edhe adresimi *direkt*.
Te kjo teknikë e adresimit fusha adresuese e përmbanë adresen efektive të operandit.
**EA = A**
Kjo metodë e të adresuarit ishte shumë e përdorur në gjeneratat e më herëshme të kompjuterëve, mirëpo tani kjo teknikë nuk është e pranishme në arkitekurat e kopjuterëve të gjeneratave të fundit.Është shumë e shpejtë por mangësia e saj qëndron thuajse njësoj sikur te 
teknika e * menjëhershme * , pra në numrin e limituar të adresave nga gjatësia maksimale e fushes adresuese.
## Indirekt

Me adresimin *direkt* gjatësia e fushës adresuese është zakonisht më e vogël se gjatësia e fjalës, si e tillë e kufizon rangun e adresave. Një zgjidhje është që përmbajtja e fushës adresuese të jetë një adresë referuese për fjalën në memorie.Ky është adresimi *indirekt.***EA = (A)**
Avantazhi i dukshëm i kësaj metode është se nga një fjalë me gjatësi N do të kemi një hapësirë adresuese me gjatësi 2N.Disavantazhi i kësaj metode është ajo ka dy referenca memorike.Të parën për adresën e operandit kurse të dytën për vlerën e tij.Gjithësesi se është me i ngadalshëm, por gjithashtu edhe numri i adresave efektive është i limituar në 2K, ku me K kemi shënuar gjatësinë e hapsirës adresuese të instruksionit.

## Me regjistër

*Adresimi me regjistër* është i ngjajshëm me adresimin *direkt*. Dallimi i vetëm është se tani fusha adresore referon në një regjistër e jo në një adresë memorike.**EA = R**
Nëse përmbajtja e fushës adresuese është 5, atëherë regjistri R5 ka operandin e kerkuar.Saktësisht një fushë adresuese do të ketë 3 deri në 5 bita, kështu në total do të mund të adresonin 8 deri në 32 regjistrat me destinim të pergjithshëm.(23=8 , 25=32).Përparësi e kësaj teknike është se nevojitet një hapsirë shumë e vogël adresuese dhe se procesi nuk merr shumë kohë, pasiqë çasja në regjistra është shumë herë më e shpejtë se sa në memorien kryesore.Mangësi e kësaj metode është se gjatësia e operandiëve është e kufizuar me gjatësine e regjistrave.

## Indirekt me regjistër

Ashtu sikur që *adresimi me regjistër* është analog me *adresimin direkt* , *adresimi indirekt me regjistër* është analog me *adresimin indirekt*.Në të dy rastet diferenca është nëse fusha adresuese referon në një regjistër apo në një lokacion memorik.
**EA = (R)**Avantazhet dhe përparësitë janë thuajse të njëjta me ato të *adresimit indirekt*.Fusha adresuese kufizon gjatësinë e fjalëve të përdorura në gjatësinë e vetë fushës.Por *adresimi indirekt me regjistër* përdor më pak referencë në memorien kryesore dhe si i tillë është me i shpejtë se ai *indirekt*.

## Me zëvendësim

*Adresimi me zëvendësim* është një kombinim i avantazheve të dy teknikave të adresimit , *direkte* dhe asaj *indirekte*.Njihet me emra të ndryshëm varësisht nga konteksti në të cilin përdoret por që mekanizmi bazë është i njejtë.Ne i referohemi si *adresimi me zëvendësim*.**EA = A + (R)***Adresimi me zëvendësim* kërkon që inkstruksioni të ketë dy fusha adresuese, dhe së paku njëra të jetë eksplicite.Njëera vlerë e fushës adresuese është e përdorur në mënyrë direkte (vlera A), kurse tjetra vlerë e fushes adresuese ose ndonjë referencë implicite ne regjistër e bazuar në opkod, i shtohet vlereës A për të fituar adresen efektive.
Tri përdorimet më të shpeshta te *adresimit me zëvendësim* janë:
#**Adresimi Relativ**
#**Adresimi në Regjistrin Bazë**
#**Indeksimi**.
## Me Stack

Dhe metoda e fundit e adresimit është *adresimi me stack*.Stack-u është një varg linear i lokacioneve që shpesh herë referohet si ** pushdown list ** apo edhe si ** last-in-firs-out queue **.Elementet janë të qasshme nga maja e stack-ut.Paralelisht me të është edhe një pointer që ka si vlerë adresen e majës së stack-ut.Nëse dy elementet e para gjenden në regjistra atëhere pointuesi tregon në elementin e tretë në stack.Pointuesi i stack-ut ruhet në regjistër.Kështu referencimi ne stack në menyrë indirekte është referencë ne regjistra.Pra *adresimi me stack* në një farë mënyre është i nënkuptuar.Instruksionet nuk përmbajnë referencë memorike por në mënyrë implicite operojnë me majën e stack-ut.

## Sqarimet/Referimet
### Referime 
#
Blend.Mehmeti (diskutimet) 6 qershor 2014 00:04 (CEST)