Bonjour,

avant toute chose, bonne année à tous et très bonne santé surtout!

Je suis totalement inculte au niveau du MIPS et je connais de lui et de ses instructions assembleur que ce que j'ai trouvé sur le web.
J'ai un petit souci avec de l'assembleur inline et j'espère que vous pourez m'aider.

En gros, je cherche à réécrire les fonctions read et write.Je ne trouve pas beaucoup d'exemple qui mélange vraiment le C et l'assembleur MIPS.

que pensez vous de ce code la? Quelq'un pourrait il me renseigner ( avec des exemples fonctionnels ce serait parfait !)
Il compile mais j'ai des doutes sur ce qu'il fait vraiment.
Merci à ceux qui pourront m'aider

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
 
void read(const unsigned int *address, unsigned int *data) {
 
__asm__( 	"lw	$2, (%0) "      /* charge l'adresse a lire dans le registre $2  */	
                "lw	$3, (%1) "	 /* charge l'addresse data dans $3  */
                "lw	$3, ($2)"	/* place le mot contenu a l'adresse $2 dans $3 */
	        :""
                :"r" (address), "r" (data)
             );
 
}