Jump to content
Jagware

Azrael

Administrators
  • Content count

    675
  • Joined

  • Last visited

Posts posted by Azrael


  1. Je suppose que personne ici n'a acces au PDF a cette adresse :

     

     

     

    ICI

     

    Edit : J'ai modifie le message sinon RaZ allait me tuer pour avoir demoli la mise en page...

     

     

     

    Edit Edit : ben non, serait-ce un bug pour des url trop longues ?

     

     

     

    Edit Edit Edit : modifiee one more time


  2. CTS, au lieu de faire un trois MMULT il n'est pas plus judicieux de faire trois (IMULTN, IMACN, IMACN et RESMAC) ? En oubliant bien sur les translations.

     

     

     

    Je vois aussi que tu as un calcul de racine carree, tu utilises quelle sorte de routine ? Pour ma part je fais une table de precalcul.


  3. C'est la meme explication que SCPCD :

     

     

     

    ex sur 8bits :

     

    non signé :

     

    00000110 = 6 shl 1

     

    -> 00001100 = 12

     

     

     

    signé :

     

    11111101 = -3 shl 1

     

    -> 11111010 = -6

     

     

     

    Je rajouterai qu'un SHA vers la droite te complete avec des bits 1 a gauche, comme ca ton nombre reste negatif.

     

     

     

    Avec ton exemple : 10111101 avec un decalage a gauche le chiffre passe au positif, ok, mais je dirais aussi que tu a un depassement de capacite, avec 32 bits faut quand meme le faire.


  4. Je veux pas trop jouer mon chieur, mais d'après ta propre traduction IMULT est une multiplication signee alors que MULT n'est pas signee, donc le pied serait quand meme d'avoir un IDIV et pas un DIVS.

     

     

     

    Ceci dit on a un petit probleme avec la routine precedente. La multiplication prend des registres de 16 bits alors que la division en prend de 32 bit. Bref, quand on evalue le bit de signe c'est avec des registres de 16 bits. Il faudrait faire un decalage de chaque registre a multiplier pour avoir le bit de signe au bon endroit... ou bien le bit de signe est toujours en position 32 meme pour des entiers codes sur 16 bits ? Si la reponse a derniere question est vrai, alors la routine doit marcher... En fait je crois que ca marche, sinon c'est un enfer a coder... J'ai rien dit, vous pouvez aller mater la tele tranquille... moi je retourne me coucher.


  5. encore plus court, mais peut etre pas plus rapide :

     

     

    movei #$80000000,r20

     

     

     

    move r1,r3

     

    mul r2,r3 ; on fait une petite mul pour recuperer signe de r1*r2

     

    and r20,r3 ; on récup juste le bit de signe de r3 dans r3

     

     

     

    abs r1 ; Absolution de r1 !!

     

    abs r2 ; Absolution de r2 !!

     

     

     

    div r1,r2 ; on divise r2 par r1

     

     

     

    or r3,r2 ; on rajoute le signe...

     

×