comment marche le fpu ? - ASM - Programmation
Marsh Posté le 16-04-2003 à 11:17:13
la fpu marche avec une pile
tu empile avec fld/fild, tu depile avec fstp/fistp
la pile est nomme via st. par exemple, st(0) correspond au dessus de la pile (TOS), st(1) au deuxieme element etc jusqu'a st(7)
les operations utilisent toujours le premier element de la pile
exemple :
fadd st(1) => st(0) += st(1)
pour les operations non commutative, tu dispose des fonctions "R"
exemple :
fsub st(1) => st(0) -= st(1)
fsubr st(1) => st(0) = st(1) - st(0)
C'est bien pratique
Pour terminer, tu as les fonctions "P" (pop)
par exemple :
faddp => tmp = st(0) = st(1), vire st(0) et st(1) de la pile, empile tmp
exemple culcul :
a = b + c -d;
fld c; //empile c
fsub d; //soustrait d au TOS
fadd b //ajoute b au TOS
fstp a; //stocke le TOS dans a et depile
Marsh Posté le 16-04-2003 à 13:47:53
merci chrisbk
tu aurais pas un lien ou je pourrais télécharger la doc du fpu ? j'ai essayé chez intel, mais y'a que les instructions. je n'ai pas vu de doc qui récapitule des explications comme celles que tu m'as donné par exemple
Marsh Posté le 16-04-2003 à 13:50:01
heuh ben fais des recherches google avec les noms d'instructions
(genre faddp st(0) x87) et pis voila.... Sinon, depuis le tpsm cherche voir le site "the art of assembly programming" ou qqchose approchant, tu auras tout ce que tu cherches
Marsh Posté le 16-04-2003 à 14:07:16
chrisbk a écrit : "the art of assembly programming" |
LA reference dans l'apprentissage de l'assembleur !
http://cs.smith.edu/~thiebaut/ArtO [...] HEADING3-1
Marsh Posté le 16-04-2003 à 14:17:41
chrisbk a écrit : par contre, pourquoi les gifs sont tout explose ? |
ben ouais, je sais pas ce qui se passe
mais ça reste un super site
Marsh Posté le 17-04-2003 à 13:45:02
ok, c'est un site sympa
j'ai essayé d'adapter la formule de la fractale de mandelbrot, mais j'y arrive pas, je me mélange avec la pile et les registres
Marsh Posté le 17-04-2003 à 13:51:19
jamais evident au debut, fo perseverer
A l'usage la FPU est bpc mois chiante a utiliser que l'alu (reg) grace au fonctions R (et aussi parce que les operations mul/div sont pas aussi merdique qu'en entier)
Marsh Posté le 17-04-2003 à 13:58:15
T'as vraiment du mal toi !
A chaque itération tu calcules la partie réélle et imaginaire :
Code :
|
ce qui nous donne en fpu x87 :
|
débrouille toi un peu hein, il suffit de s'y mettre !
edit: je te conseille quand tu codes avec la FPU de mettre en commentaires le contenu de la pile au fur et à mesure, tu t'y retrouveras beaucoup plus facilement
Marsh Posté le 16-04-2003 à 10:47:47
toujours dans mon apprentissage de l'assembleur, je souhaiterais avoir une explication sommaire du fonctionnement du fpu, qui a l'air différent du cpu
j'ai cru comprendre notamment que les registres correspondaient à la pile ??
je ne trouve aucune doc chez intel (ou j'ai mal cherché).
quelqu'un peut m'aider (devinez qui ? ) ou me donner un lien vers une doc ?
merci
---------------
Bougredane et bougre d'andouille ne font qu'un !