Je crois que vous méritez tous mieux que de l'assembleur inline pour plonger aux tréfonds du langage C.
Je vous offre ici quelque chose qui est certainement une extension gcc du C, mais c'est tellement beau ...
http://repository.sectionpc.info/C/change_eip2.c
Faire de l'arithmétique des pointeurs avec des adresses de code c'est amusant.
Bon, mais avec ça comme avec la version assembleur, c'est assez difficile d'écrire quoi que ce soit car même avec toutes les optimisations désactivées, gcc essaye d'éliminer les bouts de code mort et il a du mal à comprendre les saut en assembleur ou avec la technique que je montre ici et il supprime des bouts de code utile.
Par contre, je suis assez content car ça montre que contrairement à ce que j'ai cru, finalement, on n'a pas trop besoin de redescendre au plus bas niveau pour faire ce genre d'acrobatie.