Adresarea este implementarea unei legături (referință) către un dispozitiv sau un element de date la adresa acestuia [1] ; stabilirea unei corespondențe între un set de obiecte de același tip și un set de adrese ale acestora; metoda de identificare a locației unui obiect [2] .
Instrucțiunea poate să nu conțină instrucțiuni explicite despre operand ; în acest caz, operandul este implicit și de fapt specificat de codul operațional al instrucțiunii.
Instrucțiunea poate să nu conțină indicații explicite despre adresa operandului care participă la operație sau adresa la care ar trebui plasat rezultatul operației, dar această adresă este implicită.
Instrucțiunea conține nu adresa operandului, ci operandul în sine. Cu adresare directă, nu este necesar acces la memorie pentru a prelua un operand și o locație de memorie pentru a-l stoca. Acest lucru ajută la reducerea timpului de execuție a programului și a cantității de memorie pe care o ocupă. Adresarea directă este convenabilă pentru stocarea diferitelor tipuri de constante.
Adresa este specificată direct ca o valoare, toate celulele sunt situate pe o singură pagină. Avantajul acestei metode este că este cea mai simplă, iar dezavantajul este că lățimea registrelor de uz general ale procesorului trebuie să fie cel puțin la fel de largă ca și lățimea magistralei de adrese a procesorului .
Cu această metodă de adresare, adresa de execuție este definită ca suma dintre codul de adresă al instrucțiunii și adresa de bază, de obicei stocate într-un registru special - registrul de bază.
Adresarea relativă face posibilă asigurarea accesului la orice celulă de memorie cu o lungime mai mică a codului de adresă al instrucțiunii. Pentru a face acest lucru, numărul de biți din registrul de bază este ales astfel încât orice celulă a memoriei principale să poată fi adresată, iar codul de adresă al instrucțiunii este folosit pentru a reprezenta doar un „offset” relativ scurt. Offset-ul determină poziția operandului față de începutul matricei date de adresa de bază.
Câmpul de adresă al cuvântului de control conține doar biții cei mai puțin semnificativi ai celulei adresate. Registrul index suplimentar .
Adresarea în registru este un caz special de adresare scurtată. Este utilizat atunci când rezultatele intermediare sunt stocate într-unul dintre registrele de lucru ale procesorului central. Deoarece există mult mai puține registre decât celulele de memorie, un câmp de adresă mic poate fi suficient pentru adresare.
Pentru prima dată, la programarea pe MESM a fost folosită adresarea indirectă a rangului 2 ( pointers ) . Adăugarea la comanda cu valoarea adresei operandului „0” a valorii celulei de memorie în care se află adresa operandului necesar, a făcut posibilă utilizarea acestor celule de memorie ca valori de adresă, adică. pointeri către adresele operanzilor.
Adresarea indirectă a rangurilor superioare a fost introdusă pentru prima dată în limbajul de programare Address (1955) [4] [5] și implementată în hardware în computerul „Kiev” [6] . În sistemul de comandă al computerului „Kiev” există o operație F, care vă permite să reduceți rangul adresei, adică. efectuează o „operație liniuță” sau dereferențează un pointer , iar operațiunile de modificare a adresei de grup [5] [6] au făcut posibilă efectuarea indirectă multiplă a Pointerilor în hardware.
Codul de adresă al comenzii în acest caz nu indică adresa cu date, ci adresa celulei de memorie în care se află adresa operandului sau comenzii. Aceasta este adresarea de rang 2 sau indicatori . Adresarea indirectă este utilizată pe scară largă în microcalculatoarele mici și cu un cuvânt scurt de mașină pentru a depăși limitările formatului de instrucțiuni scurte (adresarea înregistrată și indirectă sunt utilizate împreună).
Eficiența sistemelor de calcul concepute pentru prelucrarea datelor crește dacă este posibil să se efectueze operații pe cuvinte de lungime variabilă. În acest caz, mașina poate furniza adresarea cuvintelor de lungime variabilă, care este de obicei implementată prin specificarea în instrucțiune a locației în memorie a începutului cuvântului și a lungimii acestuia.
Memoria stivă , care implementează atribuirea fără adresă a operanzilor, este utilizată pe scară largă în microprocesoare și minicalculatoare .
Deoarece adresarea indirectă a registrului necesită ca registrul să fie preîncărcat cu o adresă indirectă din RAM, ceea ce este asociat cu o pierdere de timp, acest tip de adresare este deosebit de eficient atunci când se prelucrează o matrice de date dacă există un mecanism pentru creșterea sau decrementarea automată a datelor. conținutul registrului de fiecare dată când este accesat. Acest mecanism se numește adresare auto-incrementare și, respectiv, auto-decrementare. În acest caz, este suficient să încărcați adresa primului element de matrice care este procesat în registru o dată, iar apoi de fiecare dată când registrul este accesat, adresa următorului element de matrice va fi formată în el.
Cu adresarea cu incrementare automată, conținutul registrului este mai întâi folosit ca adresă a operandului și apoi incrementat cu numărul de octeți din elementul matrice. Cu adresarea cu decrementare automată, conținutul registrului specificat în comandă este mai întâi decrementat cu numărul de octeți din elementul de matrice și apoi folosit ca adresă a operandului.
Adresarea auto-incrementare și auto-decrementare poate fi considerată o versiune simplificată a indexării, un mecanism foarte important pentru conversia părților de adresă ale comenzilor și organizarea ciclurilor de calcul, așa că sunt adesea numite auto-indexare.
Pentru metodele implementate pe calculator de rezolvare a problemelor matematice și de prelucrare a datelor, caracterul ciclic al proceselor de calcul este caracteristică, atunci când aceleași proceduri sunt efectuate pe operanzi diferiți ordonați în memorie. Deoarece operanzii procesați în timpul repetițiilor buclei au adrese diferite, fără a utiliza indexarea, ar fi necesar ca fiecare repetiție să compună propria sa secvență de instrucțiuni care diferă în părți de adresă.
Programarea ciclurilor este mult simplificată dacă, după fiecare execuție a ciclului, este prevăzută o modificare automată a comenzilor corespunzătoare ale părților de adresă a acestora în funcție de locația în memorie a operanzilor în curs de prelucrare. Un astfel de proces se numește modificare a instrucțiunilor și se bazează pe capacitatea de a efectua operații aritmetice și logice asupra codurilor de instrucțiuni.
ale sistemelor de operare | Aspecte|||||
---|---|---|---|---|---|
| |||||
Tipuri |
| ||||
Nucleu |
| ||||
Managementul proceselor |
| ||||
Gestionarea și adresarea memoriei |
| ||||
Instrumente de încărcare și inițializare | |||||
coajă | |||||
Alte | |||||
Categorie Wikimedia Commons Wikibooks Wiktionar |