어셈블리

jz ==> zero flag

파아랑새 2017. 9. 23. 22:49

// jz ==> zero flag

# include <stdio.h>


int main(void) {

int v1 = 10;

int v2 = 20;

char* zeroPrompt = "zero flag is zero \n";

char* zeroNPrompt = "zero flag is not zero \n";

__asm {

mov eax, v1; // eax = v1

mov ebx, v2; // ebx = v2

sub eax, ebx; // eax -= ebx

jz zeroJump; // if eax == 0 then zf == 0


zeroNPrompt:

push zeroNPrompt;

call dword ptr[printf];

pop ebx;

jmp End_;


zeroJump:

push zeroPrompt;

call dword ptr[printf];

pop ebx;

jmp End_;


End_:

xor eax, eax;

leave;

retn;

}

}