MOAAA Le 31/12/2003 à 17:34 Bonjour tlm,
Je dois lire une valeur de 16 bits ou 32 bits depuis une addresse, celle-ci peut être paire ou impaire.
Bien entendu quand elle est impaire, ca me pète à la gueule :/
A par la lecture octet par octet , y a til un moyen de lire les données sans déclencher d'erreur ? Ou une implémentation particulièrement efficace.
Pour l'instant je fais, pour un mot sur 16bits:
value = (unsigned long)ptr&1 ? ((premier octet)<<8 | (second octet)) : *ptr
Ensuite pour écrire la valeur modifiée, la même chose en sens inverse:
if ((unsigned long)ptr&1) {
(second octet) = value;
(premier octet) = value>>8;
}
else
*ptr = value;
Débrouille-toi pour aligner ta donnée, c'est pas possible ?

Que cache le pays des Dieux ? -
Forum Ghibli -
Forum LittéraireLa fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.
Tu es à un octet près ? (en sachant qu'ajouter cet octet te fait gagner en place et en vitesse dans le programme)
Ceci dit c'est tio qui voit
C'est pour quoi faire exactement ?

Que cache le pays des Dieux ? -
Forum Ghibli -
Forum LittéraireLa fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.
Pourquoi pas utiliser du code 68k comme Quill?