Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пампам.docx
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
219.72 Кб
Скачать

36. Способы адресации в командах оэвм семейства mcs-51

Набор команд MCS-51 поддерживает следующие режимы адресации.

Прямая адресация (Direct Addressing).

Операнд определяется 8-битным адресом в инструкции. Эта адресация используется только для внутренней памяти данных и регистров SFR.

Косвенная адресация (Indirect Addressing).

В этом случае инструкция адресует регистр, содержащий адрес операнда. Данный вид адресации может применяться при обращении как к внутреннему, так и внешнему ОЗУ. Для указания 8-битных адресов могут использоваться регистры R0 и R1 выбранного регистрового банка или указатель стека SP.

Для 16-битной адресации используется только регистр "указатель данных" (DPTR - Data Pointer).

Регистровая адресация (Register Instruction).

Данная адресация применяется для доступа к регистрам R0+R7 выбранного банка. Команды с регистровой адресацией содержат в байте кода операции трехбитовое поле, определяющее номер регистра. Выбор одного из четырех регистровых банков осуществляется программированием битов селектора банка (RS1, RS0) в PSW.

Непосредственная адресация (Immediate constants).

Операнд содержится непосредственно в поле команды вслед за кодом операции и может занимать один или два байта (data8, data16).

Индексная адресация (Indexed Addressing).

Индексная адресация используется при обращении к памяти программ и только при чтении. В этом режиме осуществляется просмотр таблиц в памяти программ. 16-битовый регистр (DPTR или PC) указывает базовый адрес требуемой таблицы, а аккумулятор указывает на точку входа в нее. Адрес элемента таблицы находится сложением базы с индексом (содержимым аккумулятора).

Другой тип индексной адресации применяется в командах "перехода по выбору" (Case Jump). При этом адрес перехода вычисляется как сумма указателя базы и аккумулятора.

Неявная адресация (Register-Specific Instructions).

Некоторые инструкции используют индивидуальные регистры (например, операции с аккумулятором, DPTR), при этом данные регистры не имеют адреса, указывающего на них; это заложено в код операции.

37. Страничная адресация в командах оэвм семейства mcs-51 (на примере команд переходов и вызова подпрограмм).

Способы адресации показывают, каким образом используется поле команды для указания адресов и кодов РОН, ячеек памяти и способов пересылки данных.

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

LJMP вызывает безусловный переход к обозначенному адресу, загружая в старшие и младшие байты РС (соответственно) второй и третий байты команды. Адрес может, поэтому, быть где-нибудь в полном пространстве адреса памяти программ 64КБ. На Флажки не воздействует.

LCALL вызывает подпрограмму, расположенную в обозначенном адресе. Команда прибавляет 3 к счетчику команд, чтобы генерировать адрес следующей команды и затем помещает 16-разрядный результат в стек (младший байт сначала), увеличивая Указатель вершины стека на 2. Старшие и младшие Байты РС затем загружаются, соответственно, вторым и третьим байтами команды LCALL. Выполнение Программы продолжается по этому адресу. Подпрограмма может, поэтому, начинаться где-нибудь в полном 64k-байтовом пространстве адресов памяти программ. На Флажки не воздействует.

JMP @ косвенный Переход

Описание: Добавляет восьмиразрядное содержимое без знака АСС к указателю данных с шестнадцатью битами, и загружают результирующую сумму в счетчик программ. Это будет адрес для последующего вызова команды. Ни АСС ни Указатель Данных не изменяется. Ни на какие флажки не воздействует.