Система команд CPU12 є розширеним набором команд сімейства 68HC11 і включає в себе команди пересилання даних, команди арифметичних і логічних операцій, порівняння та зрушень, бітові команди, команди управління програмою та управління процесором, а також групу додаткових команд для обробки табличних даних і реалізації нечіткої логіки raquo ;. Група команд пересилки включає в себе команди завантаження регістрів процесора (LDAA, LDAB, LDD, LDS, LDX, LDY), збереження їх вмісту в пам'яті (STAA, STAB, STD, STS, STX, STY) і команди пересилання та обміну даними між різними регістрами (TAB, TAP, TBA, TFR, TPA, TSX, TSY, TXS, TYS, EXG, XGDX, XGDY). До цієї групи відносяться також команди, що виконують запис вмісту регістрів A, B, C, D в стек (PSHA, PSHB, PSHX, PSHY) і завантаження цих регістрів з стека (PULA, PULB, PULX, PULY). Команди очищення встановлюють у 0 вміст регістрів-акумуляторів і елементів пам'яті (CLRA, CLRB, CLR). Додатково введені команди MOVB і MOVW, що дозволяють здійснювати пересилання 8- і 16-розрядних даних з пам'яті в пам'ять, команди LEAS, LEAX, LEAY, що виконують обчислення ефективної адреси і його завантаження в регістри SP, X або Y, а також команди для запису вмісту регістрів D, CCR в стек (PSHD, PSHC) та їх завантаження з стека (PULD, PULC). Група команд арифметичних операцій дозволяє виконувати додавання і віднімання вмісту двох регістрів або регістра і комірки пам'яті з урахуванням або без врахування ознаки переносу (ABA, ABX, ABY, ADCA, ADCB, ADDA, ADDB, ADDD, SBA, SBCA, SBCB, SUBA, SUBB , SUBD), проводити корекцію результату складання двійково-десяткових чисел (DAA), виконувати інкремент і декремент вмісту комірки пам'яті або регістра (DEC, DECA, DECB, DES, DEX, DEY, INC, INCA, INCB, INS, INX, INY) , змінювати його знак (NEG, NEGA, NEGB). До команд множення 8х8 (MUL) і ділення 16/8 (FDIV, IDIV, IDIVS), наявними в мікроконтролерах сімейства 68HC11, додані команди 16-розрядного множення 16x16 (EMUL, EMULS), множення 16x16 з накопиченням (EMACS), ділення 32/ 16 (EDIV, EDIVS) і знакового розширення (SEX). Команди порівняння виконують установку ознак N, Z, V, C в регістрі CCR відповідно до результату віднімання вмісту двох операндів, що зберігаються в регістрах-акумуляторах або регістрі і комірці пам'яті (CBA, CMPA, CMPB, CPD, CPS, CPX, CPY). Команди тестування встановлюють значення ознак N, Z відповідно до вмістом комірки пам'яті або регістра-акумулятора (TST, TSTA, TSTB). Команди побітового тестування встановлюють ознаки N, Z відповідно до результату логічної операції І над вмістом регістра-акумулятора і осередки пам'яті (BITA, BITB). Команди логічних операцій реалізують побітового операції І, АБО, що виключає АБО над вмістом регістра і осередки пам'яті (ANDA, ANDB, ANDCC, EORA, EORB, ORAA, ORAB, ORCC) і інвертування вмісту регістра або комірки пам'яті (COM, COMA, COMB). Група команд зсуву включає команди однорозрядних арифметичних, логічних і циклічних зрушень, виконуваних над вмістом регістрів-акумуляторів і комірки пам'яті (ASLA, ASLB, ASLD, ASRA, ASRB, LSRA, LSRB, LSRD, ROLA, ROLB, RORA, RORB, ASL, ASR , LSR, ROL, ROR). Команди бітових операцій забезпечують установку в 0 або 1 заданого біта в комірці пам'яті (BCLR, BSET) і установку необхідного значення ознак C, I, V в регістрі CCR (CLC, CLI, CLV, SEC, SEI, SEV). Команди управління програмою реалізують умовні і безумовні розгалуження (JMP, Bcc, LBcc, BRA, LBRA, BRCLR, BRSET), організацію циклів (DBNE, DBNQ, IBNE, IBNQ), виклик підпрограм (JSR) і вихід з підпрограми (RTS) або процедури обробки переривання (RTI). Умовами розгалуження можуть бути значення ознак Z (нульовий або ненульовий результат), N (позитивний або негативний результат), результати виконання команд порівняння операндів зі знаком або без знаку ( gt ;, gt; =, lt ;, lt; =). У цю групу входить також команда програмного переривання (SWI). Для керування процесором служать команди, що переводять його в режим очікування і зупинки (WAIT, STOP), в режим налагодження (BGND), а також команда відсутності операцій (NOP). У додаткову групу команд, реалізованих процесором CPU12, входять команди інтерполяції табличних даних (ETBL, TBL), які дозволяють обчислити значення лінійної функції в заданій проміжної точки. При обробці табличних даних зазвичай використовуються також команди, що дозволяють вибрати мінімальне або максимальне з двох чисел, розташованих в регістрі-акумуляторі і комірці пам'яті (EMIND, EMINM, MINA, MINM, EMAXD, EMAXM, MAXA, MAXM). Процесор CPU12 апаратно підтримує операції нечіткої логіки raquo ;, що дозволяє ефективно реалізовувати на базі мікроконтролерів сімейства HC12 відповідні системи контролю. Група команд нечіткої логіки включає чотири команди. Команда MEM виробляє фазіфік?? цію, виконуючи перетворення точних значень вхідних змінних в значення лінгвістичних змінних відповідно до функціями належності з бази знань. Далі за допомогою команд REVW і REV проводиться безпосередньо обробка отриманих значень за заданим алгоритмом з...