extern io_get_dec, io_print_dec, io_print_string
section .bss
a_x resd 1
a_y resd 1
b_x resd 1
b_y resd 1
c_x resd 1
c_y resd 1
d_x resd 1
d_y resd 1
p_x resd 1
p_y resd 1
section .data
yes db 'YES', 0
no db 'NO', 0
section .text
global main
main:
call io_get_dec
mov [a_x], eax
call io_get_dec
mov [a_y], eax
call io_get_dec
mov [b_x], eax
call io_get_dec
mov [b_y], eax
call io_get_dec
mov [c_x], eax
call io_get_dec
mov [c_y], eax
call io_get_dec
mov [d_x], eax
call io_get_dec
mov [d_y], eax
call io_get_dec
mov [p_x], eax
call io_get_dec
mov [p_y], eax
mov eax, dword[a_x]
mov ebx, dword[b_x]
cmp eax, ebx
cmovge eax, ebx
cmovle edi, ebx
mov ebx, dword[c_x]
cmp eax, ebx
cmovge eax, ebx
cmovle edi, ebx
mov ebx, dword[d_x]
cmp eax, ebx
cmovge eax, ebx
cmovle edi, ebx
mov dword[a_x], eax; a_x=min(x)
mov dword[c_x], edi; c_x=max(x)
mov eax, dword[a_y]
mov ebx, dword[b_y]
cmp eax, ebx
cmovge eax, ebx
cmovle edi, ebx
mov ebx, dword[c_y]
cmp eax, ebx
cmovge eax, ebx
cmovle edi, ebx
mov ebx, dword[d_y]
cmp eax, ebx
cmovge eax, ebx
cmovle edi, ebx
mov dword[a_y], eax; a_y=min(y)
mov dword[c_y], edi; c_y=max(y)
mov eax, dword[a_x]
mov ebx, dword[p_x]
cmp eax, ebx; a_x <= p_x
jg .false
mov eax, dword[c_x]
mov ebx, dword[p_x]
cmp eax, ebx; p_x <= c_x
jl .false
mov eax, dword[a_y]
mov ebx, dword[p_y]
cmp eax, ebx; a_y <= p_y
jg .false
mov eax, dword[c_y]
mov ebx, dword[p_y]
cmp eax, ebx; p_y <= c_y
jl .false
mov eax, yes
call io_print_string
jmp .done
.false:
mov eax, no
call io_print_string
.done:
xor eax, eax
ret