Важная информация

User Tag List

Показано с 1 по 3 из 3

Тема: Вычисление CRC

  1. #1
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    2,748
    Благодарностей: 745
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Вычисление CRC

    Планирую заменить в лоадере контрольную сумму на CRC, в связи с чем реализовал CRC-8/16/24/32/64. Обращаю внимание, что входные и выходные параметры у разных процедур передаются в разных регистрах.
    Процедуры не оптимизированные, но правильные (проверял по контрольным значениям). Может кто-нибудь оптимизирует или даст ссылку на более эффективные варианты.

    - - - Добавлено - - -

    Дополню - здесь вычисление без таблиц, вычисление crc-32 по таблице есть, например, в эксисайзере (и я эту процедуру потом использовал в тестах).

    - - - Добавлено - - -

    Если известна максимальная длина фрагмента данных и требуемая обнаруживающая способность, то можно выбрать подходящий полином здесь. Только надо учесть, что в таблице полиномы записаны в неполном виде, если дальше прощелкать, там есть и "полные" варианты, или можно самим дополнить.

    - - - Добавлено - - -

    В crc32 и 64 можно убрать push h и pop h
    Вложения Вложения
    • Тип файла: zip crc.zip (7.3 Кб, Просмотров: 49)
    Последний раз редактировалось ivagor; 09.03.2016 в 14:16. Причина: исправил про полиномы в таблице

  2. Этот пользователь поблагодарил ivagor за это полезное сообщение:
    svofski (09.03.2016)

  3. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  4. #2
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    2,748
    Благодарностей: 745
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Оптимизировал crc32, стало короче почти на 30 байт и быстрее более чем в полтора раза.

    - - - Добавлено - - -

    Но все равно медленно. Для размеров файлов до нескольких десятков Кб надо использовать как минимум crc24 и все же придется считать с использованием таблиц.
    Вложения Вложения

  5. #3
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    2,748
    Благодарностей: 745
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вычисление crc24 с использованием таблицы. Для сокращения программы таблица рассчитывается процедурой, а не задается массивом.
    Быстрее безтабличного варианта в 5 с лишним раз - 45 Кб пробегает за 2 с копейками секунды. Если скорость не очень важна (но все же хочется считать по таблице), то можно сократить процедуру, заменив проверку счетчика на традиционную и убрав "вторую серию".
    Вложения Вложения

  6. Этот пользователь поблагодарил ivagor за это полезное сообщение:
    svofski (13.03.2016)

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Вычисление числа Пи на ассемблере
    от perestoronin в разделе Разное
    Ответов: 287
    Последнее: 12.09.2017, 10:31

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •