section .data
fmt db "%d %d", 0
yes db "YES", 10, 0
no db "NO", 10, 0
section .bss
x resd 1
y resd 1
min_x resd 1
min_y resd 1
max_x resd 1
max_y resd 1
section .text
global main
extern scanf, printf
main:
push ebx
push y
push x
push fmt
call scanf
add esp, 12
mov eax, [x]
mov [min_x], eax
mov [max_x], eax
mov eax, [y]
mov [min_y], eax
mov [max_y], eax
mov ebx, 3
rectangle_loop:
push y
push x
push fmt
call scanf
add esp, 12
mov edi, [x]
mov esi, [max_x]
cmp esi, edi
cmovl esi, edi
mov [max_x], esi
mov esi, [min_x]
cmp esi, edi
cmovg esi, edi
mov [min_y], esi
mov [min_x], esi
mov edi, [y]
mov esi, [max_y]
cmp esi, edi
cmovl esi, edi
mov [max_y], esi
mov esi, [min_y]
cmp esi, edi
cmovg esi, edi
mov [min_y], esi
dec ebx
jnz rectangle_loop
push y
push x
push fmt
call scanf
add esp, 12
mov eax, [x]
mov ebx, [y]
cmp eax, [min_x]
jle noway
cmp eax, [max_x]
jge noway
cmp ebx, [min_y]
jle noway
cmp ebx, [max_y]
jge noway
push yes
call printf
add esp, 4
pop ebx
xor eax, eax
ret
noway:
push no
call printf
add esp,4
xor eax,eax
ret