Eso podría ser un problema un poco exótico, pero espero que alguien pueda todavía me ayude un poco;). Me gustaría ejecutar un programa C estándar, , sin embargo, en algún momento durante la ejecución del programa me gustaría que se ejecute un cierto número de instrucciones , que se almacenan en una memoria RAM de libreta local, . La memoria del bloc de notas es accesible para todos los procesos. Vamos a suponer esta memoria local comienza en la dirección 0x80000000 y me gustaría integrar este en el siguiente código C fragementAcceder a la memoria del bloc de notas desde C
int main {
int a=1;
int b=2;
int c=3;
c = a + b;
%goto address 0x80000000 and execute three instructions before continuing
%program execution here
return(0);
}
El contador de programa pasaría a través de las siguientes etapas, asumiendo principal se carga en 0x40000000
0x40000000 a=5;
0x40000004 b=2;
0x40000008 c=1;
0x4000000C c=a+b;
0x80000000 first instruction in the local scratch pad
0x80000004 second instruction in the local scratch pad
0x80000008 third instruction in the local scratch pad
0x40000010 return(0);
¿Alguien una idea de cómo hacer esto? ¿Necesito usar assembler jump o hay algo más elegante?
Muchas gracias, Andi
¿El programa en 0x80000000 se comporta como una función? Es decir. ¿salvará la pila correctamente y ejecutará un salto de regreso a la persona que llama? – bstpierre