Система команд МК51
Система команд включает 111 команд - однобайтовых (49), двухбайтовых (45) и трехбайтовых (17). Все команды выполняются за 1 или 2 МЦ (16 тактов CLK в каждом), за исключением команд умножения и деления MUL и DIV, для выполнения которых требуется 4 МЦ. Большинство двухбайтовых команд - одноцикловые, а все трехбайтовые -двухцикловые. За один МЦ в МК51 можно вводить до двух байтов программного кода.
МК51 работает с данными четырех основных типов - битами, полубайтами (4 бита), байтами и адресами (16 бит). Наиболее часто используемой единицей данных является байт: внутренние магистрали данных имеют 8-битный размер. Программная память, внутренняя память и внешняя память данных запоминают и возвращают данные в виде байтов. Кроме этого, имеется много команд, которые работают с одиночными битами. Бит может быть установлен, очищен, проинвертирован, логически скомбинирован с флагом переноса и проверен для выполнения последующих переходов. Полубайт (двоично-десятичная упакованная цифра) обычно мало применяется в МК51, но двоично-десятичная арифметика может выполняться без преобразования операндов в двоичное представление.
Команды, которые используют 16-битные адреса, имеют дело с указателем данных (16-битный регистр DPTR ) и с программным счетчиком (переходы и вызовы подпрограммы). Использование команд сложения с битом переноса (ADDC) и вычитание с заемом (SUBB) делает программирование 16-битной арифметики относительно простым.
Программно-доступными объектами в составе ОМЭВМ являются: аппаратные регистры, четыре банка по восемь регистров R0..R7,R0..R7 и 128 ячеек внутренней памяти данных - с адресами 00H..7FH. Кроме того, по специальным командам MOVX и MOVC может быть доступна внешняя память данных и программ. В МК51 возможна битовая адресация аппаратных регистров и части внутренней памяти.
При программировании следует иметь в виду, что в качестве регистров R0..R7 банка 0 используются ячейки внутренней памяти данных с адресами 00H..07H, банка 1 - 08Н..0FН, банка 2 - 10Н..17Н, банка 3 - 18Н..1FH.
В системе команд МК51 используются регистровая, прямая, косвенная и непосредственная адресация.
При регистровой адресации операнды находятся в регистрах, имена которых определяются кодом операции команды. Эта адресация используется для обращения к регистрам выбранного банка рабочих регистров, к регистрам А, В, DPTR и к флагу переноса С.
По прямому адресу можно обращаться к аппаратным регистрам и внутренней памяти. Используется также прямая битовая адресация.
Косвенно можно адресоваться к ячейкам внутренней и внешней памяти данных через регистры R0,R1 текущего банка.
К любой ячейке внешней памяти (данных и программ) можно обратиться с использованием регистра DPTR.
По типу операций можно выделить следующие классы команд: пересылки; арифметические и логические; передачи управления; специальные команды.
Основная литература:4 [182-199], 7 [51-82]
Дополнительная литература: 9 [236-283], 10 [35-61]
Контрольные вопросы:
1. Состав однокристальной Микро-ЭВМ 1816ВЕ48 ?
2. Состав однокристальной Микро-ЭВМ 1816ВЕ51 ?
3. Отличие однокристальной Микро-ЭВМ 1816ВЕ48 от 1816ВЕ51 ?
4. Из скольких команд состоит система команд ОМЭВМ 1816ВЕ48 ?
5. Из скольких команд состоит система команд ОМЭВМ 1816ВЕ51 ?