![]() ![]() ![]() ![]() |
|
|
![]() |
Микро-ЭВМ рассматриваемого семейства являются типичными микропроцессорными устройствами с архитектурой SISC - со стандартным набором команд. Поэтому их система команд довольно обширна и включает в себя 111 основных команд. Их длина - один, два или три байта, причем большинство из них (94%) - одно- или двухбайтные. Все команды выполняются за один или два машинных цикла (соответственно 1 или 2 мкс при тактовой частоте 12 МГц), исключение - команды умножения и деления, которые выполняются за четыре машинных цикла (4 мкс). Микро-ЭВМ семейства 8051 используют прямую, непосредственную, косвенную и неявную, адресацию данных
В качестве операндов команд микро-ЭВМ семейства 8051 могут использовать отдельные биты, четырехбитные цифры, байты и двухбайтные слова.
Все эти черты обычны для набора команд любого SISC-процессора и по сранению с RISC набором команд обеспечивает большую компактность программного кода и увеличение быстродействия при выполнении сложных операций.
В то же время, набор команд семейства 8051 имеет несколько особенностей, связанных с типичными функциями выполняемыми микроконтроллерами - управлением, для которого типичным является оперирование с одноразрядными двоическими сигналами, большое число операций ввода выводи и ветвлений программы.
Наиболее существенная особенность системы команд рассматриваемых микро ЭВМ это возможность адресации отдельных бит в резидентной памяти данных. Кроме того, как отмечалось, некоторые регистры блока регистров специальных функций также допускают адресацию отдельных бит. Карты адресов отдельных бит в резидентной памяти данных и в блоке регистров специальных функций.
Всего микро-ЭВМ выполняют 13 типов команд, они приведены в таблице. Как следует из нее, первый байт команды всегда содержит код операции (КОП), а второй и третий (если они присутствуют в команде) - адреса операндов или их непосредственные значения.
Тип команды | Первый байт D7...D0 | Второй байт D7...D0 | Третий байт D7...D0 |
тип 1 | коп | ||
тип 2 | коп | #d | |
тип 3 | коп | ad | |
тип 4 | коп | bit | |
тип 5 | коп | rel | |
тип 6 | коп | а7...a0 | |
тип 7 | коп | ad | #d |
тип 8 | коп | ad | rel |
тип 9 | коп | ads | add |
тип 10 | коп | #d | rel |
тип 11 | коп | bit | rel |
тип 12 | коп | ad16h | ad16l |
тип 13 | коп | #d16h | #d16l |
Все команды микро-ЭВМ семейства 8051 можно разбить на пять функциональных групп:
Rn (n = 0, 1,..., 7) - регистр общего назначения в выбранном банке регистров;
@Ri(i= 0, 1) - регистр общего назначения в выбранном банке регистров, используемый в качестве регистра косвенного адреса;
ad - адрес прямоадресуемого байта;
ads - адрес прямо адресуемого байта-источника;
add - адрес прямо адресуемого байта-получателя;
ad11 - 11-разрядный абсолютный адрес перехода;
ad16 - 16-разрядный абсолютный адрес перехода;
rel - относительный адрес перехода;
#d - непосредственный операнд;
#d16 - непосредственный операнд (2 байта);
bit - адрес прямо адресуемого бита;
/bit - инверсия прямо адресуемого бита;
А - аккумулятор;
РС - счетчик команд;
DPTR - регистр указатель данных;
( ) - содержимое ячейки памяти или регистра,