
ГОСЫ Ответы Антипов фулл / 7.Антипов / антипов 18
.docx18. Система команд микроконтроллеров INTEL 8051. Общие сведения, типы операндов, способы адресации данных, флаги результата, символическая адресация.
СИСТЕМА КОМАНД МИКРОКОНТРОЛЛЕРОВ INTEL 8051
3.1. Общие сведения
Определение и ассемблерная мнемоника команд, их тип в соответствии с
рис. 1 (Т), число байтов в командах (Б), а также продолжительность исполнения
команд в циклах (Ц) даны в прил. 1. Система содержит 111 базовых команд, кото-
рые по функциональному признаку могут быть разделены на пять групп:
• команды передачи данных,
• арифметические операции,
• логические операции,
• операции с битами,
• команды передачи управления.
Большинство команд имеют формат в один или два байта и выполняются за
один или два машинных цикла. При тактовой частоте 12 МГц длительность ма-
шинного цикла составляет 1 мкс. На рис. 1 показаны 13 типов команд.
Первый байт команды любых типа и формата всегда содержит код операции
(КОП). Второй и третий байты содержат либо адреса операндов, либо непосредст-
венные операнды.
Рис. 1. Типы команд8
3.1.1. Типы операндов
Состав операндов включает в себя операнды четырёх типов: биты, 4-битные
цифры, байты и 16-битные слова.
Микроконтроллер имеет 128 программно-управляемых флагов пользователя.
Имеется также возможность адресации отдельных битов блока регистров специ-
альных функций и портов. Для адресации битов используется прямой 8-битный ад-
рес (bit). Косвенная адресация битов невозможна. Карты адресов отдельных битов
представлены на рис. 2 и 3.
Четырёхбитные операнды используются только при операциях обмена
SWAP и XCHD.
Рис. 2. Карта адресуемых битов в резидентной памяти данных9
Рис. 3. Карта адресуемых битов в блоке регистров специальных функций
Восьмибитным операндом может быть ячейка памяти программ (ПП) или
данных (резидентной (РПД) или внешней (ВПД)), константа (непосредственный
операнд), регистры специальных функций, а также порты ввода/вывода. Порты и
регистры специальных функций адресуются только прямым способом. Байты па-
мяти могут адресоваться также и косвенным образом через адресные регистры R0,
R1, DPTR и PC.
Двухбайтные операнды - это константы и прямые адреса, для представления
которых используются второй и третий байты команды.
3.1.2. Способы адресации данных
В микроконтроллере используются следующие способы адресации данных:
прямая, непосредственная, косвенная и неявная.
При косвенном способе адресации резидентной памяти данных используют-
ся все восемь битов адресных регистров R0 и R1. 10
3.1.3. Флаги результата
Слово состояния программы PSW включает себя четыре флага: С - перенос,
АС - вспомогательный перенос (полуперенос), OV - переполнение и P - паритет.
Флаг паритета напрямую зависит от текущего значения аккумулятора. Если
число единичных битов аккумулятора нечётное, то флаг Р устанавливается, а если
чётное - сбрасывается. Все попытки изменить флаг Р, присваивая ему новое значе-
ние, бесполезны, если содержимое аккумулятора при этом останется неизменным.
Флаг АС устанавливается, если при выполнении операции сложения или вы-
читания между тетрадами байта (полубайтами) возник перенос или заем.
Флаг C устанавливается, если в старшем бите результата возникает перенос
или заем. При выполнении операций умножения и деления флаг С сбрасывается.
Флаг OV устанавливается, если результат операции сложения или вычитания
не укладывается в семи битах и старший (восьмой) бит результата не может интер-
претироваться как знаковый. При выполнении операции деления флаг OV сбрасы-
вается, а в случае деления на нуль устанавливается. При умножении флаг OV уста-
навливается, если результат больше 255.
В табл. 2 перечисляются команды, при выполнении которых модифициру-
ются флаги результата. В таблице отсутствует флаг паритета, так как его значение
изменяется всеми командами, которые изменяют содержимое аккумулятора. Кроме
команд, приведенных в таблице, флаги модифицируются командами, в которых
местом назначения результата определены PSW или его отдельные биты, а также
командами операций над битами.
Таблица 2
Команды, модифицирующие флаги результата
3.1.4. Символическая адресация
При использовании ассемблера для получения объектных кодов программ
допускается применение в программах символических имен регистров специаль-
ных функций, портов и их отдельных битов (рис. 3).
Для адресации отдельных битов и портов (такая возможность имеется не у
всех регистров специальных функций) можно использовать символическое имя би-
та следующей структуры: <имя регистра или порта>.<номер бита>. 11
Например, символическое имя пятого бита аккумулятора будет следующим:
АСС.5. Символические имена являются зарезервированными словами, и их не надо
определять с помощью директив ассемблера.