Есть ли способ получить адрес реестра? - PullRequest
7 голосов
/ 14 марта 2011

Есть ли способ получить адрес регистра? Например, адрес регистра eax (не его содержимого).

Ответы [ 3 ]

7 голосов
/ 15 марта 2011

В некоторых архитектурах для обозначения регистров ЦП использовались низкие адреса, например компьютеры серии Univac 1100.

http://en.wikipedia.org/wiki/UNIVAC_1100/2200_series

Текущее оборудование x86 не работает таким образом, поэтому вы не можете получить адрес регистра EAX - его просто нет.

6 голосов
/ 14 марта 2011

Регистры являются внутренним процессором памяти. У них нет адресов памяти, потому что они не находятся в памяти .Вы можете идентифицировать их по их именам: например, EAX.

При этом регистры с отображением в памяти существуют, но в любом современном процессоре они принадлежат другим устройствам, а не процессору.Для удобства им присваиваются «поддельные» адреса памяти.См. ввод-вывод с отображением в память .

4 голосов
/ 14 марта 2011

Регистры - это физические электрические компоненты внутри схемы процессора.Они не находятся в оперативной памяти и поэтому не имеют адреса.Для доступа к его содержимому вы используете инструкцию mov.

...