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» :
- Program RepeSamples;
-
- Const
- X:String='ABC';
- Y:String='ABC';
- Z:String='DEF';
-
- Function Compare(Const Source,Dest;Len:Word):Boolean;Assembler;ASM
- MOV CX,Len
- JCXZ @0
- PUSH DS
- LDS SI,Source
- LES DI,Dest
- CLD
- REPE CMPSB
- POP DS
- JZ @0
- MOV CL,1
- @0:
- XCHG AX,CX
- XOR AL,1
- END;
-
- BEGIN
- WriteLn(Compare(X,Y,4));
- WriteLn(Compare(X,Z,4));
- END.
on obtiendra le résultat suivant :
TRUEFLASE
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