зряді Rd.b;
в– $ - покажчик шестнадцатернчного коду;
в– ^, v, + - знаки логічних операції І, АБО, виключає АБО відповідно;
в– (~)/(), () - знаки операції НЕ, зсув коду вправо, зсув коду вліво відповідно.
Арифметичні операції - додавання і віднімання - можуть виконуватися з числами без знаку в двійковому коді і з числами із знаком в додатковому двійковому коді. На відміну від мікроконтролерів багатьох інших сімейств, у яких віднімання зводиться до додавання з числом із зміненим знаком (XY = X + (-Y)), в мікроконтролерах сімейства AVR віднімання виконується з допомогою апаратного двійкового вичітателя. Робота двійкового вичітателя розглянута в додатку П7.
При виконанні арифметичних і логічних операцій крім коду результату формуються значення ознак результату. При виконанні операцій порівняння (команди М В»№ 18, 19 і 27) формуються лише значення ознак результату.
Значення ознак результату представлені станом розрядів регістра стану SREG (№ S3F). Використовуються тесть ознак результату, яким присвоєні імена С (SREG.O), Z (SREG.1) N (SREG.2), V (SREG.3), S (SREG.4) та Н (SREG.5). У табл. 1-3 ознаки, значення яких формуються при виконанні команд, відмічені знаком "+" плі вказано їх значення.
При виконанні різних операцій значення ознак формуються за різними правилами.
Ознака С бере одиничне значення:
в– при появі одиниці переносу зі старшого розряду при виконанні операції додавання (команди № № 14, 15 і 32);
в– при появі одиниці позики в старший розряд при виконанні операції віднімання (команди №> № 4, 16, 17, 18, 19, 25, 26, 27 і 33);
в– при виході одиниці за межі розрядної сітки при виконанні операції зсуву (команди № № 7, 8, 9, 10 і 11).
Одиничне значення ознаки С при виконанні операцій додавання і віднімання з числами без знаку свідчить про одержання неправильного результату операції внаслідок переповнення розрядної сітки.
Ознака Z приймає одиничне значення при отриманні нульового результату операції. При виконанні операції віднімання з урахуванням позики (Команди № № 17, 19 і 26) Z = 1, якщо нульовий результат отримано при виконанні даної і попередньої операцій.
Ознака N має значення, рівне значенню старшого розряди коду результату. При виконанні арифметичних операції з числами зі знаком і відсутності переповнення розрядної сітки він представляє знак результату.
Ознака V приймає одиничне значення, якщо при виконанні арифметичної операції з числами зі знаком виникло переповнення розрядної сітки.
Ознака S = N + V являє знак результату при виконанні арифметичних операцій з числами зі знаком незалежно від переповнення розрядної сітки. При переповненні розрядної сітки (V = l) знак результату протилежний значенням в старшому розряді коду результату.
Ознака Н приймає одиничне значення при наявності одиниці переносу з розряду D3 в розряд D4 при виконанні операції додавання, за наявності одиниці позики в розряд D3 з розряду D4 при виконанні операції віднімання і при передачі одиниці з розряду D3 в розряд D4 при виконанні операції зсуву коду вліво.
Команди із зверненням за адресою SRAM
По командах із зверненням за адресою в адресному просторі SRAM виконуються операції пересилки (копіювання) байта між регістром загального призначення і елементом, якому відповідає адреса в адресному просторі SRAM. Таким елементом може бути регістр загального призначення (адреси від $ 00 до $ 1F), реєстр вводу-виводу (адреси від $ 20 до $ 5F), комірка пам'яті в SRAM (адреси від $ 60 до максимального адреси в SRAM), осередок пам'яті в ERAM (адреси від максимального адреси в SRAM +1 до максимального адреси в ERAM) (див. п. 1.5).
Команди із зверненням за адресою в адресному просторі SRAM описані в табл. 4 і 5. p> Машинні коди команд № № 34 і 35 мають формат "2 слова ", машинні коди решти команд - формат" слово ". Команди виконуються за 2 такту, а при зверненні до осередків в ERAM - за 3 такту. У разі необхідності в цикл виконання команди при зверненні до ERAM може бути введений додатковий такт очікування.
У табл. 4 і 5 використовуються наступні нові позначення:
в– яча - регістр загального призначення, регістр введення-виведення, комірка пам'яті в SRAM, комірка пам'яті в ERAM, до яких проводиться звернення з використанням адреси А з адресного простору SRAM;
в– (яча) - байт в яча;
в– X, Y, Z - пара регістрів загального призначення X (R26, R27), Y (R28, R29), Z (R30, R31) відповідно;
в– (X), (Y), (Z) - слово в парі регістрів X, Y, Z відповідно;
в– СТЕК - яча, до якої проводиться звернення з використанням адреси, що зберігається в регістрі-покажчику стека SP;
в– (СТЕК) - байт в СТЕК, е;
в– (SP) - код числа у регістрі SP.
У командах № № 34 і 35 реалізується пряма адресація. Адреса байта (А = к) указивет в коді команди.
У командах № № 36-...