Les Snippets

Connexion

Conversion unités/octets

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 30/07/2006 05:40:33 et initié par PCPT [Liste]
Date de mise à jour : 30/07/2006 05:51:42
Vue : 10623
Catégorie(s) : Trucs & Astuces
Langages dispo pour ce code :
- VB6, VBA
- Assembleur x86
- Voir tous les langages pour ce code snippet



Langage : Assembleur x86
Date ajout : 31/07/2006
Posté par _dune2_ [Liste]
;// Tableau repris de 'Coke Hax':
 ;//Nom      |o | Ko | Mo | Go | To | Po | Eo | Zo | Yo
 ;//         |¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
 ;//Position |0 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08
 
 .section .data
 pos_depart:    .long 1;                     // position d'unité de départ
 pos_finale:      .long 3;                     // position d'unité final
 valeur:            .long 1024*1024*25; // valeur à convertir
 
 .section .text
 unit:
     mov pos_depart,%ecx;    // charge position finale dans ECX
     sub    pos_finale,%ecx;   // calcul la différence d'exposant (depart-finale) dans ECX
     mov    $10,%eax;            // ajustement en produits de *2^10 (*1024)
     mul    %ecx;                    // -> *2^10
     mov %eax,%ecx;            // on remet le resultat dans ECX pour faire des décalages de bits
     cmp $0,%ecx;                 // le resultat de mul et de mov ne permettent pas tester SF.
     jl    diviser;                      // si c'est négatif, il faut diviser par un multiple de 2
 multiplier:                            // si c'est positif, il faut multplier par un multiple de 2
     sall %cl,valeur;               // on multiplie EDX par 2^CL (CL=LSB de ECX ce qui largement suffisant)
     jmp    fin;                        // on saute la division
 diviser:                               //
     neg  %ecx;                    // on ramene ECX positif
     sarl %cl,valeur;              // on divise EDX par 2^CL (CL=LSB de ECX ce qui largement suffisant)
 fin:                                    // Fin du programme, EDX contient le résultat ...
 

Remarque :
Les indexes d'unités sont repris du tableau de 'Coke Hax' pour conserver l'esprit.
L'utilisation d'indexes en multiple de 10 simplifierai grandement le code puisque la multiplication disparaitrait (suppression de "mov $10,%eax;" jusqu'à "cmp $0,%ecx;" inclus).

Snippets en rapport avec : Taille, Conversion, Octets



Codes sources en rapport avec : Taille, Conversion, Octets

{Visual Basic, VB6, VB.NET, VB 2005} TRADUCTEUR VB6.VBP EN VB5.VBP
Ben oui ! Il y a encore des utilisateurs de VB5. C'est ce qui m'a amené à faire ce petit programm...

{Visual Basic, VB6, VB.NET, VB 2005} TAILLE D'UN LECTEUR OU D'UN REPERTOIRE EN OCTETS
Ces lignes de code permetent de retourner la taille(en octet) d'un lecteur logique,ou d'un répertoir...

{Delphi} CONVERSION D'UN NOMBRE COMPRIS 0 ET 999999999999999999 (18 CHIFFRES) EN LETTRES
Unité capable de convertir un nombre compris 0 et 999999999999999999 qui peut etre utile pour des a...

{Delphi} CONVERSION DE TEMPERATURE
c'est une application qui vous permette de converetire les temperatures entre differentes unités c'...

{Python} CONVERSION ET COMPARAISON D'ENTIER RELATIFS EN BINAIRE
Slt! J'ai écri une fonction qui permet de convertir à la fois deux entiers relatifs en binaire sur k...

{Visual Basic, VB6, VB.NET, VB 2005} ANALYSE IP
analyse une adresse ip. donne le classe de l'adresse ip, ainsi que divers renseignement. et il tra...

{C / C++ / C++.NET} CXIMAGE LIB
lib example load les fichier format BMP, JPEG, GIF, PNG, TIFF, MNG, ICO, PCX, TGA, WMF, WBMP, JBG...

{PHP} CONVERSION RGB <-> TSL
J'ai cherché sur tous les sites comment passer du mode RGB à TSL et ci-ce-versa sans résultat. Puis...

{JAVA / J2EE} ROMANOP : UN UTILITAIRE POUR LES NOMBRES ROMAINS (CONVERSION ROMAN -> ENTIERS, ENTIERS -> ROMAINS, CALCULS...)
Voici une utilitaire sur les nombres romains. Il permet la conversion de nombres romains vers les en...

{Graphisme} EXPORT DE FICHIER AUTOCAD VERS WMF ET DXF (EN LOT)
Ayant besoin d'exporter une bonne quantité de dessins dans différents formats, j'ai fait ce petit bo...