либа-ассемблер (c/c++)

Тема в разделе "WASM.ASSEMBLER", создана пользователем vladqq, 7 окт 2009.

  1. vladqq

    vladqq New Member

    Публикаций:
    0
    Регистрация:
    24 мар 2009
    Сообщения:
    69
    хай всем

    ищу c/c++ опен-сорс либу, которая бы выдавала x86-код-инструкции по заданным мною параметрам - инструкция (например mov) + её аргументы.
     
  2. make

    make New Member

    Публикаций:
    0
    Регистрация:
    29 июл 2009
    Сообщения:
    59
    TinyC?
     
  3. iZzz32

    iZzz32 Sergey Sfeli

    Публикаций:
    0
    Регистрация:
    3 сен 2006
    Сообщения:
    355
    fasm.dll? Правда, оно не c/c++, да.
     
  4. vladqq

    vladqq New Member

    Публикаций:
    0
    Регистрация:
    24 мар 2009
    Сообщения:
    69
    насколько я знаю tinyc сишный код компилит, или я не прав? мне надо самая базовая либа которая выдаёт нужную мне инструкцию.
     
  5. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    почти у любого компилятора есть кодогенератор.
     
  6. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    Вряд ли есть отдельный продукт. Кодогенратор можно выдрать из любого опен-сорс компилятора, который генерит обджекты. Например http://sourceforge.net/projects/mingw/files/ Полный набор весит 10 Мбайт, но ассемблер думаю там не такой огромный, чтобы нельзя было библу сотворить.
     
  7. vladqq

    vladqq New Member

    Публикаций:
    0
    Регистрация:
    24 мар 2009
    Сообщения:
    69
    эх... глядел я их, есть ещё yasm, и пара подобных проектов. но там выходит что написать своё будет быстрее чем выковырять из них код который будет x86 инструкции генерить.
     
  8. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.622
    Адрес:
    Russia
    в смысле ??? - ты вызываешь функцию либы передавая в качестве параметра строку с менемоникой инструкции с операндами а в ответ хошь получить последовательность байт ??

    овчинка выделки не стоит - так как для расчета адреса переменной по ее имени нужен весь исходник не говоря про метки в инструкциях перехода

    в лучшем случае функция этой твоей либы будет выдавать шаблон инструкции где адрес или длину перехода ты должен будешь расчитать и записать самостоятельно учитывая прядок байт
     
  9. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    Rockphorr
    а еще "раньше" все учили французский :)
     
  10. vladqq

    vladqq New Member

    Публикаций:
    0
    Регистрация:
    24 мар 2009
    Сообщения:
    69
    2Rockphorr: не совсем. Нужна функция вида MakeOpcode(INSTRUCTION_MOV,PARAMETER_REG_EAX,PARAMETER_REG_EBX) возвращающая несколько байт составляющих инструкцию.
     
  11. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.622
    Адрес:
    Russia
    vladqq

    вобщем то как ей параметры передавать - дело второе (имхо указатель на строку лучше)
    проблему расчета адреса мо имени это не отменяет
     
  12. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.622
    Адрес:
    Russia
    может быть лишь усеченный вариант только для случая регистров и непосредственных операндов
    но чем его писать проще в таблицу заглянуть
     
  13. vladqq

    vladqq New Member

    Публикаций:
    0
    Регистрация:
    24 мар 2009
    Сообщения:
    69
    Rockphorr
    дело вовсе не второе. проблемы расчёта адреса по имени не будет - если имён не будет как таковых, а они возможны только если строкой передавать инструкцию.
     
  14. qqwe

    qqwe New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2009
    Сообщения:
    2.914
    vladqq
    не понять.. исходники фасм, насм, йасм, васм, жвасм, не говоря уже о семействе ас-ов открыты. в тсс и ов кодогенераторы вынесены в отдельные либы и даже с грехом пополам документированы. и это только самые популярные и известные пакеты. берете, что на вас больше смотрит и обрубаете фронтенд (читаете доку) о необходимого вам уровня. впрочем, это уже намекалось

    или вам чтото жит компилерообразное надо? тут тоже есть либы и готовые виртуалки с п-кодами разной степени кошмарности.
     
  15. vladqq

    vladqq New Member

    Публикаций:
    0
    Регистрация:
    24 мар 2009
    Сообщения:
    69
    ну вот я дизассемблирую через hde, идеальная либа. искал чтото подобное по интерфейсу только для обраного процесса.