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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.06.2015, 21:05   #11
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

Цитата:
Сообщение от Smitt&Wesson Посмотреть сообщение
Ещё раз, подробнее.
..да вроде подробнее некуда.
Нашедшего выход - затаптывают первым..
R71MT вне форума Ответить с цитированием
Старый 12.06.2015, 21:50   #12
f.hump
C/C++, Asm
Участник клуба
 
Аватар для f.hump
 
Регистрация: 02.03.2010
Сообщений: 1,323
По умолчанию

Цитата:
..сори, но для чего может понадобится поиск 6-битного значения?!
да вообщем-то бит-стрим называтся битстримом, потому что информация в нем упакована последовательностями битов различной длины. бит стрим может быть разбит на байты (справа-налево или слева-направо), да, но из этого не следует, что он содержит байты.

единственная причина для быстого поиска 6-бит, которая приходит в голову, относится к садо-мазо попытке взлома DES.
f.hump вне форума Ответить с цитированием
Старый 13.06.2015, 04:56   #13
Мордохвост
Пользователь
 
Регистрация: 15.04.2015
Сообщений: 30
По умолчанию

Строка в смысле символы, а не в бинарном? Есть поиск последовательности символов инструкция, на скорую руку результат кажется валидный.
Код:
function Find(const S:PAnsiChar;const L:Integer):Integer;
const
BITS : UInt64 = $0000313130303130; //'010011'
asm
  mov       r8,rcx
  mov       r9d,edx 
  mov       eax,6
  movq      xmm2,[BITS]
  xor       ecx,ecx

.loop:
  sub       edx,ecx
  jl        .over     //jle ? cmp edx, 6 ?
  pcmpestri xmm2,[r8],0Ch
  lea       r8,[r8+rcx]
  test      ecx,ecx
  jnz       .loop
  mov       eax,r9d
  sub       eax,edx
  ret

.over:
  xor       eax,eax
end;

const
  S : AnsiString = '011001010110111000101000100110010010010010110111100100100';  

begin
  try
    Find(PAnsiChar(S), Length(S));
  except

  end;
end.
Мордохвост вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
поиск подстроки в строке С pepsik66 Помощь студентам 10 12.11.2012 19:25
поиск подстроки в строке Aina Utebekova Помощь студентам 27 11.10.2012 04:24
поиск подстроки в строке Pozitiffe Общие вопросы C/C++ 5 18.02.2012 21:48
Поиск подстроки в строке videolord Общие вопросы по Java, Java SE, Kotlin 2 10.04.2011 09:11
поиск подстроки в строке!!! StoneSour Общие вопросы C/C++ 2 15.03.2010 21:31