Otevřít hlavní menu

Změny

LOOP - cyklus řízený registrem CX

Přidáno 1 461 bajtů, 4. 1. 2013, 17:13
Vytvorená stránka „;Instrukce : LOOP - cyklus řízený registrem CX ;Časování : 8 (80286), 11 (80386) ;Popis : Instrukce LOOP dekrementuje registr CX o 1. Žádne příznaky nejs...“
;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]]