|
Bas de page | |
---|---|
Auteur | Sujet : Regrouper plusieurs registres en un seul |
Publicité | Posté le 22-03-2010 à 13:28:34 |
jagstang Pa Capona ಠ_ಠ | tu sans doute stocker tes bits dans un int ou autre et ensuite affecter/lire à coup de masques. --------------- What if I were smiling and running into your arms? Would you see then what I see now? |
esox_ch | Salut,
--------------- Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait |
snafu8 |
tes 4 bits sont packés et tu peux y accéder facilement. C'est pas trop ton problème ici, mais tu peux écrire ça par exemple :
pour construire des entiers alignés sur 9 bits. Message édité par snafu8 le 22-03-2010 à 15:14:06 |
esox_ch | Salut,
--------------- Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait |
Kenelm | Tu dois forcément avoir moyen d'appeler le registre dans son intégralité sans avoir à définir le truc bit par bit. De la même façon que t'as _RA0, _RA1 et compagnie, tu devrais avoir un _RA tout court. Forcément.
|
esox_ch | Salut, Le problème n'est pas là, j'ai accès à tout le registre. Le truc c'est que parfois je dois donner une valeur à plusieurs bits ne se trouvant pas dans le même registre (c'est pour cette raison que dans mon exemple j'ai parlé de _RD1 , _RE0 ,... Edit: Il s'agit d'un PIC32 de chez Microchip Message édité par esox_ch le 23-03-2010 à 10:44:03 --------------- Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait |
Kenelm | Aaaaaaaaaaaaaah...
|
esox_ch | D'accord ...
--------------- Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait |
Kenelm | Ben oui tu peux toujours faire des registres hybrides qui contiennent des bits qui se situent à plusieurs endroits différents, mais bon, tu vas plus te faire chier qu'autre chose... |
Publicité | Posté le 23-03-2010 à 12:36:09 |
esox_ch | Ah bon? C'est compliqué à utiliser ou bien c'est chiant à définir ?
--------------- Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait |
Joel F Real men use unique_ptr | les deux. Je vois pas ce que tu essaye de faire/gagner |
esox_ch | Salut,
--------------- Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait |
Kenelm | Ah bah tu fais une structure qui contient plein de pointeurs vers chaque bit et tu bidouille le bordel pour que ça marche. |
Joel F Real men use unique_ptr | des pointeurs sur des bits c'ets juste pas possible hein |
Riokmij Blink and you're dead | Mes souvenirs du C sont assez lointains, mais ce que tu veux faire, c'est pas possible avec une union ?
|
Kenelm | Oui c'est sûr ça s'arrête à l'octet D'où le "tu bidouilles le bordel" Et non l'union ça marche pas, les bits sont pas contigus en mémoire. Message édité par Kenelm le 23-03-2010 à 16:51:14 |
Riokmij Blink and you're dead | Ah ouais, effectivement, j'avais raté le message disant que les bits n'étaient pas forcément contigus. |
Joel F Real men use unique_ptr | wat :€ les bits si ils sont pas contigus en mémoire, je comrpends rien. L'unité atomique d'addressage etant l'OCTET ... |
abaddon2002 |
Non... ça dépend de l'architecture sur laquelle on travaille.. Sur certaines machines, on adresse des mots de 12, 14 bits... ça dépend.
est directement traduit en assembleur par une instruction qui met le bit 1 de rd à 1. ça évite de travailler sur le registre complet (qui lui en effet peut faire 8 bits ou une toute autre taille) avec des masques et on peut éventuellement gagner 1 ou 2 cycles machine.. Mais cette façon de faire est plus propre à l'assembleur qu'au C.
|
esox_ch | salut, Je comprend tout à fait ta remarque. Donc voilà le pourquoi du comment Message cité 1 fois Message édité par esox_ch le 23-03-2010 à 23:28:59 --------------- Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait |
Joel F Real men use unique_ptr |
|
abaddon2002 |
La solution la plus simple, à mon avis, consiste à faire un codeur. Une fonction pour la lecture, une autre pour l'écriture. La lecture c'est la même chose mais dans l'autre sens. Exemple :
Toutes les mémoires n'alignent pas nécessairement les bits sur des puissance de 2. Particulièrement chez microchip. Message édité par abaddon2002 le 24-03-2010 à 10:47:34 |
Joel F Real men use unique_ptr | je repee je parle de CONTIGUITE. Le bit (le BIT pas le BYTE) n est contigu aux bits n+1 et n-1. Alignement ou pas : E |
esox_ch | Merci à vous pour vos réponses fort instructives!
--------------- Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait |
abaddon2002 |
|
Joel F Real men use unique_ptr | ou ça ? |
abaddon2002 | Lors de ton intervention : "wat :€ les bits si ils sont pas contigus en mémoire, je comrpends rien. L'unité atomique d'addressage etant l'OCTET ..."
|
Publicité | Posté le |
Sujets relatifs | |
---|---|
Recaler du texte de plusieurs lignes contre une image | Colorbox - plusieurs thèmes en une page |
Selection et tri sur plusieurs tables avec memes colonnes | Remplir un tableau à plusieurs dimensions |
[RESOLU]Afficher le plus grand ID de plusieurs sous_id | [Résolu] htaccess change tout seul... |
[Résolu] Faire plusieurs requetes mysql en meme temps | afficher plusieurs éléments en une seule boucle |
Exécuter une macro dans plusieurs feuilles d'1 classeur | Aller à la fin d'une chaîne et insérer un ou plusieurs caractères |
Plus de sujets relatifs à : Regrouper plusieurs registres en un seul |