Adressering er implementeringen af et link (reference) til en enhed eller et dataelement på dens adresse [1] ; etablering af en korrespondance mellem et sæt af objekter af samme type og et sæt af deres adresser; metode til at identificere placeringen af et objekt [2] .
Instruktionen må ikke indeholde eksplicitte instruktioner om operanden ; i dette tilfælde er operanden underforstået og faktisk specificeret af instruktionens opkode.
Instruktionen må ikke indeholde eksplicitte indikationer om adressen på den operand, der deltager i operationen, eller den adresse, hvor resultatet af operationen skal placeres, men denne adresse er underforstået.
Instruktionen indeholder ikke operandens adresse, men selve operanden. Med direkte adressering kræves der ingen hukommelsesadgang for at hente en operand og en hukommelsesplacering for at gemme den. Dette hjælper med at reducere programmets udførelsestid og mængden af hukommelse, det optager. Direkte adressering er praktisk til lagring af forskellige slags konstanter.
Adressen er angivet direkte som en eller anden værdi, alle celler er placeret på én side. Fordelen ved denne metode er, at den er den enkleste, og ulempen er, at bredden af processorens generelle registre skal være mindst lige så bred som bredden af processorens adressebus .
Med denne adresseringsmetode defineres udførelsesadressen som summen af instruktionens adressekode og basisadressen, normalt gemt i et særligt register - basisregistret.
Relativ adressering gør det muligt at give adgang til enhver hukommelsescelle med en mindre længde af instruktionens adressekode. For at gøre dette vælges antallet af bits i basisregisteret, således at enhver celle i hovedhukommelsen kan adresseres, og instruktionens adressekode bruges til kun at repræsentere en relativt kort "offset". Forskydningen bestemmer positionen af operanden i forhold til begyndelsen af arrayet givet af basisadressen.
Adressefeltet for styreordet indeholder kun de mindst signifikante bits af den adresserede celle. Yderligere indeksregister .
Registeradressering er et særligt tilfælde af forkortet adressering. Det bruges, når mellemresultater er lagret i et af arbejdsregistrene i den centrale processor. Da der er meget færre registre end hukommelsesceller, kan et lille adressefelt være nok til adressering.
For første gang blev indirekte adressering af 2. rang ( pointers ) brugt ved programmering på MESM [3] . Ved at tilføje til kommandoen med operandadresseværdien "0" værdien af hukommelsescellen, hvor adressen på den påkrævede operand er placeret, gjorde det muligt at bruge disse hukommelsesceller som adresseværdier, dvs. henvisninger til operandadresser.
Indirekte adressering af højere rang blev først introduceret i adresseprogrammeringssproget (1955) [4] [5] og implementeret i hardware i computeren "Kiev" [6] . I kommandosystemet på computeren "Kiev" er der en F-operation, som giver dig mulighed for at reducere adressen på adressen, dvs. udføre en "bindestreg-operation" eller dereference en pointer , og gruppeadressemodifikationsoperationer [5] [6] gjorde det muligt at udføre flere indirektioner af pointere i hardware.
Kommandoens adressekode angiver i dette tilfælde ikke adressen med data, men adressen på hukommelsescellen, hvor adressen på operanden eller kommandoen er placeret. Dette er rang 2 adressering eller pointere . Indirekte adressering er meget brugt i små og mikrocomputere med et kort maskinord for at overvinde begrænsningerne ved det korte instruktionsformat (registreret og indirekte adressering bruges sammen).
Effektiviteten af computersystemer designet til databehandling øges, hvis det er muligt at udføre operationer på ord af variabel længde. I dette tilfælde kan maskinen levere adressering af ord med variabel længde, hvilket normalt implementeres ved at specificere i instruktionen placeringen i hukommelsen af ordets begyndelse og dets længde.
Stakhukommelse , som implementerer adresseløs tildeling af operander, er især udbredt i mikroprocessorer og minicomputere .
Da registerindirekte adressering kræver, at registeret er forudindlæst med en indirekte adresse fra RAM, hvilket er forbundet med et tab af tid, er denne type adressering især effektiv ved behandling af en række data, hvis der er en mekanisme til automatisk at øge eller dekrementere indholdet af registret, hver gang det tilgås. Denne mekanisme kaldes henholdsvis auto-increment og auto-decrement-adressering. I dette tilfælde er det nok at indlæse adressen på det første array-element, der behandles i registret én gang, og hver gang registret tilgås, vil adressen på det næste array-element blive dannet i det.
Med auto-increment-adressering bruges indholdet af registret først som adressen på operanden, og derefter inkrementeres med antallet af bytes i array-elementet. Med automatisk dekrementeringsadressering bliver indholdet af registret specificeret i kommandoen først formindsket med antallet af bytes i array-elementet og derefter brugt som operandens adresse.
Auto-increment og auto-decrement-adressering kan betragtes som en forenklet version af indeksering, en meget vigtig mekanisme til at konvertere adressedelene af kommandoer og organisere beregningscyklusser, så de kaldes ofte auto-indeksering.
For computer-implementerede metoder til løsning af matematiske problemer og databehandling er den cykliske karakter af beregningsprocesser karakteristisk, når de samme procedurer udføres på forskellige operander ordnet i hukommelsen. Da operanderne behandlet under loop-gentagelser har forskellige adresser uden brug af indeksering, ville det være nødvendigt for hver gentagelse at komponere sin egen sekvens af instruktioner, der adskiller sig i adressedele.
Programmeringen af cyklusser forenkles betydeligt, hvis der efter hver udførelse af cyklussen tilvejebringes en automatisk ændring i de tilsvarende kommandoer af deres adressedele i overensstemmelse med placeringen i hukommelsen af operanderne, der behandles. En sådan proces kaldes instruktionsmodifikation og er baseret på evnen til at udføre aritmetiske og logiske operationer på instruktionskoder.
af operativsystemer | Aspekter|||||
---|---|---|---|---|---|
| |||||
Typer |
| ||||
Nucleus |
| ||||
Procesledelse _ |
| ||||
Hukommelseshåndtering og adressering | |||||
Indlæsnings- og initialiseringsværktøjer | |||||
skal | |||||
Andet | |||||
Kategori Wikimedia Commons Wikibooks Wiktionary |