Esempi di sviluppo ed elaborazione di programmi in C + Assembly

Architettura degli elaboratori 2016-17, CdL Informatica, DMI, Univ. Catania

1. Esempi in cap04extra

2 Esempi in cap04extra/ia32

2.1 Esempio in cap04extra/ia32/ex1

Sequenza di elaborazione:

  1. assemblaggio del sottoprogramma --> modulo oggetto
  2. compilazione del programma principale e collegamento con il modulo oggetto del sottoprogramma --> programma eseguibile
  3. disassemblaggio del modulo oggetto del sottoprogramma
  4. disassemblaggio dell'eseguibile (sezioni .text e dati, header, simboli)
  5. esecuzione del programma --> output ridiretto su file di testo
  6. sessione di esecuzione controllata dal debugger gdb

rispettivamente mediante gli script:

./script/asBCDpacksub
./script/gcctestBCDpacksub
./script/odBCDpacksub
./script/odtestBCDpacksub
./script/runtestBCDpacksub
./script/gdbtestBCDpacksub

2.2 Esempio in cap04extra/ia32/ex2

Sequenza di elaborazione identica a quella dei primi cinque passi della precedente, mediante esecuzione degli script omonimi per la seconda variante dell'esempio.

Se si vuole eseguire una sessione interattiva di esecuzione controllata dal debugger gdb, occorre preliminarmente modificare lo script di compilazione (./script/gcctestBCDpacksub) per aggiungere l'opzione -g, come nell'omonimo script della prima variante: tale opzione di gcc genera, nell'eseguibile, i simboli di debugging necessari all'esecuzione controllata dal debugger. Può poi essere utile consultare i comandi dati in input al debugger nell'esempio precedente, nel file ../ex1/script/gdbtestBCDpacksub.gdb, da adattare all'esecuzione di un programma diverso, che ha simboli diversi.

3 Esempi in cap04extra/arm, cap04extra/nios2-13.1, cap04extra/nios2-16.1

Allo stato attuale, su macchine di architettura x86 o amd gli esempi ia32 sono riproducibili fino all'esecuzione e al debugging, mentre gli altri constano solo dei primi quattro passi della sequenza di elaborazione indicata per il primo esempio. L'esecuzione degli script per tali passi è come quella indicata per il primo esempio, previo posizionamento nella directory <arch>/ex<i> appropriata.


Architettura degli elaboratori, 2016/2017 .
Autore: G. Scollo .
Data: Giovedì 18 Maggio 2017
testo semplice di questa pagina.