134Fermer136
Kevin KoflerLe 15/09/2010 à 17:51
Folco (./134) :
Comment ça se passe au niveau des registres ?

C'est un appel de fonction comme un autre.
Est-ce que la callback attend que les registre a2-a6/d3-d7 aient les même valeurs qu'au moment où P
a appelé la fonction de L ?

Non.
Ou est-ce que L
peut modifier ces registres à sa guise avant d'appeler C ? (du moment qu'elle les restaure avant le return vers P évidemment)

Oui.
En fait, je ne sais pas où chercher ces fonctions, je ne comprends même pas les expressions __attribute__((stkparm)) ou autres au niveau de la syntaxe C...

__attribute__((stkparm)) veut dire que tous les paramètres sont passés par la pile, c'est la convention d'appel par défaut (mais généralement la moins efficace). Pour un callback, il est important d'utiliser une convention d'appel standard parce que la fonction L doit connaître la convention d'appel utilisée, c'est pour ça qu'on utilise généralement stkparm pour ça (cf. aussi la macro CALLBACK).