FORUM D’ENTRAIDE INFORMATIQUE (FEI)
Site d’assistance et de sécurité informatique

Entraide pour le programmation en général (tous langages).
Règles du forum : Entraide concernant la programmation informatique en général, tous langages : recherche ou correction d'un code ou d'une fonction, aide à la réalisation d'un projet...
Pour la programmation web (HTML, CSS, PHP, MySQL...), il est conseillé de s'orienter dans le forum Webmastering.
Merci de lire et de respecter la charte générale du forum.
  • Avatar du membre
Avatar du membre
par OrKaraz
#217224
Bonjour,

Sauf mauvaise recherche de ma part, je n'arrive pas à trouver une réponse à mon problème.
Habituellement je développe en assembleur, mais la mon projet est trop grand pour me le permettre.
Pour faire simple, dans mon algorithme je souhaite faire un décalage à gauche d'une variable 8 bits et regarder si j'ai la retenue qui est définie.
Code : Tout sélectionner
unsigned char var;

// code

var <<=1;
if (carry = 1) {
    // code
}

Pour le moment je ne trouve pas de réponse efficace à mon problème après avoir tester avec une variable 16bits et un ensemble de structure et d'union.

Le code assembleur résultant est comme suis : (même résultats sur tous mes tests)
Code : Tout sélectionner
	.dwpsn	file "../src/libILI9341.cpp",line 186,column 13,is_stmt,isa 0
        RLA.W     r14                   ; [] |186| 
	.dwpsn	file "../src/libILI9341.cpp",line 187,column 13,is_stmt,isa 0
        MOV.W     r14,r15               ; [] |187| 
        SWPB      r15                   ; [] |187| 
        MOV.B     r15,r15               ; [] |187| 
        TST.B     r15                   ; [] |187| 
        JNE       $C$L18                ; [] |187|
Or il est possible en utilisant la retenue (je n'ai pas besoin de garder l'intégrité de la donnée, je souhaite juste observer chaque bits un par un) :
Code : Tout sélectionner
	.dwpsn	file "../src/libILI9341.cpp",line 186,column 13,is_stmt,isa 0
        RLC.B     r14                   ; [] |186| 
        JNC       $C$L18                ; [] |187|
Cette action économise de la flash (8 octets) et de l'horloge (4 cycles).

Avez vous des connaissance sur ce sujet ?

En vous remerciant.

Bonjour, Sauf mauvaise recherche de ma part, je n[…]

(logiciel) album Photos

Bonjour, comment peut-on créer un album pho[…]

Bonjour, J'ai récemment changé de c[…]

Bonjour, je viens vers vous, j'ai essayé p[…]