Микширование бит

Тема в разделе "WASM.CRYPTO", создана пользователем DevilDevil, 27 ноя 2020.

  1. DevilDevil

    DevilDevil Member

    Публикаций:
    0
    Регистрация:
    14 ноя 2007
    Сообщения:
    101
    Дано: 2 Word-а по 16 бит :)
    Необходимо объединить их так, чтобы биты шли последовательно
    Можно ли сделать это без многочисленных умножений или огромных заранее рассчитанных таблиц?

    Пример:

    0101010101010101 op 1100111000111100 = 0111001001110110111001110010
    --- Сообщение объединено, 27 ноя 2020 ---
    О, в моём примере не так
    Но важное уточнение

    На практике не бывает, что оба n-ных бита равны 1
    Может быть пригодится
     
  2. НетРегистрации

    НетРегистрации Member

    Публикаций:
    0
    Регистрация:
    1 фев 2020
    Сообщения:
    72
    Таблица 128кб объединения 2-х байт заполнять подобным образом, или 64 команды в развернутом цикле, или свернутом, в SSE и т.д. не знаю.
    .486p
    Mov eCx,15
    c1:
    BT [W1],Cx
    RCL eAx,1
    BT [W2],Cx
    RCL eAx,1
    LoopD c1
    BT [W1],0
    RCL eAx,1
    BT [W2],0
    RCL eAx,1
     
  3. DevilDevil

    DevilDevil Member

    Публикаций:
    0
    Регистрация:
    14 ноя 2007
    Сообщения:
    101
    Я честно говоря думал есть способ обойтись парой умножений и битовыми операциями
    В общем спасибо за участие!