after reading another post on multi-dimensional arrays (http://www.asmcommunity.net/board/index.php?topic=788&highlight=multidimensional+arrays), i figured this is somehow quite complicated.

i guess if you have an array which is only 2-dimensional (in pascal e.g. var a: array[0..9, 0..5] of byte) you might as well define two simple arrays, like:
a1 db 10 dup(?)
a2 db 6 dup(?)


addressing them would be e.g.
mov esi, offset a1
mov edi, offset a2
mov byte ptr , imm8
...


this seems a little simpler to me.
Posted on 2003-02-26 10:18:47 by ploptor
You've only allocated 16 bytes in the assembly, verses 60 bytes in the pascal.

You've mistaken the allocation algorithm as A + B + C, rather than A * B *C.

Mirno
Posted on 2003-02-26 10:50:00 by Mirno
Mirno is correct.

The arrary should be


.data
a1 db 6 dup (10 dup(?))
Posted on 2003-02-27 06:57:33 by roticv