МИКРОКОНТРОЛЛЕР AVR - МИКРОКОНТРОЛЛЕР AVR

Приятной особенностью набора команд AVR является возможность сравнения содержимого двух регистров или регистра и константы без сохранения результата в каком-либо РОН (команды 36.30, 36.31 и 36.32). Команды сравнения, в сущности, производят вычитание без записи результата на место первого операнда. Команда «ср» сравнивает содержимое двух регистров, «срс» — содержимое двух регистров с учетом переноса, a «cpi» — содержимое регистра и константу.

Команда «tst»(команда 36.33) выполняет логическую операцию ИЛИ с содержимым указанного регистра и нулем, по результатам которой устанавливаются флаги нуля и отрицательного результата в регистре SREG. При рассмотрении команды «tst» вы будете удивлены, обнаружив, что флаг переполнения V сбрасывается в 0. Это сделано для того, чтобы быть уверенным, что флаг S будет установлен правильно. Так как S = N ^ V, то при V=0 флаг знака будет иметь правильное значение S = N.

Последняя арифметическая команда «mul» выполняет операцию умножения (команда 36.34). Она перемножает два 8-разрядных числа, обеспечивая получение 16-разрядного результата. Команда умножения работает только с числами без знака.

Команды логических операций я называю «побитовыми» («bitwise»), так как они изменяют значения отдельных битов. Чтобы было меньше путаницы, я сгруппировал их таким же образом, как это сделана фирма Atmel, но буду рассматривать их не как логические, а как «побитовые» команды.

Go to Top