Posez votre question Signaler

[assembleur] carry

bolo972 87Messages postés 5 février 2003Date d'inscription - Dernière réponse le 14 juil. 2004 à 04:44
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
Lire la suite 

[assembleur] carry »

1 réponses
Réponse
+0
moins plus
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
Ajouter un commentaire
Ce document intitulé « [assembleur] carry » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook