我尝试通过将标签之间的C代码中的代码段复制到malloc分配的内存来"内联"我的VM.所以我用开始和结束标签定义了Ops,我想将以下代码定义的指令复制到缓冲区然后执行(我不确定这是否可行)
OP_PUSH0_START:
sp += 4; *sp = 0; // I WANT THE INSTRUCTIONS OF THIS LINE COPIED TO THE BUFFER
OP_PUSH0_END:
Run Code Online (Sandbox Code Playgroud)
这样做我认为以下代码片段将起作用
void * ptr0 = &&OP_PUSH0_START;
void * ptr1 = &&OP_PUSH0_END;
while(ptr0 < ptr1)
{
buf[c++] = *ptr0;
ptr0++;
}
goto buf; //jump to start of buffer
Run Code Online (Sandbox Code Playgroud)
但我不能在没有记忆错误的情况下阅读它
我会很高兴任何链接或任何建议如何实现这一点