Vale he utilizado el esquema de la función crear_cpu() de Khronos, queda algo como esto, por si puede ayudar a alguien:
Para crear la CPU llamo a la función de la siguiente manera:
Cuando tenga terminado el código es muy posible que lo postee. Tiene una buena base, así que supongo que lo continuaré y añadiré funciones de E/S, Sockets, entre otras cosas.
Gracias y saludos!
Código (c) [Seleccionar]
unsigned int crear_cpu(cpu_t *cpu, unsigned char *memoria) {
if(!memoria || !cpu) return 0;
//memset(cpu_init->registro, 0, sizeof(cpu_init->registro) / sizeof(*cpu_init->registro));
unsigned int i = 0;
for(; i < 12; i++)
cpu->registro[i] = 0;
cpu->inst_pointer = 0;
cpu->memoria = memoria;
return 1;
}
Para crear la CPU llamo a la función de la siguiente manera:
Código (c) [Seleccionar]
/* Crear CPU e inicializar los datos */
cpu_t cpu;
if(!crear_cpu(&cpu, codigo)) {
printf("[MVM] Error al crear CPU...\n");
return 0;
}
Cuando tenga terminado el código es muy posible que lo postee. Tiene una buena base, así que supongo que lo continuaré y añadiré funciones de E/S, Sockets, entre otras cosas.
Gracias y saludos!