Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Dubbio inline assembly in c
Forum - C/C++ - Dubbio inline assembly in c

Avatar
luca94 (Normal User)
Pro


Messaggi: 71
Iscritto: 07/05/2008

Segnala al moderatore
Postato alle 15:53
Mercoledì, 15/07/2009
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++

  1. int funzione()
  2. {
  3.       __asm__(
  4.                   "istruzione 1"
  5.                   "instruzione 2"
  6.                   "ecc."
  7.               );
  8. }


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++

  1. int funzione()
  2. {
  3.       __asm__(
  4.                   "stringa:  .string "ciao""
  5.                  
  6.               );
  7. }


Ma gcc mi da errore. C'è un modo per inserire delle virgolette nelle virgolette, in modo da poter allocare delle stringhe?
Grazie in anticipo:k::k:


eb 04 af c2 bf a3 81 ec     00 01 00 00 31 c9 88 0c

0c fe c1 75 f9 31 c0 ba     ef be ad de 02 04 0c 00

d0 c1 ca 08 8a 1c 0c 8a     3c 04 88 1c 04 88 3c 0c

fe c1 75 e8 e9 5c 00 00     00 89 e3 81 c3 04 00 00

00 5c 58 3d 41 41 41 41     75 43 58 3d 42 42 42 4
PM Quote
Avatar
gio97 (Ex-Member)
Guru


Messaggi: 715
Iscritto: 25/04/2009

Segnala al moderatore
Postato alle 16:02
Mercoledì, 15/07/2009
Non conosco l'assembly, quindi magari è un consiglio errato, penso si faccia come in C, usando i caratteri d'escape: scrivendo per esempio \"


"Ditemi, sapete chi è... il ciaffo?"
"Questo essere trae origine da un arcaico lamer.
Tanto tempo fa, in una chat oscena oscena, il lamer f1192 si lamentava di non poter inserire le graffe, perché non aveva... IL CIAFFO"(L'uomo che sussurrava ai ciaffi)
PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2763
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 2:51
Lunedì, 27/07/2009

non puoi inserire dichiarazioni di stringhe nell'asm di un file c.
puoi però fare così:



Codice sorgente - presumibilmente C/C++

  1. char *p = "ciao a tutti";
  2.  
  3. _asm {
  4.  
  5.  mov eax, p;
  6.  
  7.  [...]
  8.  
  9. }



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 :rofl:


Ingegnere Informatico
https://ldlagency.it
PM Quote