Asm 8086 avec coprocesseur

Signaler
Messages postés
22
Date d'inscription
mercredi 31 mars 2004
Statut
Membre
Dernière intervention
20 septembre 2006
-
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
-
Je suis étudiant et j'ai un petit projet en assembleur qui consite à faire

bouger une balle à l'écran en mode graphique avec rebond sur les bords et

tout... bref passionnant. Je programme avec TASM pour du 8086 je crois avec

utilisation du timer et donc d'interruption et du coprocesseur.

Pour calculer la position de la boule j'utilise des calculs avec le

coprocesseur. Le résultat (entier) se retrouve finalament dans ST(0) et je

souhaite le stocker dans une variable pos (dw) :

fild x[bx]
fild y[bx]
fld largeur[bx]
fmul ST(0),ST(1)
fadd ST(0),ST(2)
fistp pos ; c'est là le problème

en vérifiant la valeur dans le coprocesseur et la zone mémoire écrite je

m'aperçois que la valeur et différente et surtout que pos est constante

quelques soit la valeur dans ST(0)...

Bref je bloque et c'est dommage car c'est presque le fin de mon projet... Si

quelqu'un s'y connait mieux que moi... please master hemoilp me....
A voir également:

3 réponses

Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
25
fistp dword ptr[pos]
Vois si va bon avec TASM, je ne l'emplois pas.

ciao...
BruNews, Admin CS, MVP Visual C++
Messages postés
22
Date d'inscription
mercredi 31 mars 2004
Statut
Membre
Dernière intervention
20 septembre 2006

Merci beaucoup ça marche trés bien et maintenant ma petite boule bouge comme il faut selon l'angle...

Mais si j'osais je demanderais quelques explications. "Fistp" je connais "Dword" aussi mais "Ptr" est inconnu pour moi... Et pourquoi est-ce que ça ne marchait pas avec mon écriture ? Ou même en passant par un registre ?

Bref Merci beaucoup en tout cas. Je promets que si je finis j'enverrais mes sources et tout le monde pourra profiter de cette merveilleuse animation...

moi
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
25
fistp peut storer en plusieurs formats de taille (16, 32 ou 64 bits), faut donc lui indiquer.
aurait pu etre:
fistp qword ptr[esp+12]
par exemple

ciao...
BruNews, Admin CS, MVP Visual C++