loop
just like dec ecx / jnz
except that it does not set flags .
This is like the lower part do{} while(--ecx != 0);
in C. If execution enters cycle c ecx = 0
, a cyclic transition means that the cycle will execute 2 ^ 32 times. (Or 2 ^ 64 times in 64-bit mode because it uses RCX).
Unlike rep movsb/stosb/etc.
, it does not check ECX = 0 before decreasing, but only after.
, CX, ECX RCX. , 64- addr32 loop
dec ecx / jnz
, loop
dec rcx / jnz
. 16- CX, (0x67
) ecx
. Intel, REX.W, , .
: " do... while " ( )?, asm, while(){}
do{}while()
.
- , : PDF PDF Intel html (http://felixcloutier.com/x86/), , HTML , , , , , " " , add
.
( ) - : . ecx
, ecx=1
. . - x86, , asm.
, , , , ecx
, . , , loop
ecx
. ( / , , . push
/pop
.)
LOOP
, - . LOOP
- , .
, , . . ( , ; 22.) dec / jnz
, . (. http://agner.org/optimize/, , .)
; , , - . ( loop
- , - , .) cx
cmp
/jcc
, .
IMO, loop
x86, . stosd
( rep
), aam
xlatb
. , . ( (, ), , code golf.)
, /, . - , loop
. , - : " , ", , loop
- .
</rant>
. , loop
- . , 8086.