Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
мпт 2013.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
2.12 Mб
Скачать

24. Классификация команд микроконтроллеров.

Система команд процессора

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

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

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

  • логические команды ;

  • команды переходов.

Команды пересылки данных не требуют выполнения никаких операций над операндами.

  • Операнды просто пересылаются (точнее, копируются) из источника (Source) в приемник (Destination).

  • Источником и приемником могут быть внутренние регистры процессора, ячейки памяти или устройства ввода/вывода.

  • АЛУ в данном случае не используется.

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

  • Этим командам требуется один или два входных операнда.

  • Формируют команды один выходной операнд.

Логические команды производят над операндами логические операции, например, логическое И, логическое ИЛИ, исключающее ИЛИ, очистку, инверсию, разнообразные сдвиги (вправо, влево, арифметический сдвиг, циклический сдвиг).

  • Этим командам, как и арифметическим, требуется один или два входных операнда, и формируют они один выходной операнд.

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

  • С их помощью организуются переходы на подпрограммы и возвраты из них, всевозможные циклы, ветвления программ, пропуски фрагментов программ и т.д.

  • Команды переходов всегда меняют содержимое счетчика команд.

  • Переходы могут быть условными и безусловными.

  • Именно эти команды позволяют строить сложные алгоритмы обработки информации.

Состояние процессора

  • В соответствии с результатом каждой выполненной команды устанавливаются или очищаются биты регистра состояния процессора ( PSW, STATUS, SREG).

  • Не все команды изменяют все имеющиеся в регистре состояния флаги. Это определяется особенностями каждого конкретного процессора.

  • У разных процессоров системы команд существенно различаются, но в основе своей они очень похожи. Количество команд у процессоров также различно.

27.Представление чисел в микропроцессоре. Математические инструкции. Операции с многобайтными числами.

  • Дополнительный код (англ. two’s complement, иногда twos-complement) — наиболее распространённый способ представления отрицательных целых чисел в компьютерах.

  • Он позволяет заменить операцию вычитания на операцию сложения и сделать операции сложения и вычитания одинаковыми для знаковых и беззнаковых чисел, чем упрощает архитектуру ЭВМ.

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

  • При записи числа в дополнительном коде старший разряд является знаковым. Если его значение равно 0, то в остальных разрядах записано положительное двоичное число, совпадающее с прямым кодом.

  • Двоичное 8-ми разрядное число со знаком в дополнительном коде может представлять любое целое в диапазоне от −128 до +127.

Основные математические инструкции

  • ADD - Сложить без переноса (Сложение двух регистров без добавления содержимого флага переноса (С), размещение результата в регистре назначения Rd.)

  • ADC - Сложить с переносом (Сложение двух регистров и содержимого флага переноса (С), размещение результата в регистре назначения Rd.)

  • SUB - Вычесть без переноса (Вычитание содержимого регистра-источника Rr из содержимого регистра Rd, размещение результата в регистре назначения Rd.)

  • SBC - Вычесть с переносом (Вычитание содержимого регистра-источника и содержимого флага переноса (С) из рег-ра Rd, размещение рез-та в регистре назначения Rd.)

  • SUBI - Вычесть непосредственное значение (Вычитание константы из содержимого регистра, размещение результата в регистре назначения Rd.)

  • SBCI - Вычесть непосредственное значение с переносом (Вычитание конст-ы и содержимого флага переноса (С) из содержимого регистра, размещение рез-та в регистре назначения Rd.)

  • CP – Сравнить (Команда выполняет сравнение содержимого 2-х регистров Rd и Rr. Содержимое регистров не изм-ся. После можно выполнять любые условные переходы.)

  • CPC - Сравнить с учетом переноса (Команда выполняет сравнение содержимого двух регистров Rd и Rr и учитывает также предшествовавший перенос. Содержимое регистров не измен-ся. После этой команды можно выполнять любые условные переходы.)

  • CPI - Сравнить c константой (Команда выполняет сравнение содержимого регистра Rd с константой. Содержимое регистра не изменяется. После этой команды можно выполнять любые условные переходы.)

  • INC – Инкрементировать (Добавление - 1 - к содержимому регистра Rd и размещение рез-та в регистре назначения Rd. Флаг переноса регистра статуса этой командой не активируется)

  • DEC – Декрементировать(Вычитание - 1 - из содержимого регис-ра Rd и размещение рез-та в регистре назначения Rd. Флаг переноса регистра статуса данной командой не активируется)

  • NEG - Выполнить дополнение до двух (Заменяет содержимое регистра Rd его дополнением до двух. Значение $80 остается неизменным.)

  • ADIW - Сложить непосредственное значение со словом (Сложение непосредственного значения (0-63) с парой регистров и размещение результата в паре регистров. Команда работает с четырьмя верхними парами регистров, удобна для работы с регистрами указателями.)

  • SBIW - Вычесть непосредственное значение из слова (Вычитание непосредственного значения (0-63) из пары регистров и размещение результата в паре регистров. Команда работает с четырьмя верхними парами регистров, удобна для работы с регистрами указателями.)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]