User Tag List

Results 1 to 5 of 5

Thread: Lecture int non alignés dans Binary object

  1. #1
    Clicker Fusion 2.5 DeveloperInstall Creator Pro

    Join Date
    Sep 2006
    Posts
    517
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Lecture int non alignés dans Binary object

    Bonjour,
    Comment se passe la lecture des entiers (long et short) dans l'objet <span style="font-weight: bold">Binary object</span> lorsque ces valeurs ne sont pas alignées ? (par exemple lecture d'un long/short à l'offset 3)

    Comme Binary object permet de sélectionner l'ordre des bytes (big endian, little endian), je suppose qu'il y a une routine maison de lecture d'entiers et donc qu'elle ne repose pas directement sur la lecture faite par le processeur (ex: byte par byte avec décalage de 8 bits).

    Je me fais du souci étant donné que certains processeurs ARM que j'ai eu la chance de toucher font une rotation des bytes lors d'un accès non aligné [img]<<GRAEMLIN_URL>>/crazy.gif[/img] et j'aimerai éviter des soucis par la suite tout en compressant les données au maximum (éviter d'ajouter des bytes de padding).

    ouly

  2. #2
    Clicker Fusion 2.5 DeveloperInstall Creator Pro

    Join Date
    Sep 2006
    Posts
    517
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Re: Lecture int non alignés dans Binary object

    Bon, même si <span style="font-weight: bold">Binary object</span> lit directement en mémoire, il semblerait que les processeurs Intel ne requièrent pas un alignement naturel pour les int, etc. :

    Intel Architecture Software Developer’s Manual, Vol. 1 : http://download.intel.com/design/Pen...s/24319002.PDF
    <div class="ubbcode-block"><div class="ubbcode-header">En réponse à:</div><div class="ubbcode-body">Words, doublewords, and quadwords do not need to be aligned in memory on natural boundaries. (The natural boundaries for words, double words, and quadwords are even-numbered addresses, addresses evenly divisible by four, and addresses evenly divisible by eight, respectively.)

    However, to improve the performance of programs, data structures (especially stacks) should be aligned on natural boundaries whenever possible. The reason for this is that the processor requires two memory accesses to make an unaligned memory access; whereas, aligned accesses require only one memory access. A word or doubleword operand that crosses a 4-byte boundary or a quadword operand that crosses an 8-byte boundary is considered unaligned and requires two separate memory bus cycles to access it; a word that starts on an odd address but does not cross a word boundary is considered aligned and can still be accessed in one bus cycle.</div></div>

    Donc on peut considérer le sujet comme clos [img]<<GRAEMLIN_URL>>/smile.gif[/img]

  3. #3
    Clickteam Clickteam

    Join Date
    Jun 2006
    Location
    France
    Posts
    14,022
    Mentioned
    279 Post(s)
    Tagged
    3 Thread(s)

    Re: Lecture int non alignés dans Binary object

    C'est exact mais si possible il vaut mieux aligner les int en mémoire quand même. D'une part comme indiqué ci-dessus ça accélère les accès, d'autre part si jamais on sort ultérieurement un runtime pour une machine à base de processeur ARM ou autre, alors l'application crashera (sauf si l'objet Binary est modifié en conséquence pour tester la parité des adresses).

  4. #4
    Clicker Fusion 2.5 DeveloperInstall Creator Pro

    Join Date
    Sep 2006
    Posts
    517
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Re: Lecture int non alignés dans Binary object

    Ok. Merci beaucoup Yves pour tes conseils !

  5. #5
    No Products Registered

    Join Date
    Oct 2007
    Posts
    215
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Re: Lecture int non alignés dans Binary object

    Bonjour, très cher ouly !
    Puisque tu m'as déjà grandement aidé et que tu parles ici du Binary Object, j'aimerais te demander un petit service grâce auquel tu pourras sûrement me faire avancer sans difficulté !
    Voilà, il me faudrait un fichier d'exemple contenant des données binaires [img]<<GRAEMLIN_URL>>/smile.gif[/img]. C'est aussi simple que ça !
    Merci d'avance !

Similar Threads

  1. Objets presents dans la liste alors que n'existent pas dans cette scene !
    By mig3 in forum Multimedia Fusion 2 - Technical Support
    Replies: 11
    Last Post: 20th December 2012, 07:33 AM
  2. soucis lecture de la vidéo dans l'application auto
    By dams in forum Multimedia Fusion 2 - Technical Support
    Replies: 4
    Last Post: 31st December 2011, 01:18 AM
  3. [bug] Clé de chiffrement dans binary object
    By ouly in forum Multimedia Fusion 2 - Technical Support
    Replies: 2
    Last Post: 13th November 2010, 01:19 PM
  4. [Bug] Binary object
    By Sphax in forum Extension Development
    Replies: 7
    Last Post: 17th May 2007, 10:04 AM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •