Способы адресации данных
В микроконтроллере используются следующие способы адресации данных:
· неявный;
· регистровый;
· непосредственный;
· прямой;
· косвенный.
Неявный способ получил такое название из-за того, что адрес операнда в команде явно не указывается, а подразумевается самим кодом операции (КОП). Например, однобайтная команда
CLR C (сброс флага переноса) представляет собой только КОП. Этот способ адресации позволяет получать команды минимального формата.
Регистровый способ адресации используется для операндов, хранящихся в одном из регистровых банков: регистры общего назначения R0 – R7. Например, команда
DEC R0 (декремент содержимого регистра R0). Этот способ адресации также позволяет получать команды минимального формата.
Непосредственный способ адресации служит для использования в качестве операнда непосредственных данных. При этом операнд находится в программной памяти непосредственно за КОП команды. Данные могут быть одно- или двухбайтными. Например, команда
MOV A, #d (загрузить байт в аккумулятор) имеет двухбайтный формат: первый байт КОП и байт данных #d. Например, команда
MOV DPTR, #d16 (загрузить два байта в регистр указатель DPTR) имеет трехбайтный формат: первый байт КОП и два байта данных #d16.
Прямой способ адресации предполагает указание операндов посредством адреса, содержащегося в команде. Адрес может быть одно- или двухбайтовым. Например, команда
ADD A, ad (сложение аккумулятора с содержимым памяти по адресу ad) имеет двухбайтный формат: первый байт КОП и байт адреса ad. Например, команда LJMP ad16 (длинный переход по адресу ad16) имеет трехбайтный формат: первый байт КОП и два байта адреса ad16.
Косвенный способ адресации предполагает указание операндов посредством адреса, содержащегося в регистре либо в регистровой паре. В команде указывается регистр, который в свою очередь указывает адрес операнда. Например, команда
MOV A, @R0 (загрузить в аккумулятор содержимое ячейки внутренней памяти, восьмиразрядный адрес которой содержится в регистре R0). Например, команда
MOV A, @DPTR (загрузить в аккумулятор содержимое ячейки внешней памяти, адрес которой содержится в двухбайтном регистре-указателе DPTR). Этот способ адресации позволяет уменьшить формат команд и повысить гибкость программирования. Многие команды для указания операндов комбинируют различные способы адресации. Например, команда
MOV @R0, #d (загрузить байт данных #d в ячейку внутренней памяти, восьмиразрядный адрес которой содержится в регистре R0). Здесь используются непосредственный (источник операнда) и косвенный (приемник операнда) способы адресации.
Дата добавления: 2015-10-09; просмотров: 647;