嵌入式运行时汇编器 Erasm++

jopen 13年前
     <p>Erasm++ 基于 C++ 的嵌入式运行时汇编器,是一个 C++ 的 Embedded Domain Specific Language (EDSL) 用于运行时生成代码。支持完整的编译时语法检查,其代码生成速度非常快,因为必须的数据已经做了静态计算,目前只支持 Intel 64 和 IA-32 体系架构。</p>    <p>示例代码:</p>    <pre class="brush:cpp; toolbar: true; auto-links: false;">#include <erasm/x64_addr64_data32.hpp> #include <iostream>  typedef int (*pf_t) (int);  int main(int argc,char**argv) {    using namespace std;    using namespace erasm::x64;    using namespace erasm::x64::addr64;    using namespace erasm::x64::addr64::data32;     byte_t buf[100];    byte_t *p = buf;    int32_t x = 2;     p += mov(p,rax,dword_ptr[rsp+8]);    p += add(p,rax,x);    p += ret(p);     pf_t f = (pf_t)buf;       int len = p - buf;    cout  << "code length=" << len << endl   << "result=" << f(argc) << endl;    return 0; }</pre>    <p><strong>项目主页:</strong><a href="http://www.open-open.com/lib/view/home/1326600998702" target="_blank">http://www.open-open.com/lib/view/home/1326600998702</a></p>    <p></p>