Vladii, tu gandesti ceva de genul: IF x THEN y ELSE z.
In ASM NU exista asa ceva.
Spre exemplu: [intructiunile beep si die sunt doar pentru a nu ma chinui sa scriu ceva complicat]
IF EAX=1 THEN beep ELSE die
in ASM:
CMP EAX, 1
JE @X ;IF EAX=1 atunci sari la BEEP
die ;altfel continua executia normala a programului
@X
beep
Tu te-ai gandit ca ar fi ceva de genul:
CMP EAX, 1
JE @X ;IF EAX=1 atunci sari la BEEP
JNE @Y ;altfel continua executia. IF EAX NU este egal cu 1 atunci sari la @Y
@Y:
die
@X
beep
ceea ce e total reduntant. La JNE @Y: e buba. Cand a ajuns cu executia programului la JNE @Y inseamna ca nu a sarit la JE @X.
Asa... dar de ce sa mai pui JNE @Y cand @Y este imediat sub JNE @Y. Deci ori ca se executa jumpul de la JNE, ori ca nu, el tot va executa @Y [in cazul in care nu s-a executat jumpul JE @X]