При обмене информацией с памятью процессор обращается к ячейкам ОЗУ по их адресам. Способы задания требуемых адресов в командах ЭВМ принято называть методами адресации. От видов и разнообразия методов адресации зависит эффективность работы с данными.
В современных компьютерах в самой команде адрес, как правило, явным образом не указывается, так как при подобном способе возрастает длина команды. Чтобы избежать этого, при обращении к ОЗУ процессор использует метод косвенной адресации. Его идея состоит в том, что адрес памяти предварительно заносится в один из регистров процессора, а команда содержит лишь ссылку на этот регистр. Так как адреса в регистре удобно модифицировать (например, циклически увеличивая на заданную величину), то косвенная адресация нашла широкое применение.
Наиболее распространенные варианты ссылок на данные в машинной команде:
1. Данные находятся в одном из регистров МП.
2. Данные входят непосредственно в состав команды, т.е. размещаются внутри ее кода (константа).
3. Данные находятся в ячейке ОЗУ, адрес которой содержится в одном из регистров МП.
4. Данные находятся в ячейке ОЗУ, адрес которой вычисляется по формуле: базовый адрес + смещение. Базовый адрес хранится в одном из регистров МП и является начальной точкой массива данных. Смещение может быть как константой, так и содержимым другого регистра.
5. Методы адресации могут быть и более экзотическими, например, широко распространенный сегментный способ процессоров фирмы Intel. Сегментный метод был предложен для первого 16-разрядного процессора 8086, для того чтобы получить в нем 20-разрядный адрес и тем самым расширить максимально возможный объем ОЗУ. Современные Intel процессоры, начиная с 80386-го, стали 32-разрядными, и их регистров хватает, чтобы адресовать до 4 Гб памяти. Сегментный способ coхраняется ради обеспечения программной совместимости с предыдущими моделями.