Найти тему

Регистры процессора INTEL

Помню, когда я начинал изучать ассемблер, то меня многое вгоняло в трепетный ужас - столько незнакомых слов! Как во всём этом разобраться.

И, не знаю почему, но одной из самых больших загадок для меня были регистры. Я почему-то страшился изучения этого вопроса, хотя теперь уже не помню и не понимаю почему.

Как известно, в типовой микропроцессорной системе есть два вида памяти - оперативная и постоянная. В оперативную память (ОЗУ), как правило, загружаются программы и данные, необходимые для выполнения этих программ.

И ОЗУ, и постоянная память, выполнены в виде отдельных устройств. А вот регистры процессора - это тоже небольшие ячейки памяти, но они физически находятся в самом процессоре. То есть это тоже как бы память, но, так сказать, сверхоперативная (то есть сверхбыстрая).

В регистры процессора записываются команды, которые процессор затем выполняет, а также данные, необходимые для выполнения этих команд.

Разрядность регистров (количество битов в ячейке) зависит от разрядности процессора. У 8-разрядных процессоров регистры также 8-разрядные. У 16-разрядных процессоров регистры, соответственно, 16-разрядные. Ну и так далее.

Большинство регистров также делятся на несколько частей. Даже в 16-разрядных процессорах регистры делились на две части. Например, регистр АХ, в котором может храниться одно слово, делится ещё на два регистра: АН - старший байт и AL - младший байт.

При этом, если записать данные в регистр АН и/или AL, то автоматически изменится информация в регистре АХ. Потому что это деление число логическое, физически есть только один регистр - АХ. А это деление сделано только для удобства программирования на ассемблере, потому что часто в одном регистре, в том же АХ, в одной части может храниться код команды, а в другой - какие-то данные, с которыми эта команда работает.

На примере регистра АХ: в 16-разрядных процессорах есть только АХ; в 32-разрядных есть регистр ЕАХ, который включает в себя АХ; в 64-разрядных процессорах есть регистр RAX, включает в себя ЕАХ, и, конечно, АХ.
На примере регистра АХ: в 16-разрядных процессорах есть только АХ; в 32-разрядных есть регистр ЕАХ, который включает в себя АХ; в 64-разрядных процессорах есть регистр RAX, включает в себя ЕАХ, и, конечно, АХ.

Для того, чтобы записать число в регистр, в ассемблере существует команда MOV:

MOV AL, 1
MOV AH, 3

Здесь мы сначала записываем единицу в регистр AL, а затем число три в регистр АН. Но, поскольку эти регистры являются частью регистра АХ, то после выполнения этих команд в регистре АХ будет число

00000011 00000001

или 769 в десятичной системе. При этом работать можно отдельно как с регистрам АХ, так и с регистрами АН и AL.

На этом пока всё. Вот здесь можно найти больше сведений о регистрах. Подписывайтесь на канал, чтобы ничего не пропустить.