|
В этой команде операнд_2, выполняющий роль маски, должен содержать нулевые биты на месте тех разрядов, которые должны быть установлены в 0 в операнд_1;
3) команда хог операнд_1, операнд_2 применяется:
а) для выяснения того, какие биты в операнд_1 и операнде различаются;
б) для инвертирования состояния заданных бит в операнд_1.
Интересующие нас биты маски (операнд_2) при выполнении команды хог должны быть единичными, остальные – нулевыми;
Для проверки состояния заданных бит применяется команда test операнд_1, операнд_2 (проверить операнд_1).
Проверяемые биты операнд_1 в маске (операнд_2) должны иметь единичное значение. Алгоритм работы команды test подобен алгоритму команды and, но он не меняет значения операнд_1. Результатом команды является установка значения флага нуля zf:
1) если zf = 0, то в результате логического умножения получился нулевой результат, т. е. один единичный бит маски, который не совпал с соответствующим единичным битом операнде;
2) если zf = 1, то в результате логического умножения получился ненулевой результат, т. е. хотя бы один единичный бит маски совпал с соответствующим единичным битом операнд_1.
|