Erasm++嵌入式运行时汇编器
Erasm++ 基于 C++ 的嵌入式运行时汇编器,是一个 C++ 的 Embedded Domain Specific Language (EDSL) 用于运行时生成代码。支持完整的编译时语法检查,其代码生成速度非常快,因为必须的数据已经做了静态计算,目前只支持 Intel 64 和 IA-32 体系架构。
示例代码:
#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; }
评论
Yasm汇编器
Yasm是一个完全重写的NASM汇编。目前,它支持x86和AMD64指令集,接受NASM和气体汇编语法,产出二进制,ELF32,ELF64,COFF,Mach-O的(32和64),RDOFF2,的Wi
Yasm汇编器
0
NASM80x86的汇编器
NASM是一个为可移植性与模块化而设计的一个80x86的汇编器。它支持相当多的目标文件格式,包括Linux和'NetBSD/FreeBSD','a.out','ELF','COFF',微软16位的'O
NASM80x86的汇编器
0
MASM微软宏汇编器
MASM是MicrosoftMacroAssembler的缩写,它是微软为x86微处理器家族,所写的一套宏组译器。它最初是用来发展在MS-DOS上面执行的软件,同时,它也该系统最流行的组译器。它支援的
MASM微软宏汇编器
0
rt0C 运行时
rt0是一个非常小的C运行时,用于Linuxi386&x86_64。特性:仅用202个SLOCC代码实现。i386仅需9行GCC内联ASM,或者仅x86_64的6行GCC内联ASM小运行时只提
rt0C 运行时
0