Понимание bset и bclr
Я наткнулся на пример моего профессора, который заставил меня усомниться в моем понимании bset
а также bclr
сборочные команды.
Если я сделаю это:
bset BITS,80
я выполняю операции И или ИЛИ между ними? Мой справочник говорит, что bset
Является ли это:
M <= M + mask
Является +
ИЛИ или оператор И? bclr
та же команда, но выполняет операцию с дополнением маски.
1 ответ
Решение
Установка и очистка битов подразумевают ORing и ANDing, соответственно, по битам. BSET должен делать OR, а BCLR должен делать эффективно AND.
Может случиться так, что BCLR просто делает AND с битовым вектором, который вы ему даете, или BCLR делает AND с дополнением битового вектора (я полагаю), в зависимости от того, насколько хороши разработчики набора команд.