Questo potrebbe essere un problema un po 'esotiche, ma spero che qualcuno possa ancora aiutarmi un po', ;). Vorrei eseguire un programma C standard, tuttavia, ad un certo punto durante l'esecuzione del programma mi piacerebbe che un certo numero di istruzioni , che sono memorizzate in una RAM locale, siano eseguite . La memoria del gratta e vinci è accessibile per tutti i processi. Assumiamo questa memoria locale inizia all'indirizzo 0x80000000 e lo integrare questo nel codice seguente C fragementAccesso alla memoria del riquadro scratch da 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);
}
Il contatore di programma dovrebbe passare attraverso le seguenti fasi, assumendo principale viene caricato sul 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);
Qualcuno un'idea su come eseguire questa operazione? Devo usare le istruzioni di assembler jump o c'è qualcosa di più elegante.
Molte grazie, Andi
fa il programma a 0x80000000 si comportano come una funzione? Cioè salverà lo stack correttamente ed eseguirà un salto indietro al chiamante? – bstpierre