Команды неявной адресации, такие как: десятичной коррекции аккумулятора (DAA), очистки старшего байта индексного регистра (CLRH) и деления (DIV), не выбирают операндов. Ряд команд неявной адресации работают с данными, находящимися в регистрах CPU, такие как: команда очистки аккумулятора (CLRA) и команда пересылки в аккумулятор содержимого регистра кодов признаков (TPA). Команды неявной адресации не обращаются к памяти и в большинстве случаев длина их равна одному байту. В таблице 3 приведен перечень команд, использующих неявную адресацию.
Написанный на языке ассемблера пример иллюстрирует использование режима неявной адресации. В примерах кодов, приведенных ниже и далее, по всему разделу, команды, напечатанные полужирным шрифтом, представляют примеры рассматриваемого режима адресации; значок (#) перед числом указывает на непосредственный операнд. По умолчанию база исчисления десятичная. Шестнадцатиричным числам предшествует значок ($). В ряде ассемблеров по умолчанию используется шестнадцатиричная система счисления - для правильного использования синтаксиса Вам необходимо внимательно прочитать документацию по используемому ассемблеру.
Таблица 3. Команды неявной адресации
| Мнемоника |
Команда |
| ASLA, ASLX |
Арифметически сдвинуть влево (Arithmetic Shift Left) |
| ASRA, ASRX |
Арифметически сдвинуть вправо (Arithmetic Shift Right) |
| CLC |
Очистить бит переноса (Clear Carry Bit) |
| CLI |
Очистить маску прерывания (Clear Interrupt Mask) |
| CLRA, CLRX |
Очистить (Clear) |
| CLRH |
Очистить старший байт индексного регистра (Clear H (Index Register High)) |
| COMA, COMX |
Выполнить дополнение до двух (Complement) |
| DAA |
Выполнить десятичную коррекцию аккумулятора (Decimal Adjust Accumulator) |
| DBNZA |
Декрементировать аккумулятор, перейти если не равно ($00) (Decrement Accumulator, Branch if Not Equal ($00)) |
| DBNZX |
Декрементировать младший байт индексного регистра, перейти если не равно ($00) (Decrement X (Index Register Low), Branch if Not Equal ($00)) |
| DECA, DECX |
Декрементировать (Decrement) |
| DIV |
Разделить (целочисленное деление 16-разрядного числа на 8-разрядное число) (Divide (Integer 16-Bit by 8-Bit Divide)) |
| INCA, INCX |
Инкрементировать (Increment) |
| LSLA, LSLX |
Логически сдвинуть влево (Logical Shift Left) |
| LSRA, LSRX |
Логически сдвинуть вправо (Logical Shift Right) |
| MUL |
Перемножить (Multiply) |
| NSA |
Поменять местами нибблы аккумулятора (Nibble Swap Accumulator) |
| NOP |
Пустая операция (No Operation) |
| PSHA |
Занести аккумулятор в стек (Push Accumulator onto Stack) |
| PSHH |
Занести в стек старший байт индексного регистра (Push H (Index Register High) onto Stack) |
| PSHX |
Занести в стек младший байт индексного регистра (Push X (Index Register Low) onto Stack) |
| PULA |
Извлечь аккумулятор из стека (Pull Accumulator from Stack) |
| PULH |
Извлечь из стека старший байт индексного регистра (Pull H (Index Register High) from Stack) |
| PULX |
Извлечь из стека младший байт индексного регистра (Pull X (Index Register Low) from Stack) |
| ROLA, ROLX |
Вращать влево через перенос (Rotate Left through Carry) |
| RORA, RORX |
Вращать вправо через перенос (Rotate Right through Carry) |
| RSP |
Сбросить указатель стека в состояние $00FF (Reset Stack Pointer to $00FF) |
| RTI |
Вернуться из прерывания (Return from Interrupt) |
| RTS |
Вернуться из подпрограммы (Return from Subroutine) |
| SEC |
Установить бит переноса (Set Carry Bit) |
| SEI |
Установить маску прерывания (Set Interrupt Mask) |
| STOP |
Разрешить IRQ# и остановить генератор (Enable IRQ# and Stop Oscillator) |
| SWI |
Выполнить программное прерывание (Software Interrupt) |
| TAP |
Переслать аккумулятор в регистр кодов признаков (Transfer Accumulator to Condition Code Register) |
| TAX |
Переслать аккумулятор в младший байт индексного регистра (Transfer Accumulator to X (Index Register Low)) |
| TPA |
Переслать содержимое регистра кодов признаков в аккумулятор (Transfer Condition Code Register to Accumulator) |
| TSTA, TSTX |
Проверить на отрицательное значение или ноль (Test for Negative or Zero) |
| TSX |
Переслать указатель стека в индексный регистр (Transfer Stack Pointer to Index Register (H:X)) |
| TXA |
Переслать младший байт индексного регистра в аккумулятор (Transfer X (Index Register Low) to Accumulator) |
| TXS |
Переслать содержимое индексного регистра в указатель стека (Transfer Index Register (H:X) to Stack Pointer) |
| WAIT |
Разрешить прерывания и остановить CPU (Enable Interrupts and Halt CPU) |