여기에 좀 더 넓은 대답을하겠습니다.
일반적으로 86 조건부 점프의 두 가지 유형이 말하는 :
산술 점프 - JZ 같은 (점프 제로 경우), JC (점프 캐리 경우), JNC (수행하지 않을 경우 점프) 등 .
비교 점프 - JE (점프 동일한 경우), JB (점프 아래 경우) JAE (점프 상기거나 같은 경우) 등
는
따라서 만 연산 후의 제 1 타입을 사용 또는 논리적 인 지시 TIONS :
sub eax, ebx
jnz .result_is_not_zero
and ecx, edx
jz .the_bit_is_not_set
는 CMP 명령 후 두 번째 그룹을 사용
cmp eax, ebx
jne .eax_is_not_equal_to_ebx
cmp ecx, edx
ja .ecx_is_above_than_edx
이 방법을, 프로그램은 더 읽기되고 당신은 혼동되지 않습니다.
때때로 이러한 지침은 실제로 동의어입니다. JZ == JE; JC == JB; JNC == JAE 등등. 전체 테이블은 다음과 같습니다.당신이 볼 수 있듯이, 16 조건부 점프 명령하지만, 30 니모닉이 있습니다 - 그들은 더 많은 읽을 수있는 소스 코드를 생성 할 수 있도록 제공됩니다하지 제로 (0 경우 JNZ가 점프를 의미하는 것처럼 보인다 처음
Mnemonic Condition tested Description
jo OF = 1 overflow
jno OF = 0 not overflow
jc, jb, jnae CF = 1 carry/below/not above nor equal
jnc, jae, jnb CF = 0 not carry/above or equal/not below
je, jz ZF = 1 equal/zero
jne, jnz ZF = 0 not equal/not zero
jbe, jna CF or ZF = 1 below or equal/not above
ja, jnbe CF or ZF = 0 above/not below or equal
js SF = 1 sign
jns SF = 0 not sign
jp, jpe PF = 1 parity/parity even
jnp, jpo PF = 0 not parity/parity odd
jl, jnge SF xor OF = 1 less/not greater nor equal
jge, jnl SF xor OF = 0 greater or equal/not less
jle, jng (SF xor OF) or ZF = 1 less or equal/not greater
jg, jnle (SF xor OF) or ZF = 0 greater/not less nor equal
@nrz 귀하의 의견은 분명하지 않습니다 - 진술서를보고 실수로 깨닫게 될 OP가 정말 정말 열심히입니까? –
@nrz Jeez 남자는 나를 더 혼란스럽게하려고합니까?!?! 다른 답변에서 JNZ의 경우 점프는 제로 플래그가 (0) –
@ 43.52.4D로 설정되지 않은 경우에만 발생한다는 것을 알았습니다. 죄송합니다. "JNZ - Z 플래그가 0이 아닌 경우 점프가 발생합니다."라는 문장을 읽으므로 결과가 혼동 스럽기 때문에 지금 삭제했습니다. [Intel x86 JUMP 빠른 참조] (http://www.unixwiz.net/techtips/x86-jumps.html)에는 여러 x86 조건부 점프의 분기 조건을 확인하는 유용한 테이블이 있습니다. – nrz