Как говорит Джерри, компилятор использует распределитель регистров. Распределение регистров является одной из тех простых, но трудных проблем.
В былые времена компилятор ценил вашу помощь в решении проблемы, какие переменные и в какие регистры вносить. Но сегодня задача лучше понятна, и компилятор слишком занят анализом программ, чтобы на самом деле выслушать то, что вы хотите сказать.
Если оптимизация полностью не отключена, ваш компилятор, скорее всего, будет игнорировать спецификатор register
.