Every people has right on left Каждый человек имеет право на лево CopyLeft (L) Юрий А. Денисов
D.4.2. Адресные регистрыАдресные регистры (Address register) применяются для хранения адреса (или его части) ячейки в оперативной памяти. Этот адрес может участвовать в арифметических и логических операциях процессора. Во многих современных процессорах разделение регистров на адресные и регистры данных весьма условно: и в тех, и в других могут находиться как адрес, так и данные, а АЛУ не делает различий между адресом и данными. Однако в практике программирования до сих пор за определенными регистрами закрепилась функция хранения части адреса ячейки памяти. Более того, в микропроцессорах Motorola серии MC680x0 только адресные регистры могут использоваться в операциях адресации памяти, а за регистром A7 закреплена функция вершины стека. Существуют следующие адресные регистры: Базовый регистр (Base) – служит для указания начального адреса объекта в памяти при операциях с массивами и неявной адресации. Подробнее о массивах смотри [А.В. Нестеренко. ЭВМ и профессия программиста. – М.: Просвещение, 1990 - стр. 64] и приложение A данной книги, а о неявной адресации – смотри раздел D.3, посвященный адресации памяти. Указатель стека (Stack Pointer) – неявно используется в некоторых процессорах (в частности, Intel и Motorola) для организации работы со стеком. В качестве таких операций может служить, например, операции записи в стек и извлечения из стека, вызов подпрограммы и возврат в нее, вызов программ обработки прерываний, возврат из прерывания, переключения на другую задачу, изменение текущего уровня привилегий и некоторые другие. В микропроцессорах семейства x86 в качестве указателя стека используется регистр SP (ESP в 32-х разрядных версиях), который адресует вершину стека в текущем сегменте стека. В микропроцессорах Motorola серии MC680x0 в качестве регистра-указателя стека используется адресный регистр A7, который как бы делится на указатель стека супервизора SSP (содержимое которого изменить невозможно) и указателя стека пользователя USP, изменять содержимое которого можно только в режиме супервизора. Подробнее о стеке смотри [В.Л. Григорьев. Микропроцессор i486. Книга 1. Архитектура и программирование. – М.: ГРАНАЛ. 1993 - с. 446; ил. – стр. 61-63] Указатель базы (Base Pointer) – используется для удобства доступа к данным в стеке, которые не находятся в его вершине (например, параметры подпрограмм, переменные с модификатором auto в программах на Си и т.д.) К адресным регистрам можно отнести регистры сегментного и страничного разделения памяти, а также селекторы сегментов. Но о них будет сказано ниже в отдельном разделе.
|
|
=== *** === *** === *** ===
Copyright © Юрий А. Денисов. 2000-2002 г.
В настоящее время проект закрыт (в версии 1.00.3 alpha). Автор приносит извинения за прекрашение разработки.