utilisation de carry

utilisation de carry - ASM - Programmation

Marsh Posté le 13-07-2004 à 20:55:44    

Bonjour,
 
j'ai un algo j'aimerais des explications sur quelque lignes.
 

Code :
  1. Programme Générateur Pseudo Aléatoire
  2. Début :
  3.      BH <- 12h
  4. boucle:
  5.     AL <- BH
  6.     Si (AL = 0) alors AL <- 0FFh Fin Si (cmp et Jxyz, le h signifie hexadécimal en assembleur)
  7.     AL <- AL ET 0B8h (utiliser l'instruction AND de l'assembleur)
  8.     BL <-0
  9.    CX <- 8
  10.    Répéter
  11.      Décaler AL à droite de 1 rang (utiliser l'instruction SHR de l'assembleur)
  12.      Si Carry = 1 alors BL <- BL + 1 Fin Si
  13.      CX <- CX-1
  14.    Jusqu'à CX = 0 (utiliser l'instruction LOOP de l'assembleur)
  15.    Carry <- Bit 0 de BL (utiliser l'instruction SHR de l'assembleur)
  16.    rotation de BH à droite avec le carry de 1 rang (utiliser l'instruction RCR)
  17. Aller à l'étiquette boucle (instruction jmp de l'assembleur)
  18. Fin


 
 
 
je ne comprends pas cette partie

Code :
  1. Carry <- Bit 0 de BL (utiliser l'instruction SHR de l'assembleur)
  2.    rotation de BH à droite avec le carry de 1 rang (utiliser l'instruction RCR)
  3. Aller à l'étiquette boucle (instruction jmp de l'assembleur)


 
 
 
Qqn pourrait m'expliquer
 
merc

Reply

Marsh Posté le 13-07-2004 à 20:55:44   

Reply

Marsh Posté le 13-07-2004 à 21:38:18    

ben c'est pas compliqué:
 
shr bl, 1   ; décale BL vers la droite d'une position, le bit qui "sort" à droite se retrouve dans le carry; le bit qui "rentre" à gauche est un 0.
rcr bh, 1   ; décale BH vers la droite d'une position, le bit qui "rentre" à gauche est le carry, le bit qui "sort" à droite est le nouveau carry.
 
Pour te faire réfléchir un peu, ceci est équivalent (à ceci près que le carry vaut tjs 0 à la fin):
ror bx, 1
and bx, 0F7h

Reply

Marsh Posté le 10-12-2004 à 13:36:10    

j'aurais pensé plutôt que c'était équivalent à  
ror bx, 1
and bl, 7fh
mais je dois mal réfléchir

Reply

Marsh Posté le 10-12-2004 à 14:26:03    

toutafé db__ vu que la carry est insérée à gauche.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed