Ci sono alcuni casi in cui è utile o necessario scrivere porzioni di codice in assembly all'interno del proprio programma C. Ciò accade in generale quando si vuole avere un completo controllo sul codice prodotto, spesso per ragioni di ottimizzazione della velocità di esecuzione o dello spazio occupato in memoria.
Una possibile soluzione a questo problema è scrivere una routine in linguaggio assembly, salvarla in un file .asm incluso nel progetto e quindi chiamare il codice di questa routine in C come se si trattasse di una funzione C. Questa soluzione, sebbene molto potente e versatile, non viene qui trattata in quanto è necessario imparare a gestire lato assembly i parametri della funzione e l'eventuale valore di ritorno.
Ci occupiamo qui invece del caso più semplice in cui si voglia semplicemente inserire una porzione di assembly all'interno di un programma in C. Un metodo è usare l'istruzione asm() (che per ovvie ragioni non fa parte del C standard) che consente di inserire una singola istruzione assembly come mostra l'esempio seguente:
Una soluzione più pratica, nel caso in cui si vogliano inserire più linee di codice assembly, è quella di utilizzare le direttive #asm e #endasm come mostrato nell'esempio seguente:
Alcune osservazioni importanti:
E' importante anche sapere che le variabili e le funzioni dichiarate in C sono accessibili in assembly con lo stesso nome e il prefisso _ (underscore). Per esempio si consideri l'esempio seguente che fa riferimento alla variabile var definita nel sorgente C:
precedente - successiva
Sito realizzato in base al
template offerto da
http://www.graphixmania.it