Salut.
instr=(code<<27)+(valeurRd<<22)+(valeurRn<<17)+(Imm<<16)+(valeurS<<0);
Quelle est ta formule pour calculer le décalage des bits ? Tu ne nous l'expliques pas.
Un coup, il y a un décalage de 0, puis de 16 (+16), puis de 17 (+1), puis de 22 (+5), puis de 27 (+5).
On ne peut hélas pas deviner.
A quoi correspondent les variables de ta formule ? Je suppose que ces valeurs sont contenues dans le tableau "reg". Mais tu ne précises pas, on ne peut donc que supposer.
Si on suit la logique de ton code, au nième passage de la boucle, le décalage de bit correspondra à :
pos -> decal
0 -> 7 [on démarre avec un décalage de 7 bits ; position 0 du tableau]
1 -> 6
2 -> 5
3 -> 4
4 -> 3
5 -> 2
6 -> 1
7 -> 0
8 -> 7 [on démarre à nouveau avec un décalage de 7 bits ; position 1 du tableau]
9 -> 6
(...)
... ce qui semble ne pas être cohérent avec ta formule.
Sans autres explications, on ne peut pas t'aider.
Partager