%include "asm_io.inc"
segment .data
array: dd 10, 20, 30, 40, 50, 60
dd 11, 21, 31, 41, 51, 61
dd 12, 22, 32, 42, 52, 62
dd 14, 24, 34, 44, 54, 64
segment .text
global asm_main
asm_main:
pusha
push 6 push 4 push array call print2DArray
add esp, 12
popa
ret
delim: db ", ", 0
%define ARRAY [ebp+8]
%define M [ebp+12]
%define N [ebp+16]
print2DArray:
push ebp
mov ebp, esp
mov ebx, ARRAY
mov esi, 0
loop1:
cmp esi, M
jge endloop1
mov edi, 0
loop2:
cmp edi, N
jge endloop2
mov eax, [ebx]
call print_int
mov eax, delim
call print_string
add ebx, 4
inc edi
jmp loop2
endloop2:
mov al, 10
call print_char
inc esi
jmp loop1
endloop1:
mov esp, ebp
pop ebp
ret