AVL.

Тема в разделе "WASM.RESEARCH", создана пользователем Indy_, 8 дек 2016.

  1. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    Есть в нэйтиве механизмы для работы с бинарными деревьями. Если кратко, то это используется для быстрой работы с не линейными массивами, используется активно менеджером памяти.

    https://msdn.microsoft.com/en-us/library/windows/hardware/ff553327(v=vs.85).aspx

    Хотелось бы получить самодостаточный код. Рипать код не хорошо, но не в данном случае :skull:

    Опишу как сделать рип автоматикой.

    Опишем шаблон для вызова будущего рипнутого кода:

    Код (Text):
    1. test eax,eax
    2. jz L1
    3. dec eax
    4. jz L2
    5. ...
    6. Ln:
    7. ret
    Получем нужные AVL апи и сформирем шаблон в буфере(кодес в архиве).

    Затем вызываем конструктор - он опишет графом шаблон и соответственно апи. Сделаем это для младшей версии системы, так как в старших версиях апи содержат не нужные нам элементы(проверки безопасности):

    [​IMG]

    После описания билдим граф в буфер:

    [​IMG]

    и наконец дампим. Получился годный код размером 1528 байт.

    https://yadi.sk/d/RVbm3yBp32d7hu vx
     
    Ronin_, Rel, gazlan и 2 другим нравится это.