Микропроцессорные системы - Александров Е.К.
ISBN 5-7325-0516-4
Скачать (прямая ссылка):
могут быть отнесены как к группе команд битового процессора, так и к
группе команд управления.
Команды передачи управления. Группа команд передачи управления является
самой многочисленной группой. Она содержит 40 инструкций, которые делятся
на две подгруппы: команды условных и безусловных переходов (табл. 4.28),
команды вызова подпрограмм и обслуживания прерываний (табл. 4.29).
378
СЕМЕЙСТВО МК НС08 ФИРМЫ "MOTOROLA"
Таблица 4.27
Команды битового процессора
Мнемокод Операция Выполняемое действие Способ адресации Влияние на
признаки
V H I N Z С
BSET BSET п, орг Установить в "1" бит с номером п в байте данных. Данные
могут располагаться в ячейке ОЗУ или регистре специальных функций. В
команде используется только прямая адресация. Диапазон адресов байтов
данных $00-$FF Мп <= 1 DIR(bO) DIR(b1) DIR(b2) DIR(b3) DIR(b4)
DIR(b5) DIR(b6) DIR(b7)
BCLR BCLR п, орг Установить в "0" (очистить) битс номером п в байте
данных. Данные могут располагаться в ячейке ОЗУ или регистре специальных
функций. В команде используется только прямая адресация. Диапазон адресов
байтов данных $00-$FF Мп <= 0 DIR(bO) DIR(b1) DIR(b2) DIR(b3) DIR(b4)
DIR(b5) DIR(b6) DIR(b7)
SEC Установить в "1" бит переноса С С <= 1 INH
1
CLC Установить в "0" бит переноса С С <=0 INH
0
SEI Установить в "1" глобальную маску прерываний I. Запретить
прерывания 1<= 1 INH - - 1 - - -
CLI Установить в "0" глобальную маску прерываний I. Разрешать
прерывания !<= 1 INH - - 0 - - -
Центральный процессор CPU08 может использовать три команды условного
перехода: традиционную трехбайтовую команду JMP и две двухбайтовых
команды BRA и BRN. Команда JMP отличается расширенным набором способов
задания адреса перехода. Этот адрес может быть в том числе определен
одним из способов индексной адресации, что позволяет разместить
изменяемый в ходе выполнения программы адрес в одной из ячеек ОЗУ.
Двухбайтовая команда BRA реализует безусловный переход в пределах
смещения от -128 до +127 относительно текущего адреса. Эта команда
позволяет более экономно расходовать память. Команда BRN аналогична
команде NOP, но имеет двухбайтовый формат. Значение смещения, которое
указано во втором байте команды, смысла не имеет. Эта команда полезна для
режимов отладки программного обеспечения в абсолютном коде. Она позволяет
заменить инструкцию ветвления на инструкцию NOP без изменения байта
смещения rel в формате команды условного перехода.
Группа команд ветвления чрезвычайно широка. Кроме переходов по
традиционным условиям С, Z, N, Н, реализованы переходы по комбинациям
флагов С и Z для сравнения операндов в прямом коде без знака, а также по
комбинациям флагов С, Z,n Удля сравнения операндов в дополнительном коде
со знаком.
Особое внимание следует обратить на команды CBEQ и DBNZ:
CBEQ opr,rel ; Сравнить аккумулятор АСС с содержимым прямоадресуемой
; ячейки памяти и перейти по метке, если они равны.
CBEQ x+,rel ; Сравнить аккумулятор АСС с содержимым ячейки памяти,
; адрес которой содержится в индексном регистре и перейти ; по метке,
если они равны. Содержимое индексного регистра Н:Х ; увеличивается на 1
после выполнения сравнения.
379
8-РАЗРЯДНЫЕ МИКРОКОНТРОЛЛЕРЫ
DBN2 x.rel ; Уменьшить на 1 содержимое ячейки памяти, адрес которой
; указан в индексном регистре Н;Х, и перейти по метке, если ; результат
не равен 0.
DBNZA rel ; Уменьшить на 1 содержимое аккумулятора АСС и перейти по
; метке, если результат не равен 0.
Команды CBEQ и DBNZ имеют достаточно широкий набор способов адресации
(см. табл. 4.28).
Таблица 4.28
Команды условных и безусловных переходов
Мнемокод Операция Выполняемое действие Способ адресации Влияние на
признаки V H I N Z С
Команды безусловного перехода
JMP JMP орг JMP орг JMP орг.Х JMP орг.Х JMP ,Х Безусловный переход по
адресу, указанному в ячейке памяти (ОЗУ или ПЗУ). Адрес ячейки задан
используемым в команде способом адресации PC <= Jump Address DIR
EXT IX2 1X1 IX
BRA BRA rel Безусловный переход по адресу, код смещения которого указан во
втором байте команды PC <= (PC)+$0002+rel REL
BRN BRN rel Перейти к следующей команде. Эквивалентна двум инструкциям
NOP. Полезна в режиме отладки в абсолютном коде для замены инструкций
условного перехода без изменения абсолютных адресов PC <= (PC)+$0002
REL
NOP Пустая операция. Счетчик команд PC увеличивается на 1. Другие
регистры не изменяются None INH
Команды ветвления
BCS BCS rel Перейти по метке, если бит переноса С установлен. Иначе
перейти к следующей команде PC <= (PC)+$0002+rel? (C) = 1 REL
вес ВСС rel Перейти по метке, если бит переноса С сброшен. Иначе перейти к
следующей команде PC <= (PC)+$0002+rel? (C) = 0 REL
BEQ BEQ rel Перейти по метке, если r= т. Иначе перейти к следующей команде
PC <= (PC)+$0002+rel? (Z) = 1 REL
BNE BNE rel Перейти по метке, если г/ т. Иначе перейти к следующей команде
PC <= (PC)+$0002+rel? (Z) = 0 REL