Section courante

A propos

Section administrative du site

Assembleur 80x86

REPE

INTEL 8088+ Repeat equal

Syntaxe

REPE chaine_d'instruction_paramètre

Description

Cette instruction est utilisé comme préfixe avec d'autres instructions pour effectuer des répétitions d'instructions jusqu'à ce que CX = 0 ou tant que l'indicateur ZF = 0.

Algorithme

SI OpCode est [ INS, INSB, INSD, INSW, LODS, LODSB, LODSD, LODSQ, LODSW, MOVS, MOVSB, MOVSD, MOVSQ, MOVSW, OUTS, OUTSB, OUTSD, OUTSW, STOS, STOSB, STOSD, STOSQ, STOSW ] ALORS
   FAIRE TANT QUE CX ≠ 0 OU ZF ≠ 0
      Exécute instruction_paramètre
      CX ← CX - 1
   FIN DE FAIRE
FIN SI
SI OpCode est [ CMPS, CMPSB, CMPSD, CMPSQ, CMPSW, SCAS, SCASB, SCASD, SCASW ] ALORS
   FAIRE TANT QUE CX ≠ 0 OU ZF ≠ 0
      Exécute instruction_paramètre
      CX ← CX - 1
   SI ZF = 0 ALORS Fin de boucle
   FIN DE FAIRE
FIN SI

Mnémonique

Instruction Opcode Description
REPE autreinstruction F3h autreinstruction Cette instruction est utilisé comme préfixe avec d'autres instructions pour effectuer des répétitions d'instructions jusqu'à ce que CX = 0 ou tant que l'indicateur ZF = 0.

Exemple

Voici un exemple, en Turbo Pascal, permettant d'effectuer la comparaison de chaine de caractères à l'aide de l'instruction «REPE» :

  1. Program RepeSamples;
  2.  
  3. Const
  4.  X:String='ABC';
  5.  Y:String='ABC';
  6.  Z:String='DEF';
  7.  
  8. Function Compare(Const Source,Dest;Len:Word):Boolean;Assembler;ASM
  9.  MOV CX,Len
  10.  JCXZ @0
  11.  PUSH DS
  12.   LDS SI,Source
  13.   LES DI,Dest
  14.   CLD
  15.   REPE CMPSB
  16.  POP DS
  17.  JZ  @0
  18.  MOV CL,1
  19. @0:
  20.  XCHG AX,CX
  21.  XOR AL,1
  22. END;
  23.  
  24. BEGIN
  25.  WriteLn(Compare(X,Y,4));
  26.  WriteLn(Compare(X,Z,4));
  27. END.

on obtiendra le résultat suivant :

TRUE
FLASE

Voir également

Instruction assembleur 80x86 - Instruction REPZ

Références

Assembleur Facile, Philippe Mercier, 1990, ISBN: 2-501-01176-7, page 414
Le livre d'Or PC, Martin Althaus, 1992, ISBN: 2-7361-0934-1, page 828
Intel® 64 and IA-32 Architectures Software Developer’s Manual Volume 2B: Instruction Set Reference, N-Z, Edition Intel, Mars 2010, Publication No. 253667-034US, page 361 à 365.

Dernière mise à jour : Lundi, le 1 septembre 2014