section .data
a11 dd 0
a12 dd 0
a21 dd 0
a22 dd 0
b1 dd 0
b2 dd 0
na11 dd 0
na12 dd 0
na21 dd 0
na22 dd 0
m0 dd 0
m1 dd 0
m2 dd 0
m3 dd 0
m4 dd 0
m5 dd 0
m6 dd 0
m7 dd 0
m8 dd 0
m9 dd 0
m10 dd 0
m11 dd 0
m12 dd 0
m13 dd 0
m14 dd 0
m15 dd 0
xb2 dd 0
xb1 dd 0
xx dd 0
yb2 dd 0
yb1 dd 0
yx dd 0
xres dd 0
yres dd 0
section .text
extern io_get_udec, io_print_udec, io_newline
global main
main:
push ebx
push esi
push edi
call io_get_udec
mov [a11], eax
call io_get_udec
mov [a12], eax
call io_get_udec
mov [a21], eax
call io_get_udec
mov [a22], eax
call io_get_udec
mov [b1], eax
call io_get_udec
mov [b2], eax
mov eax, [a11]
not eax
mov [na11], eax
mov eax, [a12]
not eax
mov [na12], eax
mov eax, [a21]
not eax
mov [na21], eax
mov eax, [a22]
not eax
mov [na22], eax
mov eax, [na11]
and eax, [na12]
and eax, [na21]
and eax, [na22]
mov [m0], eax
mov eax, [a11]
and eax, [na12]
and eax, [na21]
and eax, [na22]
mov [m1], eax
mov eax, [na11]
and eax, [a12]
and eax, [na21]
and eax, [na22]
mov [m2], eax
mov eax, [a11]
and eax, [a12]
and eax, [na21]
and eax, [na22]
mov [m3], eax
mov eax, [na11]
and eax, [na12]
and eax, [a21]
and eax, [na22]
mov [m4], eax
mov eax, [a11]
and eax, [na12]
and eax, [a21]
and eax, [na22]
mov [m5], eax
mov eax, [na11]
and eax, [a12]
and eax, [a21]
and eax, [na22]
mov [m6], eax
mov eax, [a11]
and eax, [a12]
and eax, [a21]
and eax, [na22]
mov [m7], eax
mov eax, [na11]
and eax, [na12]
and eax, [na21]
and eax, [a22]
mov [m8], eax
mov eax, [a11]
and eax, [na12]
and eax, [na21]
and eax, [a22]
mov [m9], eax
mov eax, [na11]
and eax, [a12]
and eax, [na21]
and eax, [a22]
mov [m10], eax
mov eax, [a11]
and eax, [a12]
and eax, [na21]
and eax, [a22]
mov [m11], eax
mov eax, [na11]
and eax, [na12]
and eax, [a21]
and eax, [a22]
mov [m12], eax
mov eax, [a11]
and eax, [na12]
and eax, [a21]
and eax, [a22]
mov [m13], eax
mov eax, [na11]
and eax, [a12]
and eax, [a21]
and eax, [a22]
mov [m14], eax
mov eax, [a11]
and eax, [a12]
and eax, [a21]
and eax, [a22]
mov [m15], eax
mov eax, [m4]
or eax, [m6]
or eax, [m7]
mov [xb2], eax
mov eax, [m1]
or eax, [m5]
or eax, [m9]
or eax, [m13]
mov [xb1], eax
mov eax, [m11]
or eax, [m14]
mov [xx], eax
mov eax, [m8]
or eax, [m9]
or eax, [m11]
or eax, [m12]
mov [yb2], eax
mov eax, [m2]
or eax, [m3]
or eax, [m6]
or eax, [m10]
or eax, [m14]
or eax, [m15]
mov [yb1], eax
mov eax, [m7]
or eax, [m13]
mov [yx], eax
mov eax, [xb2]
and eax, [b2]
mov ebx, [xb1]
and ebx, [b1]
or eax, ebx
mov ecx, [b1]
xor ecx, [b2]
mov edx, [xx]
and edx, ecx
or eax, edx
mov [xres], eax
mov eax, [yb2]
and eax, [b2]
mov ebx, [yb1]
and ebx, [b1]
or eax, ebx
mov ecx, [b1]
xor ecx, [b2]
mov edx, [yx]
and edx, ecx
or eax, edx
mov [yres], eax
mov eax, [xres]
call io_print_udec
call io_newline
mov eax, [yres]
call io_print_udec
call io_newline
pop edi
pop esi
pop ebx
xor eax, eax
ret