Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Копирование битов

499
12 июня 2006 года
madjahed
149 / / 14.01.2004
Как можно на асме скопировать несколько битов(они расположены в одном блоке) с одной переменной в другую? Такая операция с использованием bt и bts слишком расточительна в плане ресурсов. Или я не прав? Так что ищутся альтернативные максимально быстрые методы.

Заранее благодарен всем принявшим участие в обсуждении.
260
12 июня 2006 года
Ramon
1.1K / / 16.08.2003
Юзаем битовые операции "and", "or", "not", "xor" и добиваемся необходимого резулта.

В данном случае, что то вроде:

 
Код:
mov    eax,dword ptr dwVariable1     ;Получаем значение первой переменной
    and    eax,0101b                     ;Выделяем нужные биты
    or     dword ptr dwVariable2,eax     ;Устанавливаем нужные биты во второй переменной
499
12 июня 2006 года
madjahed
149 / / 14.01.2004
[QUOTE=Ramon]Юзаем битовые операции "and", "or", "not", "xor" и добиваемся необходимого резулта.

В данном случае, что то вроде:

 
Код:
mov    eax,dword ptr dwVariable1     ;Получаем значение первой переменной
    and    eax,0101b                     ;Выделяем нужные биты
    or     dword ptr dwVariable2,eax     ;Устанавливаем нужные биты во второй переменной
[/QUOTE]

Не, такое не пройдёт, т.к. нужные биты генерятся динамически.
260
12 июня 2006 года
Ramon
1.1K / / 16.08.2003
в качестве маски и не только непосредственное значение использовать можно

 
Код:
mov    eax,dword ptr dwVariable1     ;Получаем значение первой переменной
    and    eax,dword ptr dwMask           ;Выделяем нужные биты
    or     dword ptr dwVariable2,eax     ;Устанавливаем нужные биты во второй переменной


Если не подходит, стоит больше внимания уделить всему алгоритму
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог