Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.10.2012, 18:35   #1
Ratatui
Новичок
Джуниор
 
Регистрация: 17.10.2011
Сообщений: 1
По умолчанию Циклический сдвиг в элементе данных DT

Как правильно выполнить циклический сдвиг бит и обратиться к какому либо биту?
Ratatui вне форума Ответить с цитированием
Старый 12.10.2012, 04:38   #2
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,139
По умолчанию

Ratatui
циклический сдвиг выполняется командами: ROR, ROL, RCR, RCL
выделяют бит при помощи AND или OR и затем что-то делают с ним, для проверки содержимого используют TEST или BT, команды сканирования бит BSF и BSR, команды проверки и модификации бит: BT, BTC, BTR, BTS.
При определенном навыке можно использовать арифметические и логические команды:
Для обнуления крайнего справа единичного бита (например, 01011000 -> 01010000) используется формула
X AND (X – 1)
Установка крайнего справа нулевого бита (01011100 -> 01011110)
X OR (X+1)
Для выделения крайнего справа единичного бита (01011000 -> 0001000)
X AND(-X)
Для выделения крайнего справа нулевого бита (10100111 -> 00001000)
(NOT X)AND(X+1)
Для выделения завершающих нулевых битов (например, 01011000 -> 00000111) можно использовать одну из трех формул:
1)(NOT X)AND(X-1) или
2) NOT(X OR(-X)) или
3)(X AND(-X))-1
Для выделения крайнего правого единичного бита и всех завершающих нулей (01011000 -> 00001111)
X XOR (X-1)
Распространение вправо крайнего правого единичного бита (например 01011000 -> 01011111)
X OR (X-1)
Обнуление крайней справа непрерывной подстроки единичных битов (01011100 -> 01000000)
((X OR(X-1))+1) AND X

Последний раз редактировалось Mikl___; 12.10.2012 в 04:43.
Mikl___ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Циклический сдвиг Санеk Паскаль, Turbo Pascal, PascalABC.NET 17 26.12.2015 01:31
циклический сдвиг browserpro Помощь студентам 0 08.12.2011 20:48
циклический сдвиг zvir Помощь студентам 4 02.12.2011 09:41
циклический сдвиг revaldo666 Общие вопросы C/C++ 4 29.03.2011 17:34
Циклический сдвиг в С rand8154 Общие вопросы C/C++ 1 14.11.2009 01:49