Como obter o código c para executar o bytecode hexadecima

Quero que um método C simples seja capaz de executar o bytecode hexadecimal em uma máquina Linux de 64 bits. Aqui está o programa C que eu tenho:

char code[] = "\x48\x31\xc0";
#include <stdio.h>
int main(int argc, char **argv)
{
        int (*func) ();
        func = (int (*)()) code;
        (int)(*func)();
        printf("%s\n","DONE");
}

O código que estou tentando executar "\x48\x31\xc0") Obtive escrevendo este programa simples de montagem (não é realmente necessário fazer nada)

.text
.globl _start
_start:
        xorq %rax, %rax

e, em seguida, compilando e objetando-o para obter o bytecod

No entanto, quando executo meu programa C, recebo uma falha de segmentação. Alguma ideia

questionAnswers(10)

yourAnswerToTheQuestion