[GCC][ASM] Assembleur inline gcc

Assembleur inline gcc [GCC][ASM] - ASM - Programmation

Marsh Posté le 01-10-2003 à 16:26:29    

Voila, j'aimerai juste copier le contenu de test dans zero. ( c juste un exmple ). Mais je comprend pas exactement ce que les "r", "m", "f" ... implique ...
 
Le code ci-dessous marche pas. Si vous pouviez juste le corriger avec une petite explication ca m'eclairerait ...
 
Un lien vers un bon tutorial ? Je cherche mais comprend pas, ca m'echappe ...
 

Code :
  1. #include <stdio.h>
  2.                                                                                
  3. int zero[4] = {0, 0, 0, 0};
  4.                                                                                
  5. int main() {
  6.     int test[4] = {'H', 'E', 'L', 'O'};
  7.     int *zerop = zero;
  8.                                                                                
  9.     printf("Test %08X %08X %08X %08X\n", test[3], test[2], test[1], test[0]);
  10.     printf("Zero %08X %08X %08X %08X\n", zero[3], zero[2], zero[1], zero[0]);
  11.     test[0] = 0xFF;
  12.     asm volatile (  "movaps (%0), %%xmm7;"
  13.             "movaps %%xmm7, %1;"
  14.             : "=r" (zerop)
  15.             : "0" (test)
  16.             : "%xmm7"
  17.             );
  18.     printf("Test %08X %08X %08X %08X\n", test[3], test[2], test[1], test[0]);
  19.     printf("Zero %08X %08X %08X %08X\n", zero[3], zero[2], zero[1], zero[0]);
  20. }

Reply

Marsh Posté le 01-10-2003 à 16:26:29   

Reply

Marsh Posté le 01-10-2003 à 17:34:23    

246tnt a écrit :

Voila, j'aimerai juste copier le contenu de test dans zero. ( c juste un exmple ). Mais je comprend pas exactement ce que les "r", "m", "f" ... implique ...


"r" => la valeur sera dans un registre
"m" => adresse mémoire
etc...
 
pour le reste, je peux pas t'aider, l'asm inline de GCC me gonfle royalement... on se demande vraiment ce qui est passé par la tête de ceux qui ont conçu ça... :sarcastic:
 
edit: tuto ici  
http://groups.google.com/groups?hl [...] d04&rnum=4


Message édité par Harkonnen le 01-10-2003 à 17:34:58

---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 01-10-2003 à 21:44:31    

Merci, pour mon problème j'ai trouvé mais j'ai un autre problème ... Je voudrait chargé l'addresse d'une variable locale ( ou globale, je peut la mettre globale ), dans mon code assembleur. En fait c un tableau ( un pointeur quoi ). Mais je peut pas le mettre dans un registre, j'en ai plus assez ...
 
Et je trouve pas comment faire. Le truc de _symboleC ca marche pas ..
Et les tuto que j'ai trouvé sont vraiment pas top.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed