Pointerregisters en indexregisters zijn beide typen registers die in computerarchitectuur worden gebruikt, maar ze slaan verschillende soorten informatie op:
* Aanwijzer registreert: Bewaar *geheugenadressen*. Ze verwijzen naar een specifieke locatie in het geheugen waar gegevens zijn opgeslagen. De gegevens zelf bevinden zich niet in het pointerregister; alleen het adres waar de gegevens zich bevinden. Zie het als een adres:het adres zelf bevat niet het huis, het geeft alleen aan waar u het kunt vinden.
* Indexregisters: Bewaar *gehele waarden* die worden gebruikt om een geheugenadres te wijzigen. Ze worden vaak gebruikt bij array-adressering. Het indexregister bevat een offset of een index in een array, die vervolgens wordt opgeteld bij (of afgetrokken van) een basisadres (vaak bewaard in een ander register) om het feitelijke geheugenadres van een specifiek array-element te berekenen. In tegenstelling tot pointerregisters bevatten indexregisters niet rechtstreeks een geheugenadres; ze bevatten een waarde die *bijdraagt* aan het berekenen van een geheugenadres.
In het kort:
* Aanwijzer: Bevat direct een geheugenadres.
* Index: Bevat een waarde die wordt gebruikt om een geheugenadres te berekenen (vaak in combinatie met een basisadres).
Het is belangrijk op te merken dat het onderscheid niet altijd strikt wordt gehandhaafd. Sommige architecturen kunnen registers flexibel gebruiken, waardoor een register dat is aangewezen als een "index" -register ook een geheugenadres kan bevatten, en omgekeerd. Het belangrijkste verschil ligt in het *beoogde gebruik* ervan, in plaats van in een strikt, onveranderlijk type. |