Ревич, Ю.В. Программирование микроконтроллеров AVR: от Arduino к ассемблеру
434 Приложение 1 Эти значения в применениях цифровых электронных схем встречаются буквально на каждом шагу, потому их очень невредно выучить наизусть. Булевы операции Оперировать с логическими функциями приходится все время даже в Arduino. Но там на поверхностном уровне можно обойтись без особого вникания в сущность производимых действий, понятных на интуитивном уровне: «если нечто больше того, то сделать то-то, иначе другое» . Единственное, что знают обыкновенные пользователи Arduino непосредственно о логических операЦиях, - есть такая переменная типа boolean, которая может принимать значение «правда» (true, или значение, отличное от нуля) или «ложь» (jalse, значение, равное нулю). Переменная типа boolean предназначена для удобного вычисления логических выражений, и в этом качестве весьма полезная вещь. В ассемблере же (как и в электронике вообще) больших логических выражений обычно вычислять не приходится, зато сплошь да рядом приходится иметь дело с манипулированием битами, а для этого абсолютно необходимо четкое понимание элементарных логических операций, для выполнения которых есть специальные команды. Базовые операции математической логики (называемой еще булевой алгеброй), с которыми нам придется имеет дело, следующие: LJ операция логического сложения - операция объединения (дизъюнкция), опера ция «ИЛИ» («OR») - в языках программирования, основанных на С, обознача ется знаком вертикальной черты 1 ; LJ операция логического умножения (конъюнкция) - операция пересечения, опе рация «И» («AND») - в языках программирования, основанных на С, обознача ется знаком &; LJ операция отрицания (инверсия) - операция «НЕ» («NOT») - в языках про граммирования, основанных на С, обозначается восклицанием ! или знаком �. Инверсию также часто обозначают чертой над символом операнда (надстроч ной чертой); LJ операция «исключающее ИЛИ» - операция несовпадения («XOR») - вообще говоря, операция, производная от предыдущих трех основных, но в электронике встречается очень часто. В языках программирования, основанных на С, обозна чается знаком л. ЗАМЕТКИ НА ПОЛЯХ Заметим, что в языке С есть две разновидности логических операций : обычные («ло гическое И» &&, «логическое ИЛИ» 1 1 ) и поразрядные («поразрядное И» &, «поразряд ное ИЛИ» \ } , а также, соответственно, «логическое НЕ» ( ! ) и «поразрядное НЕ» (-) . Термин «поразрядные» означает, что они применяются к каждому двоичному разряду в отдельности . Все операции в электронике , как вы увидите дальше, соответствуют поразрядным операциям , и потому вдаваться в тонкости различий мы не будем .
Made with FlippingBook
RkJQdWJsaXNoZXIy MTExODQxMg==