; ifint_64.asm code ifint_64.c for nasm ; /* ifint_64.c an 'if' statement that will be coded for nasm */ ; #include ; int main() ; { ; long int a=1; ; long int b=2; ; long int c=3; ; long int xyz=4; ; ; printf("a=%ld b=%ld c=%ld xyz=%ld \n",a,b,c,xyz) ; ; if(ac) ; printf("wrong on b > c \n"); ; else ; printf("false b > c \n"); ; ; if(4==xyz) goto label1e; ; printf("failed 4==xyz \n"); ;label1e: printf("passed 4==xyz \n"); ; ; if(5>xyz) goto label1g; ; printf("failed 5>xyz \n"); ;label1g: printf("passed 5>xyz \n"); ; ; if(3 c ; passed 4==xyz ; passed 5>xyz ; passed 3 c ",10,0 fmt4: db "false b > c ",10,0 fmt5: db "failed 4==xyz ",10,0 fmt6: db "passed 4==xyz ",10,0 fmt7: db "failed 5>xyz ",10,0 fmt8: db "passed 5>xyz ",10,0 fmt9: db "failed 3 c sign is not set mov rdi, fmt3 ; printf("wrong on b > c \n"); mov rax,0 call printf jmp exit2 ; jump over false part false2: ; b > c is false mov rdi, fmt4 ; printf("false b > c \n"); mov rax,0 call printf exit2: ; finished 'if' statement mov rax,4 cmp rax,[xyz] ; if(4==xyz) goto label1e; je label1e mov rdi, fmt5 mov rax,0 call printf label1e:mov rdi, fmt6 mov rax,0 call printf mov rax,5 cmp rax,[xyz] ; if(5>xyz) goto label1g; jg label1g mov rdi, fmt7 mov rax,0 call printf label1g:mov rdi, fmt8 mov rax,0 call printf mov rax,3 cmp rax,[xyz] ; if(3