pozostałe mają różne przeznaczenia. W wielu architekturach procesorów liczba rejestrów jest niewielka i mniejsza niż zmiennych lokalnych używanych w typowych programach, dlatego konieczne staje się przerzucanie zmiennych pomiędzy rejestrami a pamięcią na czas, gdy zmienne nie są chwilowo potrzebne.

Obecnie większość oprogramowania pisana jest w językach wysokiego poziomu, z użyciem bardzo dużej ilości danych, programista zazwyczaj nie ma wpływu na optymalizację użycia rejestrów. Zakłada się, że optymalizacja kodu dokonywana przez kompilator jest dobra, szybkość procesora i jego wewnętrzna architektura, szczególnie pamięć podręczna, rekompensują tę niepożądaną sytuację. Jednak zjawisko to jest nadal istotne tam, gdzie wydajność działania aplikacji jest najważniejszym kryterium – w systemach czasu rzeczywistego i wbudowanych, w których montuje się procesory o niewielkiej wydajności. Wówczas oprogramowanie często tworzone jest w asemblerze, a programista, który dobrze zna architekturę i sposób działania procesora, może tworzyć algorytmy tak, by zjawisko wycieku rejestrów minimalizować.