extern io_get_udec
extern io_get_dec
extern io_print_dec
extern io_print_char
section .bss
a resd 10000
b resd 10000
c resd 10000
size_a resd 1
size_b resd 1
size_c resd 1
n resd 1
m resd 1
k resd 1
section .text
global main
main:
; Matrix sizes
call io_get_udec
mov [n], eax
call io_get_udec
mov [m], eax
call io_get_udec
mov [k], eax
mul dword [n]
mov [size_c], eax
mov eax, dword [n]
mul dword [m]
mov [size_a], eax
mov eax, dword [m]
mul dword [k]
mov [size_b], eax
mov esi, dword [size_a]
mov ebx, dword a
a_for_beg:
cmp esi, 0
jng a_for_end
call io_get_dec
mov [ebx], eax
dec esi
add ebx, dword 4
jmp a_for_beg
a_for_end:
mov esi, dword [size_b]
mov ebx, dword b
b_for_beg:
cmp esi, 0
jng b_for_end
call io_get_dec
mov [ebx], eax
dec esi
add ebx, dword 4
jmp b_for_beg
b_for_end:
mov esi, dword [m]
mov ebx, dword a
apr_for_beg:
cmp esi, 0
jng apr_for_end
mov edi, dword [n]
apr_inn_beg:
cmp edi, 0
jng apr_inn_end
mov eax, dword [ebx]
call io_print_dec
mov eax, dword ' '
call io_print_char
add ebx, dword 4
dec edi
jmp apr_inn_beg
apr_inn_end:
dec esi
jmp apr_for_beg
apr_for_end:
xor eax, eax
ret