POPCNT(Population count) — подсчет количества бит со значением 1 — процессорная команда, которая используется для эффективного поиска в большом объёме данных. Команда подсчитывает количество бит множества в объекте данныхLZCNTLZCNT — команда микропроцессора, которая подсчитывает количество ведущих нулевых битов в исходном операнде (втором операнде) и возвращает результат в место назначения (первый операнд). Варианты команды LZCNT: LZCNT r16, r/m16 — подсчитывает количество нулевых битов в r/m16 и возвращает результат в r16. LZCNT r32, r/m32 — подсчитывает количество нулевых битов в r/m32 и возвращает результат в r32. LZCNT r64, r/m64 — подсчитывает количество нулевых битов в r/m64 и возвращает результат в r64. TZCNTTZCNT — команда микропроцессора, которая подсчитывает количество начальных нулей до наименьшего установленного бита. Инструкция входит в набор команд для работы с битами (Bit manipulation instructions).BLSMSKBLSMSK (Get Mask Up to Lowest Set Bit) — инструкция ассемблера создаёт битовую маску, которая состоит из всех битов 1 до самого младшего установленного бита включительно, остальные биты устанавливает в 0. Особенности: Если исходное значение равно 0, BLSMSK устанавливает все биты в регистре назначения в 1 и устанавливает флаг переноса. Размер операнда всегда 32 бита, если не в 64-битном режиме. Пример использования: если в регистр rdx поместить число 280 (100011000b), то с помощью BLSMSK в регистр rax будет записано значение 1111 (15). Синтаксис: blsmsk regdest, regsrc или blsmsk regdest, varsrcBLSI BLSI означает «Извлечь изолированный бит с наименьшим набором значений». Находит младший установленный бит во втором операнде (регистре или переменной) и копирует его в той же позиции в первый операнд (целевой регистр). При этом все остальные биты в целевом регистре обнуляются. Формат инструкции: BLSI regdest, regsrc или BLSI regdest, varsrc Операнды должны быть одинакового размера и могут быть 32- или 64-битными.BLSR «Сбросить наименьший установленный бит». Инструкция получает данные из второго операнда, устанавливает наименьший бит в 0 и копирует результат в первый операнд. Если исходный операнд содержит 0, то инструкция копирует 0 в первый операнд и устанавливает флаг переноса. Формат инструкции: BLSR regdest, regsrc или BLSR regdest, varsrc. Оба операнда должны быть одинакового размера — 32 или 64BZHI (Bit Field Extract) — инструкция микропроцессора, которая позволяет извлечь биты из 32- или 64-битного регистра общего назначения. Синтаксис: bextr regdest, regsrc, regctrl или bextr regdest, varsrc, regctrl Описание операндов: Первый операнд регистр, в который помещаются извлечённые биты. Второй операнд — источник для извлечения бит, регистр или ячейка в памяти. Третий операнд (regctrl) должен быть регистром и определяет параметры извлечения битов. Особенности инструкции: Биты с 0 по 7 в regctrl определяют начальную позицию извлекаемого бита во втором операнде (это должно быть значение в диапазоне от 0 до 31 для 32-битных операндов и от 0 до 63 для 64-битных операндов). Извлечённые биты записываются в регистр назначения, начиная с самого младшего бита. Все более высокие биты в операнде назначения (начиная с позиции LENGTH) устанавливаются в 0. Если биты не извлекаются, регистр назначения очищается. BEXTR (Bit Field Extract) — инструкция микропроцессора, которая позволяет извлечь биты из 32- или 64-битного регистра общего назначения. Синтаксис: bextr regdest, regsrc, regctrl или bextr regdest, varsrc, regctrl. Описание операндов: Первый операнд представляет регистр, в который помещаются извлечённые биты. Второй операнд — источник для извлечения бит, может представлять регистр или переменную. Третий операнд (regctrl) должен быть регистром и определяет параметры извлечения битов. Особенности инструкции: Биты с 0 по 7 в regctrl определяют начальную позицию извлекаемого бита во втором операнде (это должно быть значение в диапазоне от 0 до 31 для 32-битных операндов и от 0 до 63 для 64-битных операндов). Извлечённые биты записываются в регистр назначения, начиная с самого младшего бита. Все более высокие биты в операнде назначения (начиная с позиции LENGTH) устанавливаются в 0. Если биты не извлекаются, регистр назначения очищается. PDEP(Parallel Bits Deposit) — команда микропроцессора, которая означает «Внесение параллельных битов». Смежные биты младшего порядка копируются в выбранные биты назначения, а другие биты назначения очищаются. Команда принимает два входных сигнала, один из которых является источником, а другой — селектором. Селектор представляет собой растровое изображение, которое выбирает биты, которые нужно упаковать или распаковать. Инструкция может использоваться для извлечения любого битового поля входных данных и для выполнения большого количества операций перетасовки на битовом уровне. Доступны 32-разрядная и 64-разрядная версии.PEXT(Parallel Bits Extract)— команда микропроцессора. PEXT использует маску во втором исходном операнде (третьем операнде) для переноса смежных или не смежных битов из первого исходного операнда (второго операнда) в смежные нижние битовые позиции в целевом операнде (первом операнде). Для каждого установленного бита в маске PEXT извлекает соответствующие биты из первого исходного операнда и записывает их в смежные нижние биты целевого операнда. Остальные верхние биты целевого операнда обнуляются.