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