Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Salve a tutti,
ho un piccolo dubbio riguardo all' inline asm in c.
Allora se voglio inserire un' instruzione asm in una funzione in c faccio così:
Codice sorgente - presumibilmente C/C++
int funzione()
{
__asm__(
"istruzione 1"
"instruzione 2"
"ecc."
);
}
Il problema è: se io nel codice asm devo mettere le virgolette, come faccio?
Ad esempio: se devo allocare un stringa "ciao" teoricamente dovrei fare così:
Codice sorgente - presumibilmente C/C++
int funzione()
{
__asm__(
"stringa: .string "ciao""
);
}
Ma gcc mi da errore. C'è un modo per inserire delle virgolette nelle virgolette, in modo da poter allocare delle stringhe?
Grazie in anticipo
non puoi inserire dichiarazioni di stringhe nell'asm di un file c.
puoi però fare così:
Codice sorgente - presumibilmente C/C++
char *p = "ciao a tutti";
_asm {
mov eax, p;
[...]
}
un metodo per inserire una stringa in un blocco asm e fare un ciclo di _emit con i bytes della stringa e poi puntarla attraverso il suo indirizzo virtuale all'interno del codice.
Ma credo che questo vada ben oltre a quello che vuoi fare te