Главное меню

Команды регистровых операций

В группу регистровых операций входят пересылочные, арифметические и логические операции. Команды регистровых операций описаны в табл. 2, 3 и 4 Машинные коды всех команд регистровых операций имеют формат «слово», команды №№ 1 – 31 выполняются за один такт, а команды №№ 32 и 33 – за два такта.

При описании операций в табл. 2 – 4 используются следующие обозначения:

▪ Rd, Rr – регистры общего назначения с номерами d и r соответственно;

▪ (Rd), (Rr) – байты в регистрах Rd и Rr соответственно;

▪ Rd.b – разряд b (b = 0 – 7) регистра Rd, бит в разряде Rd.b;

▪ $ - указатель шестнадцатеричного кода;

▪ ^, ˅, - знаки логических операций И, ИЛИ, исключающее ИЛИ соответственно;

▪ ( ), ( ), ( ) – знаки операций НЕ, сдвиг кода вправо, сдвиг кода влево соответственно.

Арифметические операции – сложение и вычитание – могут выполняться с числами без знака в двоичном коде и с числами со знаком в дополнительном двоичном коде. В отличие от микроконтроллеров многих других семейств, в которых вычитание сводится к сложению с числом с изменённым знаком (X–Y = X + (-Y)), в микроконтроллерах семейства AVR вычитание выполняется с помощью аппаратного двоичного вычитателя.

При выполнении арифметических и логических операций кроме кода результата формируются значения признаков результата. При выполнении операций сравнения (команды №№ 18, 19 и 27) формируются только значения признаков результата.

Значения признаков результата представлены состоянием разрядов регистра состояния SREG (№$33F). Используются шесть признаков результата, которым присвоены имена C (SREG.0), Z(SREG.1) N (SREG.2), V (SREG.3, S (SREG.4) и H (SREG.5). В табл. 2.1 – 2.3 признаки, значения которых формируются при выполнении команд, отмечены знаком «+» или указано их название.

При выполнении разных операций значение признаков формируется по разным правилам.

Признак C принимает единичное значение:

▪ при появлении единицы переноса из старшего разряда при выполнении операции сложения (команды №№ 14, 15 и 32);

▪ при появлении единицы займа в старший разряд при выполнении операции сложения (команды №№ 4, 16, 17, 18, 19, 25, 26, 27 и 33);

▪ при выходе единицы за пределы разрядной сетки при выполнении операции сдвига (команды №№ 7, 8, 9, 10 и 11).

Единичное значение признака C при выполнении операций сложения и вычитания с числами без знака свидетельствует о получении неправильного результата операции вследствие переполнения разрядной сетки.

Признак Z принимает единичное значение при получении нулевого результата операции. При выполнении операции вычитания с учётом займа (команды №№ 17, 19 и 26) Z = 1, если нулевой результат получен при выполнении данной и предшествующей операций.

Признак N имеет значение, равное значению старшего разряда кода результата. При выполнении арифметических операций с числами со знаком и отсутствии переполнения разрядной сетки он представляет знак результата.

Признак V принимает единичное значение, если при выполнении арифметической операции с числами со знаком возникло переполнение разрядной сетки.

Признак S = NV представляет знак результата при выполнении арифметических операций с числами со знаком вне зависимости от переполнения разрядной сетки. При переполнении разрядной сетки (V = 1) знак результата противоположен значению в старшем разряде кода результата.

Признак H принимает единичное значение при наличии единицы переноса из разряда D3 в разряд D4 при выполнении операции вычитания и при передаче единицы из разряда D3 в разряд D4 при выполнении операции кода влево.

Другое по теме:

Разработка конструкции цифрового синтезатора частотно–модулированных сигналов
Характерной чертой современной радиотехники является использование сложных сигналов, то есть сигналов, у которых произведение длительности на ширину спектра значительно превышает единицу. Например, в радиолокации применение зо ...

Copyright © www.techproof.ru