Tietokoneohjelmoinnissa ja tietokonearkkitehtuurissa hakemistorekisteri on muistialue, joka on yleensä rakennettu keskusyksikköön (CPU) ja jota käytetään erittäin nopeana laskurina muistiosoitteiden selaamiseen tai toimintojen, kuten silmukoinnin, seuraamiseen. Järjestelmäarkkitehtuurin tyypistä riippuen hakemistorekisteri voi olla määritelty ja omistettu rekisteri muiden prosessorirekisterien joukossa tai se voi olla mikä tahansa yleiskäyttöinen rekisteri. Yleisimmin hakemistorekisterissä on muistipaikan nykyinen siirtymä, jossa toinen rekisteri pitää perusosoitteen, joten kahden rekisterin yhdistelmä luo täydellisen muistiosoitteen. Yksi hakemistorekisterin erityistoiminnoista, kun CPU on nimennyt sen, on se, että sitä voidaan käyttää helposti selaamaan muistiosoitteita joko lisäämällä tai pienentämällä tarvittaessa, jotta tietorakenteet, kuten taulukot ja pinot, voidaan kulkea .
Tietokoneen CPU: ssa olevat hakemistorekisterit ovat uskomattoman matalan tason muistialueita, joihin ohjelmoija pääsee yleensä yleensä suoraan suoraan käyttämällä kokoonpanokieltä tai vastaavaa matalan tason ohjelmointikieltä. Joissakin yleisimmistä prosessorityypeistä kaksi erillistä rekisteriä määritellään indeksirekisteriksi, nimittäin lähdeindeksi- ja kohdeindeksirekisterit. Muilla prosessoreilla ei ole nimenomaisesti hakemistorekistereitä tai niitä tukevia operaattoreita, mikä tarkoittaa, että voidaan käyttää mitä tahansa sopivan kokoista yleisrekisteriä.
Yksi indeksirekisterin yleisimmistä käyttötarkoituksista on osoitin muistipaikkaan, joka sisältää tietovirran, jota on käytettävä peräkkäin. Esimerkki voidaan nähdä käytettäessä tietoryhmää, jossa kaikki elementit on järjestetty muistiin peräkkäin. Jos hakemistorekisteriä käytetään matriisin käyttämiseen, se voi sisältää parhaillaan käytettävän elementin siirtymän vastaavan arvon, kun se lisätään toiseen rekisteriin, jolla on perusosoite, kuten datasegmenttirekisteri. Tämä voi tehdä erittäin helpoksi sellaisten toimenpiteiden suorittamisen, kuten nollapäätteisen merkkijonon sisällön kopioiminen lähdepaikasta kohdejonoon.
Toinen hakemistorekisterin käyttö voi olla silmukoiden ja muiden laskureiden tietojen säilyttäminen. Jotkut järjestelmäarkkitehtuurit mieluummin käyttävät hakemistorekisteriä silmukassa tapahtuneiden iteraatioiden lukumäärän säilyttämiseen, vaikka muina aikoina voidaan käyttää mitä tahansa rekisteriä. Lisäksi jotkin kokoonpano -ohjeet tukeutuvat nimenomaan lähde- ja kohdehakemistorekistereihin tiettyjen toimintojen, kuten lohkon muistin lukemisen tai kirjoittamisen, suorittamiseksi, kuten voitaisiin tehdä tietojen lähettämiseksi näytölle.