extern io_get_dec, io_newline, io_print_dec
section .bss
m resd 1
n resd 1
mx resd 1
i resd 1
j resd 1
massive resd 100
section .text
global main
main:
call io_get_dec
mov dword[n], eax
call io_get_dec
mov dword[m], eax
mov dword[i], 0
.for_i:
mov dword[j], 0
mov eax, dword[i]
mov ebx, dword[n]
cmp eax, ebx
je .gl
.for_j:
mov eax, dword[j]
mov ebx , dword[m]
cmp eax, ebx
je .end_j
call io_get_dec
mov ebx, dword[i]
imul ebx, [m]
add ebx, dword[j]
mov dword[massive + 4 * ebx], eax
inc dword[j]
jmp .for_j
.end_j:
inc dword[i]
jmp .for_i
.gl:
mov dword[i], 0
.st_m:
mov dword[j], 0
mov eax, dword[i]
mov ebx, dword[m]
cmp eax, ebx
je .end_n
mov ebx, dword[i]
imul ebx, dword[m]
mov eax, dword[massive + 4*ebx]
mov dword[mx], eax
.st_n:
mov eax, dword[j]
mov ebx, dword[n]
cmp eax, ebx
je .end_m
mov ebx, dword[j]
imul ebx, dword[m]
add ebx, dword[i]
mov eax, dword[mx]
cmp dword[massive + 4*ebx], eax
jle .skip
mov eax, dword[massive + 4*ebx]
mov dword[mx], eax
.skip:
inc dword[j]
jmp .st_n
.end_m:
inc dword[i]
mov eax, dword[mx]
call io_print_dec
call io_newline
jmp .st_m
.end_n:
xor eax, eax
ret