Dalam pemrograman komputer dan arsitektur komputer, register indeks adalah area memori yang biasanya dibangun ke dalam unit pemrosesan pusat (CPU) untuk digunakan sebagai penghitung yang sangat cepat untuk melangkah melalui alamat memori atau untuk melacak operasi seperti perulangan. Bergantung pada jenis arsitektur sistem, register indeks dapat berupa register yang ditentukan dan didedikasikan di antara register prosesor lainnya, atau dapat berupa register tujuan umum apa pun. Paling umum, register indeks menyimpan offset saat ini dari lokasi memori, dengan register lain memegang alamat dasar, sehingga kombinasi dari dua register membuat alamat memori yang lengkap. Salah satu fungsi khusus dari register indeks, ketika ditunjuk secara khusus oleh CPU, adalah dapat digunakan untuk dengan mudah menelusuri alamat memori baik dengan penambahan atau pengurangan sesuai kebutuhan sehingga struktur data seperti array dan tumpukan dapat dilalui. .
Register indeks pada CPU komputer adalah area memori tingkat rendah yang biasanya hanya dapat diakses secara langsung oleh programmer melalui penggunaan bahasa rakitan atau bahasa pemrograman tingkat rendah yang serupa. Dalam beberapa jenis prosesor yang lebih umum, dua register terpisah didefinisikan sebagai register indeks, yaitu register indeks sumber (SI) dan indeks tujuan (DI). Prosesor lain tidak secara khusus memiliki register indeks atau operator pendukung yang memerlukannya, artinya register tujuan umum dengan ukuran yang sesuai dapat digunakan.
Salah satu kegunaan paling sering untuk register indeks adalah untuk bertindak sebagai penunjuk ke lokasi memori yang menyimpan aliran data yang perlu diakses secara berurutan. Contoh dapat dilihat ketika menggunakan array data di mana semua elemen disusun secara berurutan dalam memori. Jika register indeks digunakan untuk mengakses array, maka register tersebut dapat menampung nilai offset elemen yang sedang diakses saat ditambahkan ke register lain yang menyimpan alamat dasar, seperti register segmen data. Ini dapat membuatnya sangat mudah untuk menyelesaikan prosedur seperti menyalin konten string yang diakhiri null dari lokasi sumber ke string tujuan.
Penggunaan lain untuk register indeks dapat menyimpan informasi tentang loop dan counter lainnya. Beberapa arsitektur sistem lebih suka menggunakan register indeks untuk menampung jumlah iterasi yang telah terjadi dalam satu lingkaran, meskipun di lain waktu register apa pun dapat digunakan. Selain itu, beberapa instruksi perakitan bergantung secara khusus pada register indeks sumber dan tujuan untuk melakukan operasi tertentu, seperti membaca atau menulis memori blok, seperti yang mungkin dilakukan untuk mengirim informasi ke layar.