[assembleur] carry

bolo972 Messages postés 87 Statut Membre -  
 Utilisateur anonyme -
Bonjour,

j'ai un algo j'aimerais des explications sur quelque lignes.
Programme Générateur Pseudo Aléatoire
Début :
     BH <- 12h
boucle:
    AL <- BH
    Si (AL = 0) alors AL <- 0FFh Fin Si (cmp et Jxyz, le h signifie hexadécimal en assembleur)
    AL <- AL ET 0B8h (utiliser l'instruction AND de l'assembleur)
    BL <-0
   CX <- 8
   Répéter
     Décaler AL à droite de 1 rang (utiliser l'instruction SHR de l'assembleur)
     Si Carry = 1 alors BL <- BL + 1 Fin Si
     CX <- CX-1
   Jusqu'à CX = 0 (utiliser l'instruction LOOP de l'assembleur)
   Carry <- Bit 0 de BL (utiliser l'instruction SHR de l'assembleur)
   rotation de BH à droite avec le carry de 1 rang (utiliser l'instruction RCR)
Aller à l'étiquette boucle (instruction jmp de l'assembleur)
Fin


je ne comprends pas cette partie
 Carry <- Bit 0 de BL (utiliser l'instruction SHR de l'assembleur)
   rotation de BH à droite avec le carry de 1 rang (utiliser l'instruction RCR)
Aller à l'étiquette boucle (instruction jmp de l'assembleur)


Qqn pourrait m'expliquer

merci
A voir également:

1 réponse

Utilisateur anonyme
 
Salut,

Bon je suis pas sur, mais je me suis dit qu'en explicant
ce que j'en comprends tu y trouverais peut-être ton
compte.

Carry <- Bit 0 de BL (utiliser l'instruction SHR de l'assembleur)

La valeur du carry bit du registre est défini par l'opération BL
qui doit être "branch long" ou quelque chose du genre. Je ne
connais pas l'instruction SHR ? "shifthighregister"?

Sur un test BL, BLO,BLH le résultat est envoyé dans le carry
bit pour savoir si l'on doit brancher dans un sens ou dans l'autre.

rotation de BH à droite avec le carry de 1 rang (utiliser l'instruction RCR)

ici une rotation à droite est une division par 2 de BH, pour décaler
dans un sens ou dans l'autre (multiplié/divisé), il faut conserver
la retenu pour l'insérer dans le décalage. RCR "RotateCarryRight"
(calcul binaire, addittion,soustraction,multiplication,division,
complément à 1 et complément à 2).

Aller à l'étiquette boucle (instruction jmp de l'assembleur)

Le travail est terminé, retourne au main.

Lupin
0