Newsgroup: it.comp.lang.c++
Titolo: [Semi-OT]Come si inserisce il codice ASM?

Salve,
	potreste dirmi qual'č la sintassi per inserire del codice assembler?
Cosi va bene:  ?
	int main () {
		asm {
		/* codice vario */
		};
	return 0;
	}
e per il codice inline?
Grazie
Luigi
-- 
Posted from 
smtp3.libero.it
 [193.70.192.53] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

          asm {
mi pare la keyword fosse ___asm

La forma standard e':
asm ( /* istruzioni assembler */ );
(Nota le parentesi tonde)
Alcuni compilatori seguono altre convenzioni, tra cui se non sbaglio, il
Borland.
Ciao,
Nicola

e per il codice inline?
2 vie:
- nella dichiarazione di una classe scrivi direttamente il corpo dei metodi,
ad es:
class pino {
    private:
        string s;
    public:
        pino(string t) : s(t) {cout << "Il parametro è: " << s << endl;}
}
Il codice del costruttore (ma potrebbe essere qualunque altra cosa) viene
reso inline
- usare la parola chiave inline definendo la funzione, ad es:
inline void pasticcio(void)
{
    .
    .
    .
}
Tieni conto che l'uso di inline è un suggerimento al compilatore, che non è
obbligato a rendere inline le funzioni in tutti i casi (mi pare che i vecchi
compilatori C++, ad esempio, non riuscissero a rendere inline funzioni con
cicli, ma limitazioni di questo tipo dovrebbero essere superate), e che la
visibilità di una funzione inline è diversa rispetto a quella di una
funzione normale - non saprei dirti bene come, ma se ad esempio in un file
.cpp rendi inline una funzione con il secondo metodo, lo compili in codice
oggetto, e poi lo linki ad altro codice, l'altro codice non è in grado di
vedere la funzione (nota: non sono sicuro che la questione sia proprio in
questi termini, ma ai fini pratici l'effetto di rendere inline una funzione
è qualcosa del genere).
Lanugo

Io però mi riferico al codice inline tipo AC/4F/B2  (forse ho usato termini 
non adatti perché non conosco bene l'argomento)
 
Non ai metodi :)
Ciao
--
Luigi

Nicola Musatti ha scritto:

Quindi:
int main () {
        asm (mov ax, 2)
        asm (mov bx, ax)
        return 0;
}
?????
Io uso g++ su Linux
Grazie
--
Luigi

 }
Dunque.
1) nonostante il subject, non sei affatto OT
2) in teoria sarebbe asm ("mov ax, 2") e non dimenticare il ; finale
3) in pratica dipende dal compilatore dato che non tutti seguono lo standard
Andrea Ferro
---------
Brainbench C++ Master. Scored higher than 97% of previous takers
Scores: Overall 4.46, Conceptual 5.0, Problem-Solving 5.0
More info 
http://www.brainbench.com/transcript.jsp?pid=2522556

 3) in pratica dipende dal compilatore dato che non tutti seguono lo standard
Non solo, ma il contenuto delle tonde e' *completamente* implementation
dependant.
Ciao,
Nicola

 wrote in message
news:3ACAF788...@divalsim.it...

Ni. Per quel che so io e' uno string literal. Il suo significato resta
implementation dependent.


 implementation dependent.
Hai ragione. Ho letto male io.
Ciao,
Nicola

>Non ai metodi :)
Scusa, letto male :-(
Lanugo

Io uso g++ su Linux Mdk
Grazie
--
Luigi

 1) nonostante il subject, non sei affatto OT
Secondo me e' OT; e probabilmente sul gruppo it.comp.os.linux.development 
avrebbe subito trovato uno spunto piu' preciso ( senza togliere niente a 
nessuno ! ).
Guardati l'"Assembly-HOWTO", ci stanno un po' di riferimenti nella sezione 
3. Comunque la documentazione e' alquanto scarna

 3. Comunque la documentazione e' alquanto scarna
Scusa, dove lo trovo? Nel CD della distro oppure cerco nell'HD?
-- 
--
Luigi

 nessuno ! ).
Perche' dovrebbe essere OT? Ha fatto una domanda che ha a che fare con il
linguaggio. E questo e' il gruppo piu' giusto per farla.


 Scusa, dove lo trovo? Nel CD della distro oppure cerco nell'HD?
In genere sta' sotto
/usr/doc/howto
o
/usr/doc/HOWTO
o
/usr/share/doc/HOWTO
o
/usr/share/doc/howto
Comunque vai su
www.pluto.linux.it
 
che ci sono anche in italiano ....

 che ci sono anche in italiano ....
Infatti sono andato direttamente là :)
Grazie
--
Luigi

 linguaggio. E questo e' il gruppo piu' giusto per farla.
In realta' a fatto una domanda su un qualcosa che non e' definito nello 
standard ( appunto *l'implementazione* della keyword asm ).
Il mio "essere OT" era dovuto al fatto che probabilmente ( anche se poi non 
e' stato cos'i in questo caso ) avrebbe trovato + facilmente una risposta 
migliore su un ng dedicato come it.comp.os.linux.development.
Nessun intento polemico ne con te ne con luigi per carita' ...
anzi siamo adesso OT :))

 standard ( appunto *l'implementazione* della keyword asm ).
Ad essere precisi la keyword asm č prevista dallo Standard per il
C++:
    asm(string-literal);
Che poi il significato della string-literal č completamente
implementation-defined č un'altro discorso.
Saluti  Manlio Perillo