Modurile de adresare sunt metoda folosită pentru a determina la ce parte a memoriei se referă o instrucțiune a mașinii. Există diferite tipuri și modul care este utilizat depinde de ce tip de arhitectură de computer este utilizat.
Memoria cu acces aleatoriu (RAM) este zona principală de memorie pentru un computer și este locul în care trebuie încărcată orice aplicație dacă urmează să fie rulată. Unitatea centrală de procesare (CPU) citește instrucțiunile mașinii din RAM și acționează asupra lor. Instrucțiunile mașinii trebuie adesea să se refere la anumite porțiuni ale memoriei RAM. Pentru a face acest lucru, CPU trebuie să aibă o modalitate de a ști la ce porțiune de RAM se referă instrucțiunea mașinii.
Modurile de adresare sunt folosite pentru a împărți secțiunile RAM în porțiuni individuale care pot fi referite individual, similar modului în care fiecare casă de pe o stradă are o adresă. Această adresă poate fi apoi utilizată de o instrucțiune de mașină pentru a se referi la o anumită porțiune de memorie. CPU-ul va accesa apoi acea porțiune de memorie și va efectua acțiunea specificată de instrucțiunea mașinii.
Există multe tipuri diferite de moduri de adresare și diferite tipuri de arhitectură de computere prezintă altele diferite. Aceasta face parte din motivul pentru care toate programele nu sunt compatibile cu toate computerele. Dacă o aplicație este proiectată pentru un tip de mod de adresare, atunci nu va putea rula atunci când este utilizată pe un sistem care folosește altul. Va fi ca și cum ai vorbi cu cineva într-o limbă pe care nu o înțelege.
Specificul fiecărui tip este important pentru programatorii de calculatoare care folosesc limbajul de asamblare. Acest limbaj de calculator este o reprezentare directă a instrucțiunilor mașinii trimise către CPU și este ceea ce îl face capabil să producă programe care pot rula de câteva ori mai rapid decât alte limbaje de programare. Limbajul de asamblare este folosit în dezvoltarea sistemelor de operare. Un programator de calculator trebuie să cunoască tipul de moduri de adresare utilizate pe arhitectura computerului specific înainte de a putea scrie un sistem de operare sau o aplicație funcțională în asamblare.