cts Posted November 9, 2005 Report Share Posted November 9, 2005 Bah non, au pire y'a que le dividende négatif, alors je fais ça: MACRO IDIV a,b abs jr CC,.pos~ div a, neg .pos~: ENDM ex pour les polygones pour calcul dx/dy, on s'arrange pour que dy soit positif (cas de l'inversion point haut/point bas du segment) ou pour la normalistation d'un vecteur, vx=vx/||v|| vy=vy/||v|| vz=vz/||v|| , la norme du vecteur v ||v|| est forcement positive. J'suis jamais tombé sur un cas positif/negatif Mais pitet qu'avec un XOR sur le bit de signe, on peut modifier la macros ci-dessus pour changer le signe du quotient seulement si -/+ ou +/- GT va nous arranger ça... Quote Link to comment Share on other sites More sharing options...
cts Posted November 9, 2005 Report Share Posted November 9, 2005 bon, allez, j'my colle: ; r0=dividende ; r1=diviseur move r0,r2 xor r1,r2 abs r0 abs r1 abs r2 ; bit de poids fort à 1 si une des operande est négative jr CC,.positif div r1,r0 neg r0 .positif: me semble correct... Quote Link to comment Share on other sites More sharing options...
GT Turbo Posted November 10, 2005 Author Report Share Posted November 10, 2005 cts : me semble correct... Pour ma part aussi, pour ceux qui ont pas encore l'habitude des sauts (Jr, Jump) faut savoir que l'instruction suivante est toujours exécuté quelque soit la condition du saut donc le div est toujours exécuté, le neg r0 ne sera exécuté que que si la condition de saut n'est pas bonne.GT P.S. : GT va nous arranger ça... Meme pas eu le temps Quote Link to comment Share on other sites More sharing options...
Azrael Posted November 10, 2005 Report Share Posted November 10, 2005 Merci CTS ! En 3D, dans le calcul de la matrice de changement de base tu n'as jamais eu de division negative ? En fait il se peut que le determinant a calculer soit toujours positif. Quote Link to comment Share on other sites More sharing options...
Recommended Posts