МИКРОКОНТРОЛЛЕР AVR - Страница 81

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

Выполнение логической операции И с содержимым регистра (команды 36.35 и 36.36) не содержит чего-либо необычного и реализуется точно так, как вы ожидаете. Следует только обратить внимание на команду «cbr». Она выполняется как команда «andi» с инвертированием значения битов заданной константы перед логической операцией И с содержимым РОН, которое является первым операндом. Инвертирование значения константы производится при помощи операции Исключающее ИЛИ с числом $FF. Назначение команды «cbr» — сбросить в нуль значения указанных битов вместо того, чтобы сохранить их неизменными, как это делает обычная команда AND.

Команды логического ИЛИ (комэндб 36.37 и 36.38) в AVR имеют такой же формат записи, что и команды логического И. Это справедливо и для команды «sbr», которая аналогична команде «ori» так же, как «cbr» аналогична «andi». Однако при этом значение константы не инвертируется, как в команде «cbr», так как «sbr» предназначена для установки в 1 определенных битов, а не для сброса их в 0, как команда «cbr».

Команда «еоri» (команда 36.39) выполняет операцию Исключающее ИЛИ над битами содержимого двух регистров. К сожалению, нет команды «eori», которая позволила бы инвертировать значения определенных битов в регистре с помощью одной команды. Команда «еоri» может быть использована для обмена содержимым между двумя регистрами без использования третьего регистра для временного хранения:

Go to Top