Personalmente cercherei di scrivere c e asm in moduli separati, in
maniera da poterli compilare distintamente, e successivamente usare un
qualsiasi linker.
IMO la regola di usare moduli di compilazione separati per tutto ciò
che è system-dependent è una regola generale da cercare di seguire
sempre!
Ciao!
Tutti i compilatori includono un assemblatore come parte del processo
di generazione degli eseguibili e tutti quelli che ho avuto di usare
sono in grado di differenziare file sorgenti in C od assembler a
seconda dell'estensione del file. L'estensione '.s' oppure '.S'. per
esempio, indica al gcc che si tratta si un file in assembler senza
(estensione .s) o con (estensione .S) direttive di preprocessore.
Analogamente quasi tutti i compilatori hanno un'opzione per generare
il codice assembler (con o senza ottimizzazione) equivalente.
Quanto alla direttiva 'asm' inclusa nel codice C viene automaticamente
usata dal compilatore per generare il codice assembler così come
scritto nel file. Il codice verrà poi passato, assieme al resto
generato dal codice C, al programma (od allo step del compilatore)
assemblatore ('as' nel caso del gcc).
Attenzione però che non tutti i compilatori/assemblatori usano lo
stesso linguaggio assembler. Il gcc usa una versione che credo derivi
dal compilatore Unix delle origini, che ha una sintassi alquanto
diversa dalla sintass dell'assemblatore Intel usata nei compilatori
Microsoft.
Sinceri auguri per un Felice Anno Nuovo.
Ciao
Giovanni
--
A computer is like an air conditioner,
it stops working when you open Windows.
< http://giovanni.homelinux.net/ >
>Personalmente cercherei di scrivere c e asm in moduli separati, in
>maniera da poterli compilare distintamente, e successivamente usare un
>qualsiasi linker.
>IMO la regola di usare moduli di compilazione separati per tutto ci�
>che � system-dependent � una regola generale da cercare di seguire
>sempre!
>Ciao!
Hai ragione, in effetti volevo provare ambedue le soluzioni, per� non
saprei come scrivvere moduli in asm da linkare successivamente, per il
fatto che dovrei dare delle direttive all'assemblatore di cui, ora,
non vorrie occuparmi (tipo: modelli di memoria...).
Grazie,ciao!
>Tutti i compilatori includono un assemblatore come parte del processo
>di generazione degli eseguibili e tutti quelli che ho avuto di usare
>sono in grado di differenziare file sorgenti in C od assembler a
>seconda dell'estensione del file. L'estensione '.s' oppure '.S'. per
>esempio, indica al gcc che si tratta si un file in assembler senza
>(estensione .s) o con (estensione .S) direttive di preprocessore.
>
>Analogamente quasi tutti i compilatori hanno un'opzione per generare
>il codice assembler (con o senza ottimizzazione) equivalente.
>
>Quanto alla direttiva 'asm' inclusa nel codice C viene automaticamente
>usata dal compilatore per generare il codice assembler cos� come
>scritto nel file. Il codice verr� poi passato, assieme al resto
>generato dal codice C, al programma (od allo step del compilatore)
>assemblatore ('as' nel caso del gcc).
>
>Attenzione per� che non tutti i compilatori/assemblatori usano lo
>stesso linguaggio assembler. Il gcc usa una versione che credo derivi
>dal compilatore Unix delle origini, che ha una sintassi alquanto
>diversa dalla sintass dell'assemblatore Intel usata nei compilatori
>Microsoft.
>
>Sinceri auguri per un Felice Anno Nuovo.
>
>Ciao
>Giovanni
CIao, in effetti ho sentito che gcc usa una sintassi un p�
sua...dev'essere quella AT&T degli inizi, in effetti...
Grazie degl iauguri, che ricambio.
CIao!