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

Команды условных и безусловных переходов

Мнемокод

Операция

Выполняемое действие

Способ адресации

Влияние на признаки

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