X86 VM在Ethereum上

2021-05-07 11:27:53

此VM基于Jordan Earls的项目,其具有完全模拟8086处理器的原始目标。它现在已被调整为专用VM,用于运行智能合同和其他不受信任的代码。

设置为最终支持的指令是I686的修改版本,其中大多数系统级和ring0操作码。它还可能支持标准I686 FPU指令(TBD)。

运行时,它将有几个输出。它将在您自己代码中输出使用它所需的库文件,也将输出" x86testbench" X86TestBench程序是为X86 VM的自由形式测试而构建的,最终将模拟完整的智能合同环境。 (用模拟和存根等,以便您可以测试自己的合同,以实现不可能的条件等)。

大多数OPCODES未经测试,尚未实施大量的操作码。建议现在使用组件进行任何测试,但它在过去运行了一些简单的C程序(基于I386 OPCode集)。

一个示例链接器脚本包含在TestBench目录中。注意需要一个独立的无操作系统编译器。

CPU I386BITS 32ORG 0x1000;所需,因为代码加载到地址0x1000START:MOV EAX,0输出0xF0,EAX;退出时错误代码0HLT; and#39; t到达这里

加载!开始执行... Opcode:op_mov_rw_immw;十六进制:0xB8EAx:0ECX:0EDX:0EBX:0ESI:1FF000BP:0ESI:0EDI:0CS:0SS:0DS:0 :0DF:0F:0 ---------------------------退出代码0

x86lib非常仍然是alpha。 如果您想帮助贡献,请提取请求或联系[email protected]