masm vs linux

Тема в разделе "WASM.UNIX", создана пользователем Vilco, 26 дек 2011.

  1. Vilco

    Vilco Vitaly

    Публикаций:
    0
    Регистрация:
    5 мар 2007
    Сообщения:
    190
    Адрес:
    Nsk, Russia
    Приветствую.
    Есть исходник Си+асм, ничего из ОС-API не дергает, довольствуется только статически слинкованной CRT. Семь секунд полет нормальный. Хотелось бы такого же поведения добиться на unix-подобных. Проблема в том что асм-куски, как вы уже наверное догадались, на masm.
    Каковы шансы на успех? Можно ли обойтись без порта под другие компилеры (намекаю на nasm, fasm и любые вообще умеющие elf). Ещё вопрос в догонку - если бы было усе на ELF-могущих ассемблерах, какие могут быть ещё проблемы?
    Спасибо за внимание.
     
  2. paralvic

    paralvic Пархоменко Александр Викторович

    Публикаций:
    0
    Регистрация:
    20 ноя 2010
    Сообщения:
    294
    Адрес:
    Нижний Новгород
    Рантайм будет вам основной проблемой. Масм можно и вайном скомпилировать. Если он не покушается на винапи, то линуху это ничем не грозит. Другое дело, что очень часто можно асм переписать на си. Я бы асм оставлял только если он проводит реалтайм видеообработку.
     
  3. Vilco

    Vilco Vitaly

    Публикаций:
    0
    Регистрация:
    5 мар 2007
    Сообщения:
    190
    Адрес:
    Nsk, Russia
    Не очень понятно что вы имели в виду, говоря про рантайм. Зачем компилить вайном? Так то можно и под виндой собрать, но рабочий ELF от этого не получится.
    Бывают задачи и помимо видеообработки, где скорость чудовищно критична. "О большие" это конечно замечательно, но считается ли скажем задача один месяц или два - весьма существенная разница, согласитесь? Даже если на асм-код уйдет больше месяца (а то и двух) сверху, это очень оправданно, т.к. при самом счете окупается с лихвой. Это уже не говоря о посторонних людях которые будут счастливы использовать сверхэффективные алгоритмы.

    На самом деле поставленная задача не для слабонервных и потребовала некоторых весьма значительных усилий. Более того, могу сказать что по ходу вылезли некоторые вещи, которые так и не удалось побороть (пришлось обойти). Решается как и все остальное в никсовых - перепиливанием исходников (линкера и objdump в частности). Возможно найдется что-то попроще.
    Если у кого-то возникнет подобная задача - пишите в пм (или на почту), помогу чем смогу.
     
  4. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    Vilco
    Я бы все-таки посоветовал скомпилить все на Си с оптимизацией и посмотреть результат в ассемблере. Современные компиляторы стали умнее и иногда делают такое, что вы и не ожидали. Конечно если переделка не займет много времени. Если у вас большие куски на ассемблере тогда УВЫ. Проще "пилить".
     
  5. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.077
    ужо стукнул 2017, а компили прям такие вумные, что слов нет :))) также доставляет, что в них стали интринзики внедрять, хотя раньше единственным интринзиком был goto :lol: