Hat dir diese Antwort geholfen?
Ich habs mir auch nur aus dem Netz zusammengesucht...
%0 ist der erste Parameter für das movl, %%eax der zweite. Source und Destination sind nämlich genau andersrum als bei der Intel-Syntax.
%0 ist der 0. externe Parameter (hier das n), diese müssen später noch definiert werden.
Nach dem ersten Doppelpunkt stehen (externe) Output-Parameter, d.h. wenn du das Ergebnis wieder in einer Variable speichern willst, musst du die hier "deklarieren".
Nach dem zweiten Doppelpunkt stehen (externe) Input-Parameter. Ich gebe dem n aus dem Programm drumrum den Namen "a". Warum man dem Teil nen (anderen) Namen geben muss, wenn man das sowieso nur über den Index anspricht (hier 0) weiß ich auch nicht. Ebenso wie ich auch nicht weiß, warum man bei dem einen Parameter ein % und bei dem anderen zwei %% braucht.