Я пытаюсь «встроить» свою виртуальную машину, копируя сегменты кода из кода C между метками в память, выделенную malloc. Итак, у меня есть операции, определенные с начальными и конечными метками, и я хочу скопировать инструкцию, определенную следующим кодом, в буфер, а затем выполнить (Я не уверен, что это вообще возможно)
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
но я даже не могу прочитать это без ошибки памяти
Буду рад любым ссылкам или предложениям, как этого добиться