Per quanto ne so, un programma di assemblaggio è diviso per due - 1) il codice 2) i dati. Ora, quando eseguiamo il codice, diciamo su c \ C++, il codice viene caricato nella memoria e quindi la CPU avvia il codice, una per una, come un programma di assemblaggio. Le mie domande sono: 1. dove è memorizzato il codice c? Voglio dire, quando eseguo un programma in Visual Studio, il codice è caricato su uno di essi: Heap, Stack ..? 2. Quindi la memoria è praticamente divisa per il segmento Stack, Heap e Date, ma quando la CPU esegue il programma, come un programma di assemblaggio, sono tutti 1 programma di assemblaggio con la stessa area dati o sono formati in, diciamo 2 o 3 programma assebmly che salti da uno all'altro?I segmenti Heap, Stack e Dati si trovano sullo stesso programma di assemblaggio?
** Vorrei aggiungere questa domanda, forse chiarirà la mia intenzione: Quando avvio un programma C, il codice (istruzioni macchina) viene caricato nella memoria. Quindi, questo è un programma di assemblaggio. Ma come avviene la divisione della memoria? Voglio dire, come le diverse sezioni di memoria come Stack, Data segment, ecc. Modificano il programma di assemblaggio?
Grazie ma non è esattamente quello che sto chiedendo. – user2162550
@ user2162550 L'aggiornamento ti è utile?Se no, quali ulteriori informazioni stai cercando? Per capire le basi, è meglio mantenere la mappatura della memoria in modalità reale. Le cose sono molto più semplici. – Jean
"No. Non ci sono salti, i registri dei processori puntano verso la prossima istruzione da eseguire, altri puntano verso lo stack ecc." se ci sono altri registri che puntano allo stack, ecc. come dici tu, quindi ci sono diversi programmi di assemblaggio, e la CPU effettivamente salta da uno all'altro, non è corretto? – user2162550