Přidáno 1 461 bajtů,
4. 1. 2013, 17:13 ;Instrukce
: LOOP - cyklus řízený registrem CX
;Časování
: 8 (80286), 11 (80386)
;Popis
: Instrukce LOOP dekrementuje registr [[CX]] o 1. Žádne příznaky nejsou ovlivněny. Po dekrementování jsou testovány podmínky pro instrukci [[LOOPx|LOOP]] (viz syntaxe) a pokud jsou splněny, je proveden skok uvnitr segmentu na místo specifikované operandem instrukce [[LOOPx|LOOP]]. Tento operand musí ležet (jde o návestí!) v rozsahu 128 byte před instrukci [[LOOPx|LOOPx]] až 127 byte za instrukci [[LOOPx|LOOP]].
;Syntaxe
: LOOP short_target - přímy skok
: LOOPE short_target - skok jestli je predešlí compare roven (equal)
: LOOPZ short_target - skok jestli je predešlí compare není roven (zero)
: LOOPNZ short_target
: LOOPNE short_target
;Ovlivňuje příznaky
: žádné
;Nedefinované příznaky
: žádné
;Výjimky v privilegovaném módu
: Je generovaná všeobecná výjimka ochrany při pokusu o skok na adresu s offsetem mimo hranice aktuálního kódového segmentu [[CS]].
;Příklad
MOV CL, 04H
AGAIN: ADD BX, 01H
ADD AL, INFO[BX]
DAA
LOOP AGAIN
MOV CX, 12H
NEXT: INC BX
CMP TABLE[BX],0
LOOPE NEXT
; jen pro 80386
MOV ECX, 0ABCDEH
REPEAT: INC BX
MOV AL, TABLE_A[BX]
ADD AL, TABLE_B[BX]
MOV TOTAL[BX], AL
LOOPNZ REPEAT
[[Category:Assembler]]
[[Category:Instrukce mikroprocesoru 80386]]