Beaucoup (la plupart?) Les compilateurs C ne se produisent à l'appui de inline assemblée, si elle ne fait pas partie de la norme. Cela dit, il n'y a pas de stricte nécessité d'un compilateur pour prendre en charge une telle chose.
Tout d'abord, reconnaître que l'assemblée est principalement de l'homme (semi-)lisible en code machine, et que C finit code machine de toute façon.
"En l'appelant" une fonction C génère simplement un ensemble d'instructions qui préparent les registres de la pile, et/ou dans certains autres dépendant de la machine mécanisme selon certaines établi convention d'appel, puis saute au début de la fonction appelée.
Un bloc de code assembleur peut être conforme à la convention d'appel appropriée, et donc de générer une goutte de code machine, une autre goutte de code machine qui a été initialement écrit en C est en mesure de les appeler. L'inverse est, bien sûr, également possible.
Les détails de la convention d'appel, le processus d'assemblage, et le processus de liaison (lien l'assemblée généré fichier objet avec le C-généré fichier objet) peut varier énormément entre les plates-formes, des compilateurs et des linkers. Un bon assemblée tutoriel pour votre plate-forme de choix sera probablement couvrir de tels détails.
J'arrive à la comme le x86 centrée sur le PC de l'Assemblée Tutoriel, qui traite spécifiquement de l'interfaçage de l'assemblée et du code C.