Интересная, оказывается, есть возможность почти прямо из коробки.
Пример:
https://github.com/WhiteBlackGoose/AsmToDelegate
С помощью
https://github.com/icedland/iced из ассемблерных инструкций делается массив байт машинных инструкций — внутри C# проекта прямо. На лету. Получается просто массив двоичных данных. Потом этот массив записывается в память и с помощью такой магии:
(delegate* unmanaged[Cdecl]<TIn1, TIn2, TIn3, TOut>)s.Pointer;
— получаем делегат. Если этот делегат дернуть — то исполнятся машинные инструкции, которые вы сформировали в рантайме
P.S.
А вот из C++ x64 теперь нельзя вызвать __asm инструкцию — MS данную возможность отключила:
https://rsdn.org/forum/cpp/4585123.allАвтор: SWW
Дата: 21.01.12