
- •Приложение 1. Система команд ассемблера hcs08
- •Команды загрузки и пересылки данных
- •Арифметические команды
- •Логические команды
- •Команды сдвига
- •Команды битового процессора
- •Команды условных и безусловных переходов
- •Команды работы со стеком вызова подпрограмм и обслуживания прерываний
- •Команды перехода к режимам пониженного энергопотребления и в режим отладки
Команды условных и безусловных переходов
Мнемокод |
Операция |
Выполняемое действие |
Способ адресации |
Влияние на признаки |
|||||
V |
H |
I |
N |
Z |
C |
||||
Команды безусловного перехода |
|||||||||
JMP JMP opr JMP opr JMP opr,X JMP opr,X JMP ,X |
Безусловный переход по адресу, указанному в ячейке памяти (ОЗУ или ПЗУ). Адрес ячейки задан используемым в команде способом адресации |
PC ( код адреса |
DIR EXT IX2 IX1 IX |
— |
— |
— |
— |
— |
— |
BRA BRA rel |
Безусловный переход по адресу, код смещения которого указан во втором байте команды |
PC ( (PC) + $0002 + rel |
REL |
— |
— |
— |
— |
— |
— |
BRN BRN rel |
Перейти к следующей команде. Эквивалентна двум командам NOP. Полезна в режиме отладки в абсолютном коде для замены команд условного перехода без изменения абсолютных адресов |
PC ( (PC) + $0002 |
REL |
— |
— |
— |
— |
— |
— |
NOP |
Пустая операция. Счетчик команд PC увеличивается на 1. Другие регистры не изменяются |
Нет |
INH |
— |
— |
— |
— |
— |
— |
Команды ветвления |
|||||||||
BCS BCS rel |
Перейти по метке, если бит переноса С установлен. Иначе перейти к следующей команде |
PC ( (PC) + $0002 + rel, если (С) = 1 |
REL |
— |
— |
— |
— |
— |
— |
BCC BCC rel |
Перейти по метке, если бит переноса С сброшен. Иначе перейти к следующей команде |
PC ( (PC) + $0002 + rel, если (С) = 0 |
REL |
— |
— |
— |
— |
— |
— |
BEQ BEQ rel |
Перейти по метке, если r = m. Иначе перейти к следующей команде |
PC ( (PC) + $0002 + rel, если (Z) = 1 |
REL |
— |
— |
— |
— |
— |
— |
BNE BNE rel |
Перейти по метке, если r ( m. Иначе перейти к следующей команде |
PC ( (PC) + $0002 + rel, если (Z) = 0 |
REL |
— |
— |
— |
— |
— |
— |
BHCS BHCS rel |
Перейти по метке, если бит дополнительного переноса H установлен. Иначе перейти к следующей команде |
PC ( (PC) + $0002 + rel, если (H) = 1 |
REL |
— |
— |
— |
— |
— |
— |
BHCC BHCC rel |
Перейти по метке, если бит дополнительного переноса H сброшен. Иначе перейти к следующей команде |
PC ( (PC) + $0002 + rel, если (H)=0 |
REL |
— |
— |
— |
— |
— |
— |
CBEQ CBEQ opr,rel CBEQA #opr,rel CBEQX #opr,rel CBEQ opr,X+,rel CBEQ X+,rel CBEQ opr,SP,rel |
Сравнить содержимое аккумулятора ACC или регистра Х с содержимым ячейки памяти M (или константой) и перейти по метке, если они равны |
PC ( (PC)+$0003+rel, если (A)–(M)=$00 PC ( (PC)+$0003+rel, если (A)–(M)=$00 PC ( (PC)+$0003+rel, если (X)–(M)=$00 PC ( (PC)+$0003+rel, если (A)–(M)=$00 PC ( (PC)+$0002+rel, если (A)–(M)=$00 PC ( (PC)+$0004+rel, если (A)–(M)=$00 |
DIR IMM IMM IX1+ IX+ SP1 |
— |
— |
— |
— |
— |
— |
DBNZ DBNZ opr,rel DBNZA rel DBNZX rel DBNZ opr,X,rel DBNZ X,rel DBNZ opr,SP,rel |
Вычесть единицу из содержимого ячейки памяти M или аккумулятора ACC или регистра X и перейти по метке, если результат не равен 0 |
A((A)–$01 или M((M)–$01 или X((X)–$01, PC((PC)+$0003+rel, если (result)(0 для DBNZ DIR и IX1 PC((PC)+$0002+rel если (result)(0 для DBNZA, DBNZX и IX PC((PC)+$0004+rel, если (result) (0 для DBNZ SP1 |
DIR INH INH IX1 IX SP1 |
— |
— |
— |
— |
— |
— |
BIH BIH rel |
Перейти по метке, если на входе IRQ ВЫСОКИЙ логический уровень. Иначе перейти к следующей команде |
PC((PC) + $0002 + rel, если IRQ=1 |
REL |
— |
— |
— |
— |
— |
— |
BIL BIL rel |
Перейти по метке, если на входе IRQНИЗКИЙ логический уровень. Иначе перейти к следующей команде |
PC((PC) + $0002 + rel, если IRQ =0 |
REL |
— |
— |
— |
— |
— |
— |
BMS BMS rel |
Перейти по метке, если бит маски I установлен. Иначе перейти к следующей команде. Условие: I = 1 |
PC((PC) + $0002 + rel, если (I)=1 |
REL |
— |
— |
— |
— |
— |
— |
BMC BMC rel |
Перейти по метке, если бит маски I сброшен. Иначе перейти к следующей команде. Условие: I = 0 |
PC((PC) + $0002 + rel, если (I)=0 |
REL |
— |
— |
— |
— |
— |
— |
BRSET BRSET n, opr, rel |
Перейти по указанному адресу, если бит n в байте данных установлен. Иначе перейти к следующей команде. Для указания байта данных используется только прямая адресация. Диапазон адресов $00 ( $FF |
PC ( (PC) + $0003 + rel, если (Mn) = 1 |
DIR (b0) DIR (b1) DIR (b2) DIR (b3) DIR (b4) DIR (b5) DIR (b6) DIR (b7) |
— |
— |
— |
— |
— |
( |
BRCLR BRCLR n, opr, rel |
Перейти по указанному адресу, если бит n в байте данных равен 0. Иначе перейти к следующей команде. Для указания байта данных используется только прямая адресация. Диапазон адресов $00 ( $FF |
PC ( (PC) + $0003 + rel, если (Mn) = 0 |
DIR (b0) DIR (b1) DIR (b2) DIR (b3) DIR (b4) DIR (b5) DIR (b6) DIR (b7) |
— |
— |
— |
— |
— |
( |
Команды ветвления при сравнении чисел без знака |
|||||||||
BHI BHI rel |
Перейти по метке, если r > m. Иначе перейти к следующей команде |
PC ( (PC) +$0002 + rel, если (C) & (Z) =0 |
REL |
— |
— |
— |
— |
— |
— |
BHS BHS rel |
Перейти по метке, если r ( m. Иначе перейти к следующей команде |
PC ( (PC) +$0002 + rel, если (C)=0 |
REL |
— |
— |
— |
— |
— |
— |
BLO BLO rel |
Перейти по метке, если r < m. Иначе перейти к следующей команде |
PC ( (PC) +$0002 + rel, если (C)=1 |
REL |
— |
— |
— |
— |
— |
— |
BLS BLS rel |
Перейти по метке, если r ( m. Иначе перейти к следующей команде |
PC ( (PC) +$0002 + rel (C) ( (Z) =1 |
REL |
— |
— |
— |
— |
— |
— |
Команды ветвления при сравнении чисел со знаком |
|||||||||
BPL BPL rel |
Перейти по метке, если бит знака установлен в 0, т.е число положительное. Иначе перейти к следующей команде |
PC ( (PC) +$0002 + rel, если (N) =0 |
REL |
— |
— |
— |
— |
— |
— |
BMI BMI rel |
Перейти по метке, если бит знака установлен в 1, т.е число отрицательное. Иначе перейти к следующей команде |
PC ( (PC) +$0002 + rel, если (N) =1 |
REL |
— |
— |
— |
— |
— |
— |
BGE BGE rel |
Перейти по метке, если r ( m. Иначе перейти к следующей команде |
PC ( (PC) +$0002 + rel, если (N ( V)=0 |
REL |
— |
— |
— |
— |
— |
— |
BGT BGT rel |
Перейти по метке, если r > m. Иначе перейти к следующей команде |
PC ( (PC) +$0002 + rel, если (Z) & (N ( V)=0 |
REL |
— |
— |
— |
— |
— |
— |
BLE BLE rel |
Перейти по метке, если r ( m. Иначе перейти к следующей команде |
PC ( (PC) +$0002 + rel, если (Z)( (N(V)=1 |
REL |
— |
— |
— |
— |
— |
— |
BLT BLT rel |
Перейти по метке, если r < m. Иначе перейти к следующей команде |
PC ( (PC)+$0002 + rel, если (N(V)=1 |
REL |
— |
— |
— |
— |
— |
— |