[Back to MISC SWAG index] [Back to Main SWAG index] [Original]

    { Updated MISC.SWG on May 26, 1995 }

    {
    From: dmurdoch@mast.queensu.ca (Duncan Murdoch)

    >How can I access double-dimentional arrays in Pascal using asm?  My array
    >is declared like this: var myarray:array[0..5] of array[0..5] of byte.

    You need to do the addressing yourself.  For example, to load myarray[i,j]
    into AH, do the following:
    }
      mov ax, i
      mov bx, 6     { The size of a row of your array }
      mul bx        { Now ax holds the offset to element myarray[i,0] }
      add ax,j      { now it holds the offset to element myarray[i,j] }
      mov bx,ax     { Put the offset in BX. }
      mov ah,myarray[bx]  { Load the byte at the calculated offset }
    {
    This is untested, but it looks okay to me...
    }

[Back to MISC SWAG index] [Back to Main SWAG index] [Original]