Читаем Занимательно о микроконтроллерах полностью

В машинном коде команда занимает один, два или три байта в зависимости от типа адресации.

Команды выполняются за один, два или четыре (умножение и деление) машинных цикла.

Запись команд в машинных кодах для человека неудобна. Кроме того, машинные команды, отличающиеся младшими битами или вторым байтом, выполняют одинаковые действия над разными ячейками памяти. Поэтому для записи команд микропроцессоров была придумана система мнемонических обозначений. В записи команды микропроцессора сначала ставится мнемоническое обозначение кода операции, затем указывается ячейка памяти — приемник результата выполнения операции и, наконец, источник данных для выполнения операции. Например, в команде

Е535 MOV A, 35h

символы MOV обозначают операцию копирования, второй операнд 35 определяет, что данные необходимо взять из ячейки памяти с шетнадцатеричным адресом 35, а первый операнд A определяет, что результат необходимо поместить в регистр-аккумулятор. При этом старое значение регистра-аккумулятора будет стерто. Слева приведена машинная команда микроконтроллера в шестнадцатеричной записи, соответствующая находящейся справа мнемонической записи команды.

Мнемоническое обозначение кода операции отделяется от операндов одним или несколькими символами пробела пли табуляции, а операнды отделяются друг от друга запятыми. При этом между операндами допустимо использование символов пробела или табуляции, которые могут потребоваться для более наглядной записи команды.

Если операция требует для выполнения двух источников и одного приемника результата операции (например, команда сложения ADD или вычитания SUBB), то первый операнд является одновременно и источником и приемником результата операции. Например, в команде

2535 ADD A, 35h

символы ADD обозначают операцию сложения двух чисел, данные будут взяты из ячейки памяти с шестнадцатеричным адресом 35 и аккумулятора, а результат будет помещен в аккумулятор вместо старого значения этого регистра.

В табл. П1 приведены мнемонические обозначения машинных команд, влияющих на значения флагов регистра слова состояния программы PSW, а в табл. П2 приведены обозначения и символы, используемые при описании команд микроконтроллеров семейства MCS-51.

Команды микроконтроллера условно можно разбить на пять групп:

— арифметические команды;

— логические команды с байтовыми переменными;

— команды передачи данных;

— команды битового процессора;

— команды ветвления программ и передачи управления ОЭВМ.

Арифметические команды

В наборе команд микроконтроллера имеются следующие арифметические операции:

— сложение — ADD;

— сложение с учетом флага переноса — ADDCC;

— вычитание с заемом из флага переноса — SUBB;

— инкрементирование (увеличение на 1) — INC;

— декрементирование (уменьшение на 1) — DEC;

— десятичная коррекция — DA;

— умножение — MUL;

— деление — DIV.

Действия производятся над целыми беззнаковыми 8-разрядными числами. Арифметические операции в рассматриваемой системе команд могут быть выполнены только над содержимым регистра-аккумулятора.

При операции умножения содержимое аккумулятора А умножается на содержимое регистра В, и результат размещается следующим образом: младший байт в регистре В, старший — в регистре А.

В случае выполнения операции деления целое от деления помещается в аккумулятор А, остаток — в регистр В.

Логические команды с байтовыми переменными

Система команд рассматриваемого микроконтроллера позволяет реализовать следующие логические операции:

— логическое «И» — ANL;

— логическое «ИЛИ» — ORL;

— исключающее «ИЛИ» — XRL.

Логические операции могут выполняться только над аккумулятором или над портами ввода-вывода.

Существуют логические операции, которые выполняются только на аккумуляторе:

— сброс всех восьми разрядов АCLR A;

— инвертирование всех восьми разрядов А CPL A;

— циклический сдвиг влево и вправо без учета флага переноса — RL A и RR A;

— циклический сдвиг влево и вправо с учетом флага переноса — RLC A и RRC A;

— обмен местами старшей и младшей тетрад внутри аккумулятора — SWAP A.

Команды пересылки данных

Как было рассмотрено ранее, арифметические и логические команды могут быть выполнены только над содержимым регистра-аккумулятора, поэтому исключительное значение в системе команд приобретают команды пересылки данных. С помощью этих команд можно скопировать содержимое любой ячейки памяти в регистр-аккумулятор или наоборот скопировать содержимое аккумулятора в любую ячейку памяти.

Так как в микроконтроллере присутствуют три независимых области памяти, то для обращения к ним введены различные команды:

— копирование данных во внутреннем ОЗУ — MOV;

— обмен данными аккумулятора с внутренним ОЗУ — XCH, XCHO;

— копирование из внешней памяти данных — MOVX;

— копирование данных из памяти программ — MOVC.

Рассмотрим несколько примеров использования команд пересылки данных.

Перейти на страницу:

Похожие книги

Электроника для начинающих (2-е издание)
Электроника для начинающих (2-е издание)

В ходе практических экспериментов рассмотрены основы электроники и показано, как проектировать, отлаживать и изготавливать электронные устройства в домашних условиях. Материал излагается последовательно от простого к сложному, начиная с простых опытов с электрическим током и заканчивая созданием сложных устройств с использованием транзисторов и микроконтроллеров. Описаны основные законы электроники, а также принципы функционирования различных электронных компонентов. Показано, как изготовить охранную сигнализацию, елочные огни, электронные украшения, устройство преобразования звука, кодовый замок и др. Приведены пошаговые инструкции и более 500 наглядных рисунков и фотографий. Во втором издании существенно переработан текст книги, в экспериментах используются более доступные электронные компоненты, добавлены новые проекты, в том числе с контроллером Arduino.

Чарльз Платт

Радиоэлектроника / Технические науки
Электроника для начинающих
Электроника для начинающих

В ходе практических экспериментов рассмотрены основы электроники и показано, как проектировать, отлаживать и изготавливать электронные устройства в домашних условиях. Материал излагается последовательно от простого к сложному, начиная с простых опытов с электрическим током и заканчивая созданием сложных устройств с использованием транзисторов и микроконтроллеров. Описаны основные законы электроники, а также принципы функционирования различных электронных компонентов. Показано, как изготовить охранную сигнализацию для защиты от проникновения в дом, елочные огни, электронные украшения для одежды, устройство преобразования звука, кодовый замок, автономную роботизированную тележку и др. Приведены пошаговые инструкции и более 500 наглядных рисунков и фотографий.Для начинающих радиолюбителей

Паоло Аливерти , Чарльз Платт

Радиоэлектроника / Технические науки
Искусство схемотехники. Том 3 (Изд.4-е)
Искусство схемотехники. Том 3 (Изд.4-е)

Широко известная читателю по предыдущим изданиям монография известных американских специалистов посвящена быстро развивающимся областям электроники. В ней приведены наиболее интересные технические решения, а также анализируются ошибки разработчиков аппаратуры: внимание читателя сосредотачивается на тонких аспектах проектирования и применения электронных схем. На русском языке издается в трех томах. Том 3 содержит сведения о микропроцессорах, радиотехнических схемах, методах измерения и обработки сигналов, принципах конструирования аппаратуры и проектирования маломощных устройств, а также обширные приложения. Для специалистов в области электроники, автоматики, вычислительной техники, а также студентов соответствующих специальностей вузов и техникумов.

Пауль Хоровиц , Уинфилд Хилл

Техника / Радиоэлектроника