Du point de vue du programmeur, le processeur à virgule flottante (FPU : floating point unit) est une unité distincte du processeur central (CPU: central processing unit). Il existe bien entendu des « ponts » entre les deux, mais chacun a ses propres registres et son propre jeu d'instructions.
Ceci est encore un héritage de l'époque du 8086 qui était limité aux instructions sur les entiers signés et non-signés, auquel on pouvait adjoindre un second processeur, le 8087 que l'on appelait coprocesseur arithmétique.
Lorsque l'on a intégré les instructions et registres à virgule flottante, il a été décidé de préserver la compatibilité avec les logiciels écrits pour des machines à 2 processeurs 8086 et 8087.
Le FPU possède 8 registres de 80 bits chacun (1 bit pour le signe, 15 bits pour l'exposant, 64 bits pour la mantisse). Ces 8 registres ne sont pas adressables directement comme dans le cas de l'unité d'arithmétique entière. Ils constituent une pile de registres, que l'on nommera %st(0), %st(1), ..., %st(7). %st(0) désigne le sommet de la pile (c'est à dire le dernier élément empilé) et %st(i) désigne le i-ème élément de la pile de registres.