Общие сведения о системе команд

Система команд MCS-51

Приложение А

Обмен в многопроцессорных системах

Последовательный порт микроконтроллеров MCS-51 способен поддержи­вать с использованием Режимов 2 и 3 обмен в многопроцессорных системах. При этом передающий микроконтроллер играет роль ведущего, а принимающие микроконтроллеры - роль ведомых. Механизм такой передачи аппаратно поддерживается битом SM2 регистра SCON. Ведущий микроконтроллер посылает вначале посылки кадр, содержащий адрес одного из ведомых микроконтроллеров. Адрес отличается от данных тем, что его де­вятый бит данных установлен в 1, в то время как у кадра данных де­вятый бит равен 0. При SM2 = 1 кадр адреса вызывает прерывание, а кадр данных нет. Процедуры прерываний всех ведомых анализируют принятый адрес, при идентификации своего адреса микроконтроллер сбрасывает бит SM2 и читает последующие данные. Остальные ведомые оставляют бит SM2 установленным и продолжают выполнять текущую программу.


Система команд MCS-51 содержит 111 базовых команд, которые удобно разделить по функциональному признаку на пять групп: команды передачи данных, арифметических операций, логических операций, передачи управления и операций с битами.

Большинство команд (94) имеют формат один или два байта и выполняются за один или два машинных цикла.

Типы операндов. Состав операндов MCS-51 включает в себя операнды четырех типов: биты, 4-битные цифры, байты и 16-битные слова.

MCS-51 имеет 128 программно-управляемых флагов пользователя. Имеется также возможность адресации отдельных бит блока регистров специальных функций и портов. Для адресации бит используется прямой 8-битный адрес (bit). Косвенная адресация бит невозможна. Четырехбитные операнды используются только при операциях обмена (команды SWAP и XCHD). Восьмибитным операндом может быть ячейка памяти программ или данных (резидентной или внешней), константа (непосредственный операнд), регистры специальных функций (SFR), а также порты ввода/вывода. Порты и SFR адресуются только прямым способом. Байты памяти могут адресоваться также и косвенным образом через адресные регистры (R0, R1, DPTR и PC). Двухбайтные операнды - это константы и прямые адреса, для представления которых используются второй и третий байты команды.

Способы адресации данных. В MCS-51 используются способы адресации данных: прямая, непосредственная, косвенная и неявная.

Флаги результата. Слово состояния программы (PSW) включает в себя четыре флага: C - перенос, AC - вспомогательный перенос, O - переполнение и P - паритет.

Флаг паритета напрямую зависит от текущего значения аккумулятора. Если число единичных бит аккумулятора нечетное, то флаг P устанавливается, а если четное – сбрасывается. Попытки изменить флаг Р, присваивая ему новое значение, будут безуспешными, если содержимое аккумулятора при этом останется неизменным.

Флаг АС устанавливается в случае, если при выполнении операции сложения/вычитания между тетрадами байта возник перенос/заем.

Флаг C устанавливается, если в старшем бите результата возникает перенос или заем. При выполнении операций умножения и деления флаг C сбрасывается. Флаг OV устанавливается, если результат операции сложения/вычитания не укладывается в семи битах и старший (восьмой) бит результата не может интерпретироваться как знаковый. При выполнении операции деления флаг OV сбрасывается, а в случае деления на нуль устанавливается. При умножении флаг OV устанавливается, если результат больше 255.

В табл. 1 перечисляются команды, при выполнении которых модифицируются флаги результата. В таблице отсутствует флаг паритета, так как его значение изменяется всеми командами, которые изменяют содержимое аккумулятора. Кроме команд, приведенных в таблице, флаги модифицируются командами, в которых местом назначения результата определены PSW или его отдельные биты, а также командами операций над битами.

Символическая адресация. При использовании ассемблера MCS-51 для получения объектных кодов программ допускается применение в программах символических имен регистров специальных функций (SFR), портов и их отдельных бит.

Для адресации отдельных бит SFR и портов (такая возможность имеется не у всех SFR) можно использовать символическое имя бита следующей структуры:

< имя SFR или порта >. < номер бита >

Например, символическое имя пятого бита аккумулятора будет следующим: АСС.5. Символические имена SFR, портов и их бит являются зарезервированными словами для ASM51, и их не надо определять с помощью директив ассемблера.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: