; Assembler Practice#2 ; x = 55; ; y = 11; ; z = 43; ; if (z + x + y <= 101) { ;   print "then block"; ; w = 16; ; } else { ;   print "else block"; ; w = 9; ; } ; print w; extern printf segment .data thenText db "then block",10,0 elseText db "else block",10,0 wOut db "w=%d",10,0 x dd 55 y dd 11 z dd 43 w dd 0 segment .text global main main: push ebp mov ebp, esp mov eax, [x] add eax, [y] add eax, [z] cmp eax, 101 jg else push thenText call printf add esp, 4 mov dword [w], 16 jmp after else: push elseText call printf add esp, 4 mov dword [w], 9 after: push dword [w] push wOut call printf add esp, 8 mov eax, 0 mov esp, ebp pop ebp ret