В x86 ассемблере как можно установить нулевой флаг (ZF) без выполнения операции сравнения?

У меня есть небольшой кусок (x86) сборки, который я пытаюсь понять, что он делает.

...
 6:     81 ec 00 01 00 00       sub    $0x100, %esp
 c:     31 c9                   xor    %ecx  , %ecx
 e:     88 0c 0c                mov    %cl   , (%esp, %ecx, 1)
11:     fe c1                   inc    %cl
13:     75 f9                   jne    0xe
....

Похоже, что цикл выполняется до тех пор, пока "JNE" не будет оценен как false, т.е. нулевой флаг = 0. (возможно, он помещает числа 1, 2, 3 ... в стек???)

Из моего короткого исследования ассемблера (я новичок в этом) следует, что нулевой флаг устанавливается путем выполнения операции сравнения (CMP), но я не вижу операции сравнения.

Итак, при каких условиях он выйдет из этого цикла?

8
задан Jay Kominek 6 December 2011 в 17:35
поделиться