Arrays, combined with structures, can make complex data structuring simple:

BankAccount STRUC
HolderName  FIELD  CHAR[32]
HolderAddr  FIELD  CHAR[32]
Balance     FIELD  Amount
ODLimit     FIELD  Amount
            ENDSTRUC

You can select individual elements from an array by specifying the index to be used in brackets:

LDB MyAccount.HolderName[0]

The assembler defines arrays as zero-based, so the fragment above loads the first character of MyAccounts HolderName. Because the assembler must know the address to load at assembly time, the expression within the square brackets must evaluate to a constant at assembly time. For example, the following is invalid because Index isnt an assembly-time constant:

Index   DV      BYTE
        LDB     MyAccount.HolderName[Index]

However, if Index were defined symbolically, the assembler can compute the correct address to encode in the instruction at assembly time:

Index   EQU     20
        LDB     MyAccount.HolderName[Index]