хай всем ищу c/c++ опен-сорс либу, которая бы выдавала x86-код-инструкции по заданным мною параметрам - инструкция (например mov) + её аргументы.
насколько я знаю tinyc сишный код компилит, или я не прав? мне надо самая базовая либа которая выдаёт нужную мне инструкцию.
Вряд ли есть отдельный продукт. Кодогенратор можно выдрать из любого опен-сорс компилятора, который генерит обджекты. Например http://sourceforge.net/projects/mingw/files/ Полный набор весит 10 Мбайт, но ассемблер думаю там не такой огромный, чтобы нельзя было библу сотворить.
эх... глядел я их, есть ещё yasm, и пара подобных проектов. но там выходит что написать своё будет быстрее чем выковырять из них код который будет x86 инструкции генерить.
в смысле ??? - ты вызываешь функцию либы передавая в качестве параметра строку с менемоникой инструкции с операндами а в ответ хошь получить последовательность байт ?? овчинка выделки не стоит - так как для расчета адреса переменной по ее имени нужен весь исходник не говоря про метки в инструкциях перехода в лучшем случае функция этой твоей либы будет выдавать шаблон инструкции где адрес или длину перехода ты должен будешь расчитать и записать самостоятельно учитывая прядок байт
2Rockphorr: не совсем. Нужна функция вида MakeOpcode(INSTRUCTION_MOV,PARAMETER_REG_EAX,PARAMETER_REG_EBX) возвращающая несколько байт составляющих инструкцию.
vladqq вобщем то как ей параметры передавать - дело второе (имхо указатель на строку лучше) проблему расчета адреса мо имени это не отменяет
может быть лишь усеченный вариант только для случая регистров и непосредственных операндов но чем его писать проще в таблицу заглянуть
Rockphorr дело вовсе не второе. проблемы расчёта адреса по имени не будет - если имён не будет как таковых, а они возможны только если строкой передавать инструкцию.
vladqq не понять.. исходники фасм, насм, йасм, васм, жвасм, не говоря уже о семействе ас-ов открыты. в тсс и ов кодогенераторы вынесены в отдельные либы и даже с грехом пополам документированы. и это только самые популярные и известные пакеты. берете, что на вас больше смотрит и обрубаете фронтенд (читаете доку) о необходимого вам уровня. впрочем, это уже намекалось или вам чтото жит компилерообразное надо? тут тоже есть либы и готовые виртуалки с п-кодами разной степени кошмарности.
ну вот я дизассемблирую через hde, идеальная либа. искал чтото подобное по интерфейсу только для обраного процесса.