Duvida de byte-code

Olá tudo bem? Bom estou em busca de criar uma maquina virtual bem “simples” porem estou com uma duvida no montador. Por exemplo o código:

mov  R0 10
mov  R1 20
add  R0 R1
push R0

Vai ser traduzido para:

0001 0000 0000 1010    # mov R0 10
0001 0001 0001 0100    # mov R1 20
0002 0000 0000 0001    # add R0 R1
0004 0000 0000 0000    # push R0

Porem não sei como representar label e como separar esses valores, como posso fazer isso?
A instrução, por exemplo: 0001000000001010
como posso dividir em
0001 opcode
0000 valor1
0000 valor2 (registrador/numero)
1010 valor3 (numero)

Fica mais simples se cada instrução ocupar 1 byte.