ОДНОКРИСТАЛЬНЫЕ МИКРОКОНТРОЛЛЕРЫ
MC68HC08
MOTOROLA
Основные характеристики
n MC68HC08 - КМОП технология - с 1994 г.
n Одинаковое 8-разрядное процессорное ядро, на порядок более производительное, чем M68HC05
n 8 Мгц - внутренняя тактовая частота шины (4мгц для HC08AS48)
n CSIC - Customer Specified Integrated Circuits design strategy - определяемая пользователем архитектура на базе набора стандартных модулей
n Объектная совместимость снизу вверх с M6805, M68HC05
n 16 методов адресации
n 64k - общее адресное пространство
n ПЗУ - до 56К (HC08LN56) (масочное, однократно программируемое, с УФ стиранием, с электрическим стиранием)
n ОЗУ - до 1.5К
n 7 портов ввода / вывода
n Поддержка прямого доступа к памяти (НС708XL36)
n Отсутствует возможность обращения к внешней памяти
n Таймер 16-разрядный до 6 каналов IC, OC (Input Capture, Output Compare)
n COP (Computer Operate Properly) Watchdog таймер
n SPI - Serial Peripheral Interface - синхронный последовательный канал связи
n SCI - Serial Communication Interface - асинхронный последовательный канал связи, Гц
n АЦП - до 16 каналов, 8 бит
n ШИМ - (PWM - Pulse Width Modulation) (HC708MP16) - управление громкостью звука, яркостью изображения, управление электродвигателями
n Котроллер жидкокристаллического индикатора (HC08LN56)
n 24 источника прерывания, в т. ч. 6 источников RESET, приоритет которых выше приоритета прерываний
n 64- выводной QFP или 52-выводной PLCC корпус
Обозначения
OP - код операции;
<- - операция присвоения;
: - операция конкатенации;
ad8 - прямой восьмиразрядный адрес 8-разрядного или 16-разрядного регистра; ad8 - адрес старшего байта; ad8+1 - адрес младшего байта;
ad16 - прямой шестнадцатиразрядный адрес 8-разрядной ячейки памяти ;
ADMAX - максимальный адрес в системе: $FFFF для НС08, $1FFF для MC86HC705C8
d - непосредственные 8-разрядные или 16-разрядные данные;
d8 - непосредственные 8-разрядные данные;
d16, d16h, d16l - непосредственные 16-разрядные данные, старший и младший байты;
of8 - восьмиразрядное смещение без знака;
of16, of16h, of16l - шестнадцатиразрядное смещение без знака, старший и младший байты;
rel - приращение адреса из множества [-128,+127] в командах условного перехода, прибавляемого к адресу следующей за командой перехода команды;
D, S - префиксы, явно указывающие на принадлежность соответственно к приемнику и источнику операнда;
(ad) - содержимое байта либо слова, адресуемого адресом ad;
cad - метка в ассемблере, обозначающая адрес команды, на которую осуществляется переход; абсолютное значение адреса заменяется ассемблером на относительное приращение rel, равное расстоянию в байтах между адресом следующей за текущей команды и меткой cad.
Регистры
7 0 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
A - Аккумулятор | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
15 8 | 7 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
H | X H:X - объед-й индексный регистр | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Reset | 0 - совмест-ть с HC05 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ОДНОКРИСТАЛЬНЫЕ МИКРОКОНТРОЛЛЕРЫ MC68HC08 MOTOROLA Основные характеристики n MC68HC08 - КМОП технология - с 1994 г. n Одинаковое 8-разрядное процессорное ядро, на порядок более производительное, чем M68HC05 n 8 Мгц - внутренняя тактовая частота шины (4мгц для HC08AS48) n CSIC - Customer Specified Integrated Circuits design strategy - определяемая пользователем архитектура на базе набора стандартных модулей n Объектная совместимость снизу вверх с M6805, M68HC05 n 16 методов адресации n 64k - общее адресное пространство n ПЗУ - до 56К (HC08LN56) (масочное, однократно программируемое, с УФ стиранием, с электрическим стиранием) n ОЗУ - до 1.5К n 7 портов ввода / вывода n Поддержка прямого доступа к памяти (НС708XL36) n Отсутствует возможность обращения к внешней памяти n Таймер 16-разрядный до 6 каналов IC, OC (Input Capture, Output Compare) n COP (Computer Operate Properly) Watchdog таймер n SPI - Serial Peripheral Interface - синхронный последовательный канал связи n SCI - Serial Communication Interface - асинхронный последовательный канал связи, Гц n АЦП - до 16 каналов, 8 бит n ШИМ - (PWM - Pulse Width Modulation) (HC708MP16) - управление громкостью звука, яркостью изображения, управление электродвигателями n Котроллер жидкокристаллического индикатора (HC08LN56) n 24 источника прерывания, в т. ч. 6 источников RESET, приоритет которых выше приоритета прерываний n 64- выводной QFP или 52-выводной PLCC корпус Обозначения OP - код операции; <- - операция присвоения; : - операция конкатенации; ad8 - прямой восьмиразрядный адрес 8-разрядного или 16-разрядного регистра; ad8 - адрес старшего байта; ad8+1 - адрес младшего байта; ad16 - прямой шестнадцатиразрядный адрес 8-разрядной ячейки памяти ; ADMAX - максимальный адрес в системе: $FFFF для НС08, $1FFF для MC86HC705C8 d - непосредственные 8-разрядные или 16-разрядные данные; d8 - непосредственные 8-разрядные данные; d16, d16h, d16l - непосредственные 16-разрядные данные, старший и младший байты; of8 - восьмиразрядное смещение без знака; of16, of16h, of16l - шестнадцатиразрядное смещение без знака, старший и младший байты; rel - приращение адреса из множества [-128,+127] в командах условного перехода, прибавляемого к адресу следующей за командой перехода команды; D, S - префиксы, явно указывающие на принадлежность соответственно к приемнику и источнику операнда; (ad) - содержимое байта либо слова, адресуемого адресом ad; cad - метка в ассемблере, обозначающая адрес команды, на которую осуществляется переход; абсолютное значение адреса заменяется ассемблером на относительное приращение rel, равное расстоянию в байтах между адресом следующей за текущей команды и меткой cad. Регистры
Флаги CCR - Condition Code Register - регистр флагов V - (oVerflow) - переполнение; H - (Half carry) - перенос из 3-го разряда в 4-ый; I - (Interrupt) - маска прерывания: 1 - все прерывания запрещены; N - (Negativ) - отрицательный результат команды; Z - (Zero) - нулевой результат команды; C - (Carry) - перенос; + - флаг устанавливается в 0 или 1; - - флаг не изменяется; 0 - флаг устанавливается в 0; 1 - флаг устанавливается в 1; ? - флаг неопределен. Способы адресации 1. Подразумеваемая (INH) OP
TXA; (A) <- (X) PSHX; ((SP)) <- (X); (SP)<-(SP)-1 DIV; (A) <- (H:A)/(X); (H) <- (H:A)mod(X) TSX; (H:X) <- (SP)+1 2. Непосредственная (IMM) OP #d
n один или два байта в зависимости от разрядности регистра, участвующего в команде ADD #d8; A)<-(A)+ d8 LDHX #d16; (H:X) <- d16 3. Прямая (DIR) OP ad8
n область RAM - наиболее часто используемые данные n сокращение на 1 цикл времени ADD ad8; (A) <- (A)+(ad8) JMP ad8; (PC) <- ad8 n (ad8):(ad8+1разряядная адресация: LDHX ad8; (H:X) <- (ad8):(ad8+1) STHX ad8; (ad8):(ad8+1) <- (H:X) 4. Расширенная (EXT) OP ad16
n Ассемблер сам определяет ad8 либо ad16 ADD ad16; (A)<-(A)+(ad16) JMP ad16; (PC) <- ad16 5. Индексная без смещения (IX) (нет в НС11) OP, X
n (H:X) - исполнительный адрес n (H)<-$00 - совместимость с HC05 n перемещение указателя по таблице ADD, X; (A)<-(A)+((H:X)) JMP, X; (PC) <- (H:X) 6. Индексная с 8-битным смещением (IX8) OP of8,X
n - of8+(H:X) - исполнительный адрес n выделение к-ого элемента в таблице; к - в (H:X)
НЕ нашли? Не то? Что вы ищете?
ADD of8,X; (A)<-(A)+(of8+(H:X)) JMP of8,X; (PC) <- of8+(H:X) 7. Индексная с 16-битным смещением (IX16) (нет в НС11) OP of16,X
n - of16+(H:X) - исполнительный адрес n выделение к-ого элемента в таблицеж; к - в (H:X) n ассемблер сам определяет of8 либо of16 ADD of16,X; (A)<-(A)+(of16+(H:X)) JMP of16,X; (PC) <- of16+(H:X) 8. По указателю стека с 8-битным смещением (SP8) (только в НС08) OP of8,SP
n - of8+(SP) - исполнительный адрес n доступ к данным стека ADD of8,SP; (A)<-(A)+(of8+(SP)) 9. По указателю стека с 16-битным смещением (SP16) (только в НС08) OP of16,SP
n - of16+(SP) - исполнительный адрес n доступ к данным стека n ассемблер сам определяет of8 либо of16 n если прерывания запрещены - SP - еще один индексный регистр ADD of16,SP; (A)<-(A)+(of16+(SP)) 10. Относительная - в командах условного перехода (REL) OP cad
n rel+(PC) - исполнительный адрес n ассемблер сам вычисляет rel BCS cad; Если (C)=1, (PC)<-(PC)+rel 11. Непосредственная - прямая (только в НС08) MOV #d8,Dad8; (Dad8) <- d8
12. Прямая - прямая (DD) (только в НС08) MOV Sad8,Dad8; (Dad8) <- (Sad8)
13. Индексная постинкрементная - прямая (IX+D) (только в НС08) MOV X+, Dad8; (Dad8)<-((H:X)); (H:X)<-(H:X)+1
n пересылка таблицы через последовательный канал 14. Прямая - индексная постинкрементная (DIX+) (только в НС08) MOV Sad8, X+; ((H:X))<-(Sad8); (H:X)<-(H:X)+1
n прием таблицы через последовательный канал 15. Индексная постинкрементная - относительная (IX+REL) (только в НС08) CBEQ X+,cad; Если (A)=((H:X)), (PC)<-(PC)+rel; (H:X)<-(H:X)+1
16. Индексная постинкрементная с 8-битным смещением - относительная (IX8+REL) (только в НС08) CBEQ of8,X+,cad; Если (A)=(of8+(H:X)), (PC)<-(PC)+rel; (H:X)<-(H:X)+1
Система команд В таблицах описания команд принята групповая форма записи, в которой операнды aop могут иметь все основные (со 2 по 9) типы адресации. Например, запись команды ADD aop должна раскрываться соответственно множеством следующих команд:
Для команд сохранения (STA, STX), естественно отсутствует непосредственная адресация. Следует отметить, что значение числа циклов цк, за которое команда должна выполняться и числа байт в команде бт, естественно, определяются конкретным способом адресации операндов. При групповой форме записи в таблицах команд в этих столбцах стоит звездочка. В выше приведенной таблице для каждого конкретного способа адресации операндов указано числа циклов цк и числа байт бт, которые должны использоваться во всех групповых командах, а не только в команде ADD. 1. Команды пересылки
2. Команды логической обработки
3. Команды арифметической обработки
4. Команды перехода
5. Команды управления
| SP ô, на свободную ячейку | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
$FFFE по Reset | PC | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
V | 1 | 1 | H | I | N | Z | C | CCR | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Флаги
CCR - Condition Code Register - регистр флагов
V - (oVerflow) - переполнение;
H - (Half carry) - перенос из 3-го разряда в 4-ый;
I - (Interrupt) - маска прерывания: 1 - все прерывания запрещены;
N - (Negativ) - отрицательный результат команды;
Z - (Zero) - нулевой результат команды;
C - (Carry) - перенос;
+ - флаг устанавливается в 0 или 1;
- - флаг не изменяется;
0 - флаг устанавливается в 0;
1 - флаг устанавливается в 1;
? - флаг неопределен.
Способы адресации
1. Подразумеваемая (INH)
OP
7 0 | ||
OP | Операнд(ы) (A, H:X, H, X) кодируется в OP |
TXA; (A) <- (X)
PSHX; ((SP)) <- (X); (SP)<-(SP)-1
DIV; (A) <- (H:A)/(X); (H) <- (H:A)mod(X)
TSX; (H:X) <- (SP)+1
2. Непосредственная (IMM)
OP #d
OP | d8 | Операнд в команде | ||
OP | d16h | d16l | Со старшего байта |
n один или два байта в зависимости от разрядности регистра, участвующего в команде
ADD #d8; A)<-(A)+ d8
LDHX #d16; (H:X) <- d16
3. Прямая (DIR)
OP ad8
OP | ad8 | Старший байт 00 |
n область RAM - наиболее часто используемые данные
n сокращение на 1 цикл времени
ADD ad8; (A) <- (A)+(ad8)
JMP ad8; (PC) <- ad8
n (ad8):(ad8+1разряядная адресация:
LDHX ad8; (H:X) <- (ad8):(ad8+1)
STHX ad8; (ad8):(ad8+1) <- (H:X)
4. Расширенная (EXT)
OP ad16
OP | ad16h | ad16l |
n Ассемблер сам определяет ad8 либо ad16
ADD ad16; (A)<-(A)+(ad16)
JMP ad16; (PC) <- ad16
5. Индексная без смещения (IX) (нет в НС11)
OP, X
OP |
n (H:X) - исполнительный адрес
n (H)<-
ОДНОКРИСТАЛЬНЫЕ МИКРОКОНТРОЛЛЕРЫ
MC68HC08
MOTOROLA
Основные характеристики
n MC68HC08 - КМОП технология - с 1994 г.
n Одинаковое 8-разрядное процессорное ядро, на порядок более производительное, чем M68HC05
n 8 Мгц - внутренняя тактовая частота шины (4мгц для HC08AS48)
n CSIC - Customer Specified Integrated Circuits design strategy - определяемая пользователем архитектура на базе набора стандартных модулей
n Объектная совместимость снизу вверх с M6805, M68HC05
n 16 методов адресации
n 64k - общее адресное пространство
n ПЗУ - до 56К (HC08LN56) (масочное, однократно программируемое, с УФ стиранием, с электрическим стиранием)
n ОЗУ - до 1.5К
n 7 портов ввода / вывода
n Поддержка прямого доступа к памяти (НС708XL36)
n Отсутствует возможность обращения к внешней памяти
n Таймер 16-разрядный до 6 каналов IC, OC (Input Capture, Output Compare)
n COP (Computer Operate Properly) Watchdog таймер
n SPI - Serial Peripheral Interface - синхронный последовательный канал связи
n SCI - Serial Communication Interface - асинхронный последовательный канал связи, Гц
n АЦП - до 16 каналов, 8 бит
n ШИМ - (PWM - Pulse Width Modulation) (HC708MP16) - управление громкостью звука, яркостью изображения, управление электродвигателями
n Котроллер жидкокристаллического индикатора (HC08LN56)
n 24 источника прерывания, в т. ч. 6 источников RESET, приоритет которых выше приоритета прерываний
n 64- выводной QFP или 52-выводной PLCC корпус
Обозначения
OP - код операции;
<- - операция присвоения;
: - операция конкатенации;
ad8 - прямой восьмиразрядный адрес 8-разрядного или 16-разрядного регистра; ad8 - адрес старшего байта; ad8+1 - адрес младшего байта;
ad16 - прямой шестнадцатиразрядный адрес 8-разрядной ячейки памяти ;
ADMAX - максимальный адрес в системе: $FFFF для НС08, $1FFF для MC86HC705C8
d - непосредственные 8-разрядные или 16-разрядные данные;
d8 - непосредственные 8-разрядные данные;
d16, d16h, d16l - непосредственные 16-разрядные данные, старший и младший байты;
of8 - восьмиразрядное смещение без знака;
of16, of16h, of16l - шестнадцатиразрядное смещение без знака, старший и младший байты;
rel - приращение адреса из множества [-128,+127] в командах условного перехода, прибавляемого к адресу следующей за командой перехода команды;
D, S - префиксы, явно указывающие на принадлежность соответственно к приемнику и источнику операнда;
(ad) - содержимое байта либо слова, адресуемого адресом ad;
cad - метка в ассемблере, обозначающая адрес команды, на которую осуществляется переход; абсолютное значение адреса заменяется ассемблером на относительное приращение rel, равное расстоянию в байтах между адресом следующей за текущей команды и меткой cad.
Регистры
7 0 | |||||||||
A - Аккумулятор | |||||||||
15 8 | 7 0 | ||||||||
H | X H:X - объед-й индексный регистр | ||||||||
Reset | 0 - совмест-ть с HC05 | ||||||||
$00FF по Reset | SP ô, на свободную ячейку | ||||||||
$FFFE по Reset | PC | ||||||||
V | 1 | 1 | H | I | N | Z | C | CCR | |
Флаги
CCR - Condition Code Register - регистр флагов
V - (oVerflow) - переполнение;
H - (Half carry) - перенос из 3-го разряда в 4-ый;
I - (Interrupt) - маска прерывания: 1 - все прерывания запрещены;
N - (Negativ) - отрицательный результат команды;
Z - (Zero) - нулевой результат команды;
C - (Carry) - перенос;
+ - флаг устанавливается в 0 или 1;
- - флаг не изменяется;
0 - флаг устанавливается в 0;
1 - флаг устанавливается в 1;
? - флаг неопределен.
Способы адресации
1. Подразумеваемая (INH)
OP
7 0 | ||
OP | Операнд(ы) (A, H:X, H, X) кодируется в OP |
TXA; (A) <- (X)
PSHX; ((SP)) <- (X); (SP)<-(SP)-1
DIV; (A) <- (H:A)/(X); (H) <- (H:A)mod(X)
TSX; (H:X) <- (SP)+1
2. Непосредственная (IMM)
OP #d
OP | d8 | Операнд в команде | ||
OP | d16h | d16l | Со старшего байта |
n один или два байта в зависимости от разрядности регистра, участвующего в команде
ADD #d8; A)<-(A)+ d8
LDHX #d16; (H:X) <- d16
3. Прямая (DIR)
OP ad8
OP | ad8 | Старший байт 00 |
n область RAM - наиболее часто используемые данные
n сокращение на 1 цикл времени
ADD ad8; (A) <- (A)+(ad8)
JMP ad8; (PC) <- ad8
n (ad8):(ad8+1разряядная адресация:
LDHX ad8; (H:X) <- (ad8):(ad8+1)
STHX ad8; (ad8):(ad8+1) <- (H:X)
4. Расширенная (EXT)
OP ad16
OP | ad16h | ad16l |
n Ассемблер сам определяет ad8 либо ad16
ADD ad16; (A)<-(A)+(ad16)
JMP ad16; (PC) <- ad16
5. Индексная без смещения (IX) (нет в НС11)
OP, X
OP |
n (H:X) - исполнительный адрес
n (H)<-$00 - совместимость с HC05
n перемещение указателя по таблице
ADD, X; (A)<-(A)+((H:X))
JMP, X; (PC) <- (H:X)
6. Индексная с 8-битным смещением (IX8)
OP of8,X
OP | of8 | Без знака |
n - of8+(H:X) - исполнительный адрес
n выделение к-ого элемента в таблице; к - в (H:X)
ADD of8,X; (A)<-(A)+(of8+(H:X))
JMP of8,X; (PC) <- of8+(H:X)
7. Индексная с 16-битным смещением (IX16) (нет в НС11)
OP of16,X
OP | of16h | of16l | Без знака |
n - of16+(H:X) - исполнительный адрес
n выделение к-ого элемента в таблицеж; к - в (H:X)
n ассемблер сам определяет of8 либо of16
ADD of16,X; (A)<-(A)+(of16+(H:X))
JMP of16,X; (PC) <- of16+(H:X)
8. По указателю стека с 8-битным смещением (SP8) (только в НС08)
OP of8,SP
9E | OP | of8 | Без знака |
n - of8+(SP) - исполнительный адрес
n доступ к данным стека
ADD of8,SP; (A)<-(A)+(of8+(SP))
9. По указателю стека с 16-битным смещением (SP16) (только в НС08)
OP of16,SP
9E | OP | of16h | of16l |
n - of16+(SP) - исполнительный адрес
n доступ к данным стека
n ассемблер сам определяет of8 либо of16
n если прерывания запрещены - SP - еще один индексный регистр
ADD of16,SP; (A)<-(A)+(of16+(SP))
10. Относительная - в командах условного перехода (REL)
OP cad
OP | rel | Со знаком [-128, +127] |
n rel+(PC) - исполнительный адрес
n ассемблер сам вычисляет rel
BCS cad; Если (C)=1, (PC)<-(PC)+rel
11. Непосредственная - прямая (только в НС08)
MOV #d8,Dad8; (Dad8) <- d8
OP | d8 | ad8 |
12. Прямая - прямая (DD) (только в НС08)
MOV Sad8,Dad8; (Dad8) <- (Sad8)
OP | Sad8 | Dad8 |
13. Индексная постинкрементная - прямая (IX+D) (только в НС08)
MOV X+, Dad8; (Dad8)<-((H:X)); (H:X)<-(H:X)+1
OP | Dad8 |
n пересылка таблицы через последовательный канал
14. Прямая - индексная постинкрементная (DIX+) (только в НС08)
MOV Sad8, X+; ((H:X))<-(Sad8); (H:X)<-(H:X)+1
OP | Sad8 |
n прием таблицы через последовательный канал
15. Индексная постинкрементная - относительная (IX+REL) (только в НС08)
CBEQ X+,cad; Если (A)=((H:X)), (PC)<-(PC)+rel; (H:X)<-(H:X)+1
OP | rel |
16. Индексная постинкрементная с 8-битным смещением - относительная (IX8+REL) (только в НС08)
CBEQ of8,X+,cad; Если (A)=(of8+(H:X)), (PC)<-(PC)+rel; (H:X)<-(H:X)+1
OP | of8 | rel |
Система команд
В таблицах описания команд принята групповая форма записи, в которой операнды aop могут иметь все основные (со 2 по 9) типы адресации. Например,
запись команды
ADD aop
должна раскрываться соответственно множеством следующих команд:
Мнемоника | Спос адр. | Содержание | Флаги VHINZC | Цк | Бт | Примечание |
ADD #d8 | IMM | (A)<-(A)+ d8 | ++-+++ | 2 | 2 | ADD |
ADD ad8 | DIR | (A)<-(A)+(ad8) | ++-+++ | 3 | 2 | without |
ADD ad16 | EXT | (A)<-(A)+(ad16) | ++-+++ | 4 | 3 | carry |
ADD, X | IX | ++-+++ | 2 | 3 | ||
ADD of8,X | IX8 | (A)<-(A)+(of8+(H:X)) | ++-+++ | 3 | 2 | |
ADD of16,X | IX16 | (A)<-(A)+(of16+(H:X)) | ++-+++ | 4 | 3 | |
ADD of8,SP | SP8 | (A)<-(A)+(of8+(SP)) | ++-+++ | 4 | 3 | Два байта в |
ADD of16,SP | SP16 | (A)<-(A)+(of16+(SP)) | ++-+++ | 5 | 4 | коде опер. |
Для команд сохранения (STA, STX), естественно отсутствует непосредственная адресация.
Следует отметить, что значение числа циклов цк, за которое команда должна выполняться и числа байт в команде бт, естественно, определяются конкретным способом адресации операндов. При групповой форме записи в таблицах команд в этих столбцах стоит звездочка. В выше приведенной таблице для каждого конкретного способа адресации операндов указано числа циклов цк и числа байт бт, которые должны использоваться во всех групповых командах, а не только в команде ADD.
1. Команды пересылки
Мнемоника | Спос адр. | Содержание | Флаги VHINZC | Цк | Бт | Примечание |
LDA aop | * | (A) <- (aop) | 0--++- | * | * | Load A |
STA aop | * | (aop) <- (A) | 0--++- | * | * | Store A |
LDX aop | * | (X) <-( aop) | 0--++- | * | * | Load X |
STX aop | * | (aop) <- (X) | 0--++- | * | * | Store X |
LDHX #d16 | IMM | (H:X) <- d16 | 0--++- | 3 | 3 | Load HX |
LDHX ad8 | DIR | (H:X) <- (ad8):(ad8+1) | 0--++- | 4 | 2 | Со старшего |
STHX ad8 | DIR | (ad8):(ad8+1) <- (H:X) | 0--++- | 4 | 2 | Со старшего |
TXA | INH | (A) <- (X) | ------ | 1 | 1 | Transfer |
TAX | INH | (X) <- (A) | ------ | 1 | 1 | |
TPA | INH | (A) <- (CCR) | ------ | 1 | 1 | PSW=CCR |
TAP | INH | (CCR) <-( A) | ++++++ | 1 | 1 | |
TXS | INH | (SP) <- (H:X)-1 | ------ | 2 | 1 | Stack |
TSX | INH | (H:X) <- (SP)+1 | ------ | 2 | 1 | На последнее записанное |
MOV Sad8,Dad8 | DD | (Dad8) <- (Sad8) | 0--++- | 5 | 3 | MOVe |
MOV Sad8,X+ | DIX+ | ((H:X))<-(Sad8); (H:X)<-(H:X)+1 | 0--++- | 4 | 2 | Два операнда в команде |
MOV #d8,Dad8 | IMD | (Dad8) <- d8 | 0--++- | 4 | 3 | |
MOV X+,Dad8 | IX+D | (Dad8)<-((H:X)); (H:X)<-(H:X)+1 | 0--++- | 4 | 2 | |
PSHA | INH | ((SP)) <- (A); (SP)<-(SP)-1 | ------ | 2 | 1 | Push A |
PSHH | INH | ((SP)) <- (H); (SP)<-(SP)-1 | ------ | 2 | 1 | Push H |
PSHX | INH | ((SP)) <- (X); (SP)<-(SP)-1 | ------ | 2 | 1 | Push X |
PULA | INH | (SP)<-(SP)+1; (A) <- ((SP)) | ------ | 2 | 1 | Pull A |
PULH | INH | (SP)<-(SP)+1; (H) <- ((SP)) | ------ | 2 | 1 | Pull H |
PULX | INH | (SP)<-(SP)+1; (X) <- ((SP)) | ------ | 2 | 1 | Pull X |
NSA | INH | (A) <- (A).3-0 : (A).7-4 | ------ | 3 | 1 | Nibble Swap Accumulator |
2. Команды логической обработки
Мнемоника | Спос адр. | Содержание | Флаги VHINZC | Цк | Бт | Примечание |
AND aop | * | (A)<-(A)&(aop) | 0--++- | * | * | Поразрядно |
BIT aop | * | (A)&(aop); | 0--++- | * | * | BIT test |
ORA aop | * | (A)<-(A)|(aop) | 0--++- | * | * | |
EOR aop | * | (A)<-(A)Å(aop) | 0--++- | * | * | ExclusiveOR |
CLRA | INH | (A) <- 0 | +--++- | 1 | 1 | CLeaR A |
CLRX | INH | (X) <- 0 | +--++- | 1 | 1 | CLeaR X |
CLRH | INH | (H) <- 0 | +--++- | 1 | 1 | CLeaR H |
CLR ad8 | DIR | (ad8) <- 0 | +--++- | 3 | 2 | |
CLR, X | IX | ((H:X)) <- 0 | +--++- | 2 | 1 | |
CLR of8,X | IX8 | (of8+(H:X)) <- 0 | +--++- | 3 | 2 | |
CLR of8,SP | SP8 | (of8+(SP)) <- 0 | +--++- | 4 | 3 | |
BCLR n, ad8 | DIR | (ad8).n <- 0 | ------ | 4 | 2 | Bit CLiaR |
COMA | INH | (A) <- $FF-(A) | +--++- | 1 | 1 | COMplementA |
COMX | INH | (X) <- $FF-(X) | +--++- | 1 | 1 | COMplementX |
COM ad8 | DIR | (ad8) <- $FF-(ad8) | +--++- | 4 | 2 | Поразрядное |
COM, X | IX | ((H:X)) <- $FF-((H:X)) | +--++- | 3 | 1 | дополнение |
COM of8,X | IX8 | (of8+(H:X))<-$FF-(of8+(H:X)) | +--++- | 4 | 2 | |
COM of8,SP | SP8 | (of8+(SP)) <- $FF-(of8+(SP)) | +--++- | 5 | 3 | |
ASLA ASLX ASL ad8 ASL, X ASL of8,X ASL of8,SP | IMM IMM DIR IX IX8 SP8 | Сдвиг аккумулятора Сдвиг индексного регистра X и. т.д. Содержание: C<-b7<-b6<-...<-b1<-b0<-0 | +--+++ | 1 1 4 3 4 5 | 1 1 2 1 2 2 | Arithmetic Shift Left. На один разряд. То же, что и LSL |
ASRA ASRX ASR ad8 ASR, X ASR of8,X ASR of8,SP | IMM IMM DIR IX IX8 SP8 | Сдвиг аккумулятора Сдвиг индексного регистра X и. т.д. Содержание: Ú>b7Â>b6->...->b1->b0->C ÀÄÄÄÙ | +--+++ | 1 1 4 3 4 5 | 1 1 2 1 2 2 | Arithmetic Shift Right На один разряд. |
LSLA LSLX LSL ad8 LSL, X LSL of8,X LSL of8,SP | IMM IMM DIR IX IX8 SP8 | Сдвиг аккумулятора Сдвиг индексного регистра X и. т.д. Содержание: C<-b7<-b6<-...<-b1<-b0<-0 | +--+++ | 1 1 4 3 4 5 | 1 1 2 1 2 2 | Logical Shift Left. На один разряд. То же, что и ASL |
LSRA LSRX LSR ad8 LSR, X LSR of8,X LSR of8,SP | IMM IMM DIR IX IX8 SP8 | Сдвиг аккумулятора Сдвиг индексного регистра X и. т.д. Содержание: 0->b7->b6->...->b1->b0->C | +--0++ | 1 1 4 3 4 5 | 1 1 2 1 2 2 | Logical Shift Right На один разряд. |
ROLA ROLX ROL ad8 ROL, X ROL of8,X ROL of8,SP | IMM IMM DIR IX IX8 SP8 | Циклический сдвиг влево аккумулятора, индексного регистра X, и. т.д.. Содержание: ÚC<-b7<-b6<-...<-b1<-b0<¿ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ | +--+++ | 1 1 4 3 4 5 | 1 1 2 1 2 2 | ROtate Left through carry. На один разряд. |
RORA RORX ROR ad8 ROR, X ROR of8,X ROR of8,SP | IMM IMM DIR IX IX8 SP8 | Циклический сдвиг вправо аккумулятора, индексного регистра X, и. т.д. Содержание: Ú>b7->b6->...->b1->b0->C¿ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ | +--0++ | 1 1 4 3 4 5 | 1 1 2 1 2 2 | ROtate Right through carry На один разряд. |
3. Команды арифметической обработки
Мнемоника | Спос адр. | Содержание | Флаги VHINZC | Цк | Бт | Примечание |
ADD aop | * | (A) <- (A)+(aop) | ++-+++ | * | * | ADD |
ADC aop | * | (A) <- (A)+(aop)+(C) | ++-+++ | * | * | ADD, Carry |
AIS #d8 | IMM | (SP) <- (SP)+d8 | ------ | 2 | 2 | Со знаком |
AIX #d8 | IMM | (H:X) <- (H:X)+d8 | ------ | 2 | 2 | Со знаком |
SUB aop | * | (A) <- (A)-(aop) | +--+++ | * | * | SUBtract |
SBC aop | * | (A) <- (A)-(aop)-(C) | +--+++ | * | * | SUBtract |
CMP aop | * | (A)-(aop) | +--+++ | * | * | CoMPare A |
CPX aop | * | (X)-(aop) | +--+++ | * | * | ComPare X |
TSTA | INH | (A)-0 | 0--++- | 1 | 1 | TeST for |
TSTX | INH | (X)-0 | 0--++- | 1 | 1 | negative |
TST ad8 | DIR | (ad8)-0 | 0--++- | 3 | 2 | or zero |
TST, X | IX | ((H:X))-0 | 0--++- | 2 | 1 | |
TST of8,X | IX8 | (of8+(H:X))-0 | 0--++- | 3 | 2 | |
TST of8,SP | SP8 | (of8+(SP))-0 | 0--++- | 4 | 3 | |
CPHX #d16 | IMM | (H:X)-d16 | +--+++ | * | * | CoMPare H:X |
CPHX ad8 | DIR | (H:X)-(ad8) | +--+++ | * | * | CoMPare H:X |
INCA | INH | (A) <- (A)+1 | +--++- | 1 | 1 | INCrement A |
INCX | INH | (X) <- (X)+1 | +--++- | 1 | 1 | INCrement X |
INC ad8 | DIR | (ad8) <- (ad8)+1 | +--++- | 4 | 2 | |
INC, X | IX | ((H:X)) <- ((H:X))+1 | +--++- | 3 | 1 | |
INC of8,X | IX8 | (of8+(H:X)) <- (of8+(H:X))+1 | +--++- | 4 | 2 | |
INC of8,SP | SP8 | (of8+(SP)) <- (of8+(SP))+1 | +--++- | 5 | 3 | |
DECA | INH | (A) <- (A)-1 | +--++- | 1 | 1 | DECrement A |
DECX | INH | (X) <- (X)-1 | +--++- | 1 | 1 | DECrement X |
DEC ad8 | DIR | (ad8) <- (ad8)-1 | +--++- | 4 | 2 | |
DEC, X | IX | ((H:X)) <- ((H:X))-1 | +--++- | 3 | 1 | |
DEC of8,X | IX8 | (of8+(H:X)) <- (of8+(H:X))-1 | +--++- | 4 | 2 | |
DEC of8,SP | SP8 | (of8+(SP)) <- (of8+(SP))-1 | +--++- | 5 | 3 | |
NEGA | INH | (A) <- -(A) | +--++- | 1 | 1 | NEGate A |
NEGX | INH | (X) <- -(X) | +--++- | 1 | 1 | NEGate X |
NEG ad8 | DIR | (ad8) <- -(ad8) | +--++- | 4 | 2 | |
NEG, X | IX | ((H:X)) <- -((H:X)) | +--++- | 3 | 1 | |
NEG of8,X | IX8 | (of8+(H:X)) <- -(of8+(H:X)) | +--++- | 4 | 2 | |
NEG of8,SP | SP8 | (of8+(SP)) <- -(of8+(SP)) | +--++- | 5 | 3 | |
MUL | INH | (X:A) <- (X)*(A) | -0---0 | 5 | 1 | MULtiply Без знака |
DIV | INH | (A) <- (H:A)/(X) (H) <- (H:A)mod(X) | ----++ | 7 | 1 | DIVide Остаток |
DAA | INH | Двоично-десят. коррекция (A) | ?--+++ | 2 | 1 | Decimal Adjust Accum. |
4. Команды перехода
Мнемоника | Спос адр. | Содержание | Флаги VHINZC | Цк | Бт | Примечание |
JMP ad8 | DIR | (PC) <- ad8 | ------ | 2 | 2 | JuMP |
JMP ad16 | EXT | (PC) <- ad16 | ------ | 3 | 3 | |
JMP, X | IX | (PC) <- (H:X) | ------ | 2 | 1 | |
JMP of8,X | IX8 | (PC) <- of8+(H:X) | ------ | 3 | 2 | |
JMP of16,X | IX16 | (PC) <- of16+(H:X) | ------ | 4 | 3 | |
JSR ad8 | DIR | ((SP))<-(PCL);(SP)<-(SP)-1; ((SP))<-(PCH);(SP)<-(SP)-1; (PC) <- ad8 | ------ | 2 | 2 | JuMP To Subroutine |
JSR ad16 | EXT | ((SP))<-(PCL);(SP)<-(SP)-1; ((SP))<-(PCH);(SP)<-(SP)-1; (PC) <- ad16 | ------ | 3 | 3 | |
JSR, X | IX | ((SP))<-(PCL);(SP)<-(SP)-1; ((SP))<-(PCH);(SP)<-(SP)-1; (PC) <- (H:X) | ------ | 2 | 1 | |
JSR of8,X | IX8 | ((SP))<-(PCL);(SP)<-(SP)-1; ((SP))<-(PCH);(SP)<-(SP)-1; (PC) <- of8+(H:X) | ------ | 3 | 2 | |
JSR of16,X | IX16 | ((SP))<-(PCL);(SP)<-(SP)-1; ((SP))<-(PCH);(SP)<-(SP)-1; (PC) <- of16+(H:X) | ------ | 4 | 3 | |
SWI | INH | (PC)<-(PC)+1; ((SP))<-(PCL); (SP)<-(SP)-1; ((SP))<-(PCH); (SP)<-(SP)-1; ((SP))<-(X); (SP)<-(SP)-1; ((SP))<-(A); (SP)<-(SP)-1; ((SP))<-(CCR); (SP)<-(SP)-1; (I)<-1 (PC)<-(ADMAX-3):(ADMAX-2) (вектор программного прерывания SWI) | --1--- | 9 | 1 | SoftWare Interrupt. Регистр H не запоминается для совместимости с HC05 |
RTI | INH | (SP)<-(SP)+1; (CCR)<-((SP)); (SP)<-(SP)+1; (A)<-((SP)); (SP)<-(SP)+1; (X)<-((SP)); (SP)<-(SP)+1; (PCH)<-((SP)); (SP)<-(SP)+1; (PCL)<-((SP)); | ++++++ | 7 | 1 | ReTurn from Interrupt |
RTS | INH | (SP)<-(SP)+1; (PCH)<-((SP)); (SP)<-(SP)+1; (PCL)<-((SP)); | ------ | 4 | 1 | ReTurn from Subroutine |
BRA cad | REL | (PC)<-(PC)+rel | ------ | 3 | 2 | BRanch Always |
BSR cad | REL | ((SP))<-(PCL);(SP)<-(SP)-1; ((SP))<-(PCH);(SP)<-(SP)-1; (PC) <- (PC)+rel | ------ | 4 | 2 | Branch to SubRoutine |
BCC cad | REL | Если (C)=0, (PC)<-(PC)+rel | ------ | 3 | 2 | Branch if Carry Clear |
BCS cad | REL | Если (C)=1, (PC)<-(PC)+rel | ------ | 3 | 2 | Branch if Carry Set |
BEQ cad | REL | Если (Z)=1, (PC)<-(PC)+rel | ------ | 3 | 2 | Branch if Equal |
BNE cad | REL | Если (Z)=0, (PC)<-(PC)+rel | ------ | 3 | 2 | Branch if Not Equal |
BPL cad | REL | Если (Z)=0, (PC)<-(PC)+rel | ------ | 3 | 2 | Branch if Plus |
BMI cad | REL | Если (Z)=1, (PC)<-(PC)+rel | ------ | 3 | 2 | Branch if Minus |
BHCC cad | REL | Если (H)=0, (PC)<-(PC)+rel | ------ | 3 | 2 | Branch Half Carry Clear |
BHCS cad | REL | Если (H)=1, (PC)<-(PC)+rel | ------ | 3 | 2 | Branch Half Carry Set |
BMC cad | REL | Если (I)=0, (PC)<-(PC)+rel | ------ | 3 | 2 | Branch if interrupt Mask Clear |
BMS cad | REL | Если (I)=1, (PC)<-(PC)+rel | ------ | 3 | 2 | Branch if interrupt Mask Set |
BIL cad | REL | Если ( (PC)<-(PC)+rel | ------ | 3 | 2 | Branch if |
BIH cad | REL | Если ( (PC)<-(PC)+rel | ------ | 3 | 2 | Branch if |
BLO cad | REL | Если (C)=1, (PC)<-(PC)+rel | ------ | 3 | 2 | Branch if Lower |
BLS cad | REL | Если (C)|(Z)=1, (PC)<-(PC)+rel | ------ | 3 | 2 | Branch if Lower or Same (BCS) |
BHI cad | REL | Если (C)|(Z)=0, (PC)<-(PC)+rel | ------ | 3 | 2 | Branch if Higher |
BHS cad | REL | Если (C)=0, (PC)<-(PC)+rel | ------ | 3 | 2 | Branch if Higher or Same (BCC) |
BLT cad | REL | Если (N)Å(V)=1, (Операнды со знаком) (PC)<-(PC)+rel | ------ | 3 | 2 | Branch if Less Then |
BLE cad | REL | Если (Z)|(N)Å(V)=1, (Операнды со знаком) (PC)<-(PC)+rel | ------ | 3 | 2 | Branch if Less Then or Equal |
BGT cad | REL | Если (Z)|(N)Å(V)=0, (Операнды со знаком) (PC)<-(PC)+rel | ------ | 3 | 2 | Branch if Greater Then |
BGE cad | REL | Если (N)Å(V)=0, (Операнды со знаком) (PC)<-(PC)+rel | ------ | 3 | 2 | Branch if Greater Then or Equal |
BRCLR n, ad8,cad | DIR REL | Если (ad8).n=0, (PC)<-(PC)+rel | -----+ | 5 | 3 | Branch if bit CLeaR |
BRSET n, ad8,cad | DIR REL | Если (ad8).n=1, (PC)<-(PC)+rel; (C)<-(ad8).n | -----+ | 5 | 3 | Branch if bit Set |
BRN cad | IMM | (PC)<-(PC)+2 | ------ | 3 | 2 | Branch Never |
CBEQA #d8,cad | IMM, REL | Если (A)=d8, (PC)<-(PC)+rel | ------ | 4 | 3 | Compare, Branch if Equal |
CBEQX #d8,cad | IMM, REL | Если (X)=d8, (PC)<-(PC)+rel | ------ | 4 | 3 | |
CBEQ ad8,cad | DIR, REL | Если (A)=(ad8), (PC)<-(PC)+rel | ------ | 5 | 3 | |
CBEQ X+,cad | IX+, REL | Если (A)=((H:X)), (PC)<-(PC)+rel; (H:X)<-(H:X)+1 | ------ | 4 | 2 | |
CBEQ of8,X+,cad | IX8+ REL | Если (A)=(of8+(H:X)), (PC)<-(PC)+rel (H:X)<-(H:X)+1 | ------ | 5 | 3 | |
CBEQ of8,SP, cad | SP8 REL | Если (A)=(of8+(SP)), (PC)<-(PC)+rel | ------ | 6 | 4 | |
DBNZA cad | REL | (A)<-(A)-1; Если (A)¹0, (PC)<-(PC)+rel | ------ | 3 | 2 | Decrement, Branch if Not Zero |
DBNZX cad | REL | (H:X)<-(H:X)-1; Если (H:X)¹0, (PC)<-(PC)+rel | ------ | 3 | 2 | |
DBNZ ad8,cad | DIR, REL | (ad8)<-(ad8)-1; Если (ad8)¹0, (PC)<-(PC)+rel | ------ | 5 | 3 | |
DBNZ X, cad | IX, REL | ((H:X))<-((H:X))-1; Если ((H:X))¹0, (PC)<-(PC)+rel; | ------ | 4 | 2 | |
DBNZ of8,X, cad | IX8 REL | (of8+(H:X))<-(of8+(H:X))-1; Если (of8+(H:X)) ¹ 0, (PC)<-(PC)+rel | ------ | 5 | 3 | |
DBNZ of8,SP, cad | SP8 REL | (of8+(SP))<-(of8+(SP))-1; Если (of8+(SP)) ¹ 0, (PC)<-(PC)+rel | ------ | 6 | 4 | |
NOP | INH | (PC)<-(PC)+1 | ------ | 1 | 1 | No OPeration |
5. Команды управления
Мнемоника | Спос адр. | Содержание | Флаги VHINZC | Цк | Бт | Примечание |
CLC | INH | (C) <- 0 | -----0 | 1 | 1 | CLear C |
SEC | INH | (C) <- 1 | -----1 | 1 | 1 | SEt C |
CLI | INH | (I) <- 0 - разрешение прерываний, один цикл дополнительная задержка в исполнении для выполнения следующей команды (RTI) | --0--- | 1+1 | 1 | CLear I |
SEI | INH | (I) <- 1 - запрет прерываний | --1--- | 1+1 | 1 | SEt I |
WAIT | INH | (I) <- 0; Останов процессора до прерывания. Периферийные блоки тактируются | --0--- | 1 | 1 | Сокращает мощность потребления |
STOP | INH | (I) <- 0; Останов генератора тактов до прихода внешнего сигнала | --0--- | 1 | 1 | Сокращает мощность потребления |
RSP | INH | (SP) <- $FF - сброс указателя стека | ------ | 1 | 1 | Reset Stack Pointer |
n перемещение указателя по таблице
ADD, X; (A)<-(A)+((H:X))
JMP, X; (PC) <- (H:X)
6. Индексная с 8-битным смещением (IX8)
OP of8,X
OP | of8 | Без знака |
n - of8+(H:X) - исполнительный адрес
n выделение к-ого элемента в таблице; к - в (H:X)
ADD of8,X; (A)<-(A)+(of8+(H:X))
JMP of8,X; (PC) <- of8+(H:X)
7. Индексная с 16-битным смещением (IX16) (нет в НС11)
OP of16,X
OP | of16h | of16l | Без знака |
n - of16+(H:X) - исполнительный адрес
n выделение к-ого элемента в таблицеж; к - в (H:X)
n ассемблер сам определяет of8 либо of16
ADD of16,X; (A)<-(A)+(of16+(H:X))
JMP of16,X; (PC) <- of16+(H:X)
8. По указателю стека с 8-битным смещением (SP8) (только в НС08)
OP of8,SP
9E | OP | of8 | Без знака |
n - of8+(SP) - исполнительный адрес
n доступ к данным стека
ADD of8,SP; (A)<-(A)+(of8+(SP))
9. По указателю стека с 16-битным смещением (SP16) (только в НС08)
OP of16,SP
9E | OP | of16h | of16l |
n - of16+(SP) - исполнительный адрес
n доступ к данным стека
n ассемблер сам определяет of8 либо of16
n если прерывания запрещены - SP - еще один индексный регистр
ADD of16,SP; (A)<-(A)+(of16+(SP))
10. Относительная - в командах условного перехода (REL)
OP cad
OP | rel | Со знаком [-128, +127] |
n rel+(PC) - исполнительный адрес
n ассемблер сам вычисляет rel
BCS cad; Если (C)=1, (PC)<-(PC)+rel
11. Непосредственная - прямая (только в НС08)
MOV #d8,Dad8; (Dad8) <- d8
OP | d8 | ad8 |
12. Прямая - прямая (DD) (только в НС08)
MOV Sad8,Dad8; (Dad8) <- (Sad8)
OP | Sad8 | Dad8 |
13. Индексная постинкрементная - прямая (IX+D) (только в НС08)
MOV X+, Dad8; (Dad8)<-((H:X)); (H:X)<-(H:X)+1
OP | Dad8 |
n пересылка таблицы через последовательный канал
14. Прямая - индексная постинкрементная (DIX+) (только в НС08)
MOV Sad8, X+; ((H:X))<-(Sad8); (H:X)<-(H:X)+1
OP | Sad8 |
n прием таблицы через последовательный канал
15. Индексная постинкрементная - относительная (IX+REL) (только в НС08)
CBEQ X+,cad; Если (A)=((H:X)), (PC)<-(PC)+rel; (H:X)<-(H:X)+1
OP | rel |
16. Индексная постинкрементная с 8-битным смещением - относительная (IX8+REL) (только в НС08)
CBEQ of8,X+,cad; Если (A)=(of8+(H:X)), (PC)<-(PC)+rel; (H:X)<-(H:X)+1
OP | of8 | rel |
Система команд
В таблицах описания команд принята групповая форма записи, в которой операнды aop могут иметь все основные (со 2 по 9) типы адресации. Например,
запись команды
ADD aop
должна раскрываться соответственно множеством следующих команд:
Мнемоника | Спос адр. | Содержание | Флаги VHINZC | Цк | Бт | Примечание |
ADD #d8 | IMM | (A)<-(A)+ d8 | ++-+++ | 2 | 2 | ADD |
ADD ad8 | DIR | (A)<-(A)+(ad8) | ++-+++ | 3 | 2 | without |
ADD ad16 | EXT | (A)<-(A)+(ad16) | ++-+++ | 4 | 3 | carry |
ADD, X | IX | ++-+++ | 2 | 3 | ||
ADD of8,X | IX8 | (A)<-(A)+(of8+(H:X)) | ++-+++ | 3 | 2 | |
ADD of16,X | IX16 | (A)<-(A)+(of16+(H:X)) | ++-+++ | 4 | 3 | |
ADD of8,SP | SP8 | (A)<-(A)+(of8+(SP)) | ++-+++ | 4 | 3 | Два байта в |
ADD of16,SP | SP16 | (A)<-(A)+(of16+(SP)) | ++-+++ | 5 | 4 | коде опер. |
Для команд сохранения (STA, STX), естественно отсутствует непосредственная адресация.
Следует отметить, что значение числа циклов цк, за которое команда должна выполняться и числа байт в команде бт, естественно, определяются конкретным способом адресации операндов. При групповой форме записи в таблицах команд в этих столбцах стоит звездочка. В выше приведенной таблице для каждого конкретного способа адресации операндов указано числа циклов цк и числа байт бт, которые должны использоваться во всех групповых командах, а не только в команде ADD.
1. Команды пересылки
Мнемоника | Спос адр. | Содержание | Флаги VHINZC | Цк | Бт | Примечание |
LDA aop | * | (A) <- (aop) | 0--++- | * | * | Load A |
STA aop | * | (aop) <- (A) | 0--++- | * | * | Store A |
LDX aop | * | (X) <-( aop) | 0--++- | * | * | Load X |
STX aop | * | (aop) <- (X) | 0--++- | * | * | Store X |
LDHX #d16 | IMM | (H:X) <- d16 | 0--++- | 3 | 3 | Load HX |
LDHX ad8 | DIR | (H:X) <- (ad8):(ad8+1) | 0--++- | 4 | 2 | Со старшего |
STHX ad8 | DIR | (ad8):(ad8+1) <- (H:X) | 0--++- | 4 | 2 | Со старшего |
TXA | INH | (A) <- (X) | ------ | 1 | 1 | Transfer |
TAX | INH | (X) <- (A) | ------ | 1 | 1 | |
TPA | INH | (A) <- (CCR) | ------ | 1 | 1 | PSW=CCR |
TAP | INH | (CCR) <-( A) | ++++++ | 1 | 1 | |
TXS | INH | (SP) <- (H:X)-1 | ------ | 2 | 1 | Stack |
TSX | INH | (H:X) <- (SP)+1 | ------ | 2 | 1 | На последнее записанное |
MOV Sad8,Dad8 | DD | (Dad8) <- (Sad8) | 0--++- | 5 | 3 | MOVe |
MOV Sad8,X+ | DIX+ | ((H:X))<-(Sad8); (H:X)<-(H:X)+1 | 0--++- | 4 | 2 | Два операнда в команде |
MOV #d8,Dad8 | IMD | (Dad8) <- d8 | 0--++- | 4 | 3 | |
MOV X+,Dad8 | IX+D | (Dad8)<-((H:X)); (H:X)<-(H:X)+1 | 0--++- | 4 | 2 | |
PSHA | INH | ((SP)) <- (A); (SP)<-(SP)-1 | ------ | 2 | 1 | Push A |
PSHH | INH | ((SP)) <- (H); (SP)<-(SP)-1 | ------ | 2 | 1 | Push H |
PSHX | INH | ((SP)) <- (X); (SP)<-(SP)-1 | ------ | 2 | 1 | Push X |
PULA | INH | (SP)<-(SP)+1; (A) <- ((SP)) | ------ | 2 | 1 | Pull A |
PULH | INH | (SP)<-(SP)+1; (H) <- ((SP)) | ------ | 2 | 1 | Pull H |
PULX | INH | (SP)<-(SP)+1; (X) <- ((SP)) | ------ | 2 | 1 | Pull X |
NSA | INH | (A) <- (A).3-0 : (A).7-4 | ------ | 3 | 1 | Nibble Swap Accumulator |
2. Команды логической обработки
Мнемоника | Спос адр. | Содержание | Флаги VHINZC | Цк | Бт | Примечание |
AND aop | * | (A)<-(A)&(aop) | 0--++- | * | * | Поразрядно |
BIT aop | * | (A)&(aop); | 0--++- | * | * | BIT test |
ORA aop | * | (A)<-(A)|(aop) | 0--++- | * | * | |
EOR aop | * | (A)<-(A)Å(aop) | 0--++- | * | * | ExclusiveOR |
CLRA | INH | (A) <- 0 | +--++- | 1 | 1 | CLeaR A |
CLRX | INH | (X) <- 0 | +--++- | 1 | 1 | CLeaR X |
CLRH | INH | (H) <- 0 | +--++- | 1 | 1 | CLeaR H |
CLR ad8 | DIR | (ad8) <- 0 | +--++- | 3 | 2 | |
CLR, X | IX | ((H:X)) <- 0 | +--++- | 2 | 1 | |
CLR of8,X | IX8 | (of8+(H:X)) <- 0 | +--++- | 3 | 2 | |
CLR of8,SP | SP8 | (of8+(SP)) <- 0 | +--++- | 4 | 3 | |
BCLR n, ad8 | DIR | (ad8).n <- 0 | ------ | 4 | 2 | Bit CLiaR |
COMA | INH | (A) <- $FF-(A) | +--++- | 1 | 1 | COMplementA |
COMX | INH | (X) <- $FF-(X) | +--++- | 1 | 1 | COMplementX |
COM ad8 | DIR | (ad8) <- $FF-(ad8) | +--++- | 4 | 2 | Поразрядное |
COM, X | IX | ((H:X)) <- $FF-((H:X)) | +--++- | 3 | 1 | дополнение |
COM of8,X | IX8 | (of8+(H:X))<-$FF-(of8+(H:X)) | +--++- | 4 | 2 | |
COM of8,SP | SP8 | (of8+(SP)) <- $FF-(of8+(SP)) | +--++- | 5 | 3 | |
ASLA ASLX ASL ad8 ASL, X ASL of8,X ASL of8,SP | IMM IMM DIR IX IX8 SP8 | Сдвиг аккумулятора Сдвиг индексного регистра X и. т.д. Содержание: C<-b7<-b6<-...<-b1<-b0<-0 | +--+++ | 1 1 4 3 4 5 | 1 1 2 1 2 2 | Arithmetic Shift Left. На один разряд. То же, что и LSL |
ASRA ASRX ASR ad8 ASR, X ASR of8,X ASR of8,SP | IMM IMM DIR IX IX8 SP8 | Сдвиг аккумулятора Сдвиг индексного регистра X и. т.д. Содержание: Ú>b7Â>b6->...->b1->b0->C ÀÄÄÄÙ | +--+++ | 1 1 4 3 4 5 | 1 1 2 1 2 2 | Arithmetic Shift Right На один разряд. |
LSLA LSLX LSL ad8 LSL, X LSL of8,X LSL of8,SP | IMM IMM DIR IX IX8 SP8 | Сдвиг аккумулятора Сдвиг индексного регистра X и. т.д. Содержание: C<-b7<-b6<-...<-b1<-b0<-0 | +--+++ | 1 1 4 3 4 5 | 1 1 2 1 2 2 | Logical Shift Left. На один разряд. То же, что и ASL |
LSRA LSRX LSR ad8 LSR, X LSR of8,X LSR of8,SP | IMM IMM DIR IX IX8 SP8 | Сдвиг аккумулятора Сдвиг индексного регистра X и. т.д. Содержание: 0->b7->b6->...->b1->b0->C | +--0++ | 1 1 4 3 4 5 | 1 1 2 1 2 2 | Logical Shift Right На один разряд. |
ROLA ROLX ROL ad8 ROL, X ROL of8,X ROL of8,SP | IMM IMM DIR IX IX8 SP8 | Циклический сдвиг влево аккумулятора, индексного регистра X, и. т.д.. Содержание: ÚC<-b7<-b6<-...<-b1<-b0<¿ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ | +--+++ | 1 1 4 3 4 5 | 1 1 2 1 2 2 | ROtate Left through carry. На один разряд. |
RORA RORX ROR ad8 ROR, X ROR of8,X ROR of8,SP | IMM IMM DIR IX IX8 SP8 | Циклический сдвиг вправо аккумулятора, индексного регистра X, и. т.д. Содержание: Ú>b7->b6->...->b1->b0->C¿ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ | +--0++ | 1 1 4 3 4 5 | 1 1 2 1 2 2 | ROtate Right through carry На один разряд. |
3. Команды арифметической обработки
Мнемоника | Спос адр. | Содержание | Флаги VHINZC | Цк | Бт | Примечание |
ADD aop | * | (A) <- (A)+(aop) | ++-+++ | * | * | ADD |
ADC aop | * | (A) <- (A)+(aop)+(C) | ++-+++ | * | * | ADD, Carry |
AIS #d8 | IMM | (SP) <- (SP)+d8 | ------ | 2 | 2 | Со знаком |
AIX #d8 | IMM | (H:X) <- (H:X)+d8 | ------ | 2 | 2 | Со знаком |
SUB aop | * | (A) <- (A)-(aop) | +--+++ | * | * | SUBtract |
SBC aop | * | (A) <- (A)-(aop)-(C) | +--+++ | * | * | SUBtract |
CMP aop | * | (A)-(aop) | +--+++ | * | * | CoMPare A |
CPX aop | * | (X)-(aop) | +--+++ | * | * | ComPare X |
TSTA | INH | (A)-0 | 0--++- | 1 | 1 | TeST for |
TSTX | INH | (X)-0 | 0--++- | 1 | 1 | negative |
TST ad8 | DIR | (ad8)-0 | 0--++- | 3 | 2 | or zero |
TST, X | IX | ((H:X))-0 | 0--++- | 2 | 1 | |
TST of8,X | IX8 | (of8+(H:X))-0 | 0--++- | 3 | 2 | |
TST of8,SP | SP8 | (of8+(SP))-0 | 0--++- | 4 | 3 | |
CPHX #d16 | IMM | (H:X)-d16 | +--+++ | * | * | CoMPare H:X |
CPHX ad8 | DIR | (H:X)-(ad8) | +--+++ | * | * | CoMPare H:X |
INCA | INH | (A) <- (A)+1 | +--++- | 1 | 1 | INCrement A |
INCX | INH | (X) <- (X)+1 | +--++- | 1 | 1 | INCrement X |
INC ad8 | DIR | (ad8) <- (ad8)+1 | +--++- | 4 | 2 | |
INC, X | IX | ((H:X)) <- ((H:X))+1 | +--++- | 3 | 1 | |
INC of8,X | IX8 | (of8+(H:X)) <- (of8+(H:X))+1 | +--++- | 4 | 2 | |
INC of8,SP | SP8 | (of8+(SP)) <- (of8+(SP))+1 | +--++- | 5 | 3 | |
DECA | INH | (A) <- (A)-1 | +--++- | 1 | 1 | DECrement A |
DECX | INH | (X) <- (X)-1 | +--++- | 1 | 1 | DECrement X |
DEC ad8 | DIR | (ad8) <- (ad8)-1 | +--++- | 4 | 2 | |
DEC, X | IX | ((H:X)) <- ((H:X))-1 | +--++- | 3 | 1 | |
DEC of8,X | IX8 | (of8+(H:X)) <- (of8+(H:X))-1 | +--++- | 4 | 2 | |
DEC of8,SP | SP8 | (of8+(SP)) <- (of8+(SP))-1 | +--++- | 5 | 3 | |
NEGA | INH | (A) <- -(A) | +--++- | 1 | 1 | NEGate A |
NEGX | INH | (X) <- -(X) | +--++- | 1 | 1 | NEGate X |
NEG ad8 | DIR | (ad8) <- -(ad8) | +--++- | 4 | 2 | |
NEG, X | IX | ((H:X)) <- -((H:X)) | +--++- | 3 | 1 | |
NEG of8,X | IX8 | (of8+(H:X)) <- -(of8+(H:X)) | +--++- | 4 | 2 | |
NEG of8,SP | SP8 | (of8+(SP)) <- -(of8+(SP)) | +--++- | 5 | 3 | |
MUL | INH | (X:A) <- (X)*(A) | -0---0 | 5 | 1 | MULtiply Без знака |
DIV | INH | (A) <- (H:A)/(X) (H) <- (H:A)mod(X) | ----++ | 7 | 1 | DIVide Остаток |
DAA | INH | Двоично-десят. коррекция (A) | ?--+++ | 2 | 1 | Decimal Adjust Accum. |
4. Команды перехода
Мнемоника | Спос адр. | Содержание | Флаги VHINZC | Цк | Бт | Примечание |
JMP ad8 | DIR | (PC) <- ad8 | ------ | 2 | 2 | JuMP |
JMP ad16 | EXT | (PC) <- ad16 | ------ | 3 | 3 | |
JMP, X | IX | (PC) <- (H:X) | ------ | 2 | 1 | |
JMP of8,X | IX8 | (PC) <- of8+(H:X) | ------ | 3 | 2 | |
JMP of16,X | IX16 | (PC) <- of16+(H:X) | ------ | 4 | 3 | |
JSR ad8 | DIR | ((SP))<-(PCL);(SP)<-(SP)-1; ((SP))<-(PCH);(SP)<-(SP)-1; (PC) <- ad8 | ------ | 2 | 2 | JuMP To Subroutine |
JSR ad16 | EXT | ((SP))<-(PCL);(SP)<-(SP)-1; ((SP))<-(PCH);(SP)<-(SP)-1; (PC) <- ad16 | ------ | 3 | 3 | |
JSR, X | IX | ((SP))<-(PCL);(SP)<-(SP)-1; ((SP))<-(PCH);(SP)<-(SP)-1; (PC) <- (H:X) | ------ | 2 | 1 | |
JSR of8,X | IX8 | ((SP))<-(PCL);(SP)<-(SP)-1; ((SP))<-(PCH);(SP)<-(SP)-1; (PC) <- of8+(H:X) | ------ | 3 | 2 | |
JSR of16,X | IX16 | ((SP))<-(PCL);(SP)<-(SP)-1; ((SP))<-(PCH);(SP)<-(SP)-1; (PC) <- of16+(H:X) | ------ | 4 | 3 | |
SWI | INH | (PC)<-(PC)+1; ((SP))<-(PCL); (SP)<-(SP)-1; ((SP))<-(PCH); (SP)<-(SP)-1; ((SP))<-(X); (SP)<-(SP)-1; ((SP))<-(A); (SP)<-(SP)-1; ((SP))<-(CCR); (SP)<-(SP)-1; (I)<-1 (PC)<-(ADMAX-3):(ADMAX-2) (вектор программного прерывания SWI) | --1--- | 9 | 1 | SoftWare Interrupt. Регистр H не запоминается для совместимости с HC05 |
RTI | INH | (SP)<-(SP)+1; (CCR)<-((SP)); (SP)<-(SP)+1; (A)<-((SP)); (SP)<-(SP)+1; (X)<-((SP)); (SP)<-(SP)+1; (PCH)<-((SP)); (SP)<-(SP)+1; (PCL)<-((SP)); | ++++++ | 7 | 1 | ReTurn from Interrupt |
RTS | INH | (SP)<-(SP)+1; (PCH)<-((SP)); (SP)<-(SP)+1; (PCL)<-((SP)); | ------ | 4 | 1 | ReTurn from Subroutine |
BRA cad | REL | (PC)<-(PC)+rel | ------ | 3 | 2 | BRanch Always |
BSR cad | REL | ((SP))<-(PCL);(SP)<-(SP)-1; ((SP))<-(PCH);(SP)<-(SP)-1; (PC) <- (PC)+rel | ------ | 4 | 2 | Branch to SubRoutine |
BCC cad | REL | Если (C)=0, (PC)<-(PC)+rel | ------ | 3 | 2 | Branch if Carry Clear |
BCS cad | REL | Если (C)=1, (PC)<-(PC)+rel | ------ | 3 | 2 | Branch if Carry Set |
BEQ cad | REL | Если (Z)=1, (PC)<-(PC)+rel | ------ | 3 | 2 | Branch if Equal |
BNE cad | REL | Если (Z)=0, (PC)<-(PC)+rel | ------ | 3 | 2 | Branch if Not Equal |
BPL cad | REL | Если (Z)=0, (PC)<-(PC)+rel | ------ | 3 | 2 | Branch if Plus |
BMI cad | REL | Если (Z)=1, (PC)<-(PC)+rel | ------ | 3 | 2 | Branch if Minus |
BHCC cad | REL | Если (H)=0, (PC)<-(PC)+rel | ------ | 3 | 2 | Branch Half Carry Clear |
BHCS cad | REL | Если (H)=1, (PC)<-(PC)+rel | ------ | 3 | 2 | Branch Half Carry Set |
BMC cad | REL | Если (I)=0, (PC)<-(PC)+rel | ------ | 3 | 2 | Branch if interrupt Mask Clear |
BMS cad | REL | Если (I)=1, (PC)<-(PC)+rel | ------ | 3 | 2 | Branch if interrupt Mask Set |
BIL cad | REL | Если ( (PC)<-(PC)+rel | ------ | 3 | 2 | Branch if |
BIH cad | REL | Если ( (PC)<-(PC)+rel | ------ | 3 | 2 | Branch if |
BLO cad | REL | Если (C)=1, (PC)<-(PC)+rel | ------ | 3 | 2 | Branch if Lower |
BLS cad | REL | Если (C)|(Z)=1, (PC)<-(PC)+rel | ------ | 3 | 2 | Branch if Lower or Same (BCS) |
BHI cad | REL | Если (C)|(Z)=0, (PC)<-(PC)+rel | ------ | 3 | 2 | Branch if Higher |
BHS cad | REL | Если (C)=0, (PC)<-(PC)+rel | ------ | 3 | 2 | Branch if Higher or Same (BCC) |
BLT cad | REL | Если (N)Å(V)=1, (Операнды со знаком) (PC)<-(PC)+rel | ------ | 3 | 2 | Branch if Less Then |
BLE cad | REL | Если (Z)|(N)Å(V)=1, (Операнды со знаком) (PC)<-(PC)+rel | ------ | 3 | 2 | Branch if Less Then or Equal |
BGT cad | REL | Если (Z)|(N)Å(V)=0, (Операнды со знаком) (PC)<-(PC)+rel | ------ | 3 | 2 | Branch if Greater Then |
BGE cad | REL | Если (N)Å(V)=0, (Операнды со знаком) (PC)<-(PC)+rel | ------ | 3 | 2 | Branch if Greater Then or Equal |
BRCLR n, ad8,cad | DIR REL | Если (ad8).n=0, (PC)<-(PC)+rel | -----+ | 5 | 3 | Branch if bit CLeaR |
BRSET n, ad8,cad | DIR REL | Если (ad8).n=1, (PC)<-(PC)+rel; (C)<-(ad8).n | -----+ | 5 | 3 | Branch if bit Set |
BRN cad | IMM | (PC)<-(PC)+2 | ------ | 3 | 2 | Branch Never |
CBEQA #d8,cad | IMM, REL | Если (A)=d8, (PC)<-(PC)+rel | ------ | 4 | 3 | Compare, Branch if Equal |
CBEQX #d8,cad | IMM, REL | Если (X)=d8, (PC)<-(PC)+rel | ------ | 4 | 3 | |
CBEQ ad8,cad | DIR, REL | Если (A)=(ad8), (PC)<-(PC)+rel | ------ | 5 | 3 | |
CBEQ X+,cad | IX+, REL | Если (A)=((H:X)), (PC)<-(PC)+rel; (H:X)<-(H:X)+1 | ------ | 4 | 2 | |
CBEQ of8,X+,cad | IX8+ REL | Если (A)=(of8+(H:X)), (PC)<-(PC)+rel (H:X)<-(H:X)+1 | ------ | 5 | 3 | |
CBEQ of8,SP, cad | SP8 REL | Если (A)=(of8+(SP)), (PC)<-(PC)+rel | ------ | 6 | 4 | |
DBNZA cad | REL | (A)<-(A)-1; Если (A)¹0, (PC)<-(PC)+rel | ------ | 3 | 2 | Decrement, Branch if Not Zero |
DBNZX cad | REL | (H:X)<-(H:X)-1; Если (H:X)¹0, (PC)<-(PC)+rel | ------ | 3 | 2 | |
DBNZ ad8,cad | DIR, REL | (ad8)<-(ad8)-1; Если (ad8)¹0, (PC)<-(PC)+rel | ------ | 5 | 3 | |
DBNZ X, cad | IX, REL | ((H:X))<-((H:X))-1; Если ((H:X))¹0, (PC)<-(PC)+rel; | ------ | 4 | 2 | |
DBNZ of8,X, cad | IX8 REL | (of8+(H:X))<-(of8+(H:X))-1; Если (of8+(H:X)) ¹ 0, (PC)<-(PC)+rel | ------ | 5 | 3 | |
DBNZ of8,SP, cad | SP8 REL | (of8+(SP))<-(of8+(SP))-1; Если (of8+(SP)) ¹ 0, (PC)<-(PC)+rel | ------ | 6 | 4 | |
NOP | INH | (PC)<-(PC)+1 | ------ | 1 | 1 | No OPeration |
5. Команды управления
Мнемоника | Спос адр. | Содержание | Флаги VHINZC | Цк | Бт | Примечание |
CLC | INH | (C) <- 0 | -----0 | 1 | 1 | CLear C |
SEC | INH | (C) <- 1 | -----1 | 1 | 1 | SEt C |
CLI | INH | (I) <- 0 - разрешение прерываний, один цикл дополнительная задержка в исполнении для выполнения следующей команды (RTI) | --0--- | 1+1 | 1 | CLear I |
SEI | INH | (I) <- 1 - запрет прерываний | --1--- | 1+1 | 1 | SEt I |
WAIT | INH | (I) <- 0; Останов процессора до прерывания. Периферийные блоки тактируются | --0--- | 1 | 1 | Сокращает мощность потребления |
STOP | INH | (I) <- 0; Останов генератора тактов до прихода внешнего сигнала | --0--- | 1 | 1 | Сокращает мощность потребления |
RSP | INH | (SP) <- $FF - сброс указателя стека | ------ | 1 | 1 | Reset Stack Pointer |


