Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metodicheskie_ukazania_k_kursovomu_proektu_VMSi....doc
Скачиваний:
4
Добавлен:
20.04.2019
Размер:
4.98 Mб
Скачать

4.5. Способы адресации

В процессе изучения системы команд мы видели, что некоторые команды ссылаются на ячейки памяти. Для одних команд — это ячей­ки, откуда нужно прочитать или куда нужно записать обрабатывае­мые данные, для других — это ячейки с командами, на которые нужно передать управление. И в том, и в другом случае адрес ячейки каким-то образом должен быть задан. Вообще говоря, часть команды, которая используется для задания адреса памяти, называется полем адреса. Поле адреса может содержать: фактический адрес ячейки памяти, как, например, в команде «загрузка регистра» LDR; или же номер об­щего регистра, содержащего адрес ячейки памяти, как, например, в команде ADD при R = 1111; или же само поле адреса может быть объек­том ссылки, как, например, в команде LRI. В последнем случае само поле адреса содержит данные, участвующие в выполняемой операции.

Способами адресации называются различные режимы интерпретации поля адреса команды. Мы отмечали, что команды могут, вообще говоря, состоять из различного числа байтов. В нашем микропроцессо­ре были однобайтовые, двухбайтовые и трехбайтовые команды. Число слов в команде зависит от используемых способов адресации, допу­стимого размера памяти и архитектуры микропроцессора. Поэтому, стремясь к эффективности программ, создатели микропроцессоров обычно предусматривают в них несколько способов адресации.

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

Прямая адресация

Наиболее естественный способ адресации — это прямая адресация. При прямой адресации в команде просто задается эффективный адрес, т. е. исходный адрес равен эффективному. Если при обращениях к памяти пользоваться только прямой адресацией, то команды, вообще говоря, будут состоять из нескольких слов. В 8-разрядном микро­процессоре, например, при памяти размером в 65536 байтов для пря­мой адресации нужен адрес из двух байтов (16 разрядов). Предположив, что еще один байт нам потребуется для задания самой команды, мы получим команду из 3 байтов.

Примером команды с прямой адресацией в нашем микропроцессоре является команда загрузки регистра LDR. Два байта из трех в команде содержат фактический адрес ячейки памяти, которая содер­жит операнд, загружаемый в указанный в команде общий регистр.

Непосредственная адресация

При непосредственной адресации операнд команды просто явля­ется частью команды. В этом случае операнд в памяти расположен непосредственно вслед за ячейкой, содержащей «операционную» часть команды. Например, в команде LRI второй байт команды пред­ставляет собой константу, которая загружается в указанный в команде регистр.