As a developer, I believe you would agree that most of the time we are not working with arrays of uniform data (I am definitely not underestimating the power of a regular array). Since data may be anything, starting with 8-bit numbers and ending with complex structures, we need a way to describe such data for the assembler, and the term structure is the key. Flat Assembler, just as any other assembler, lets us declare structures and treat them as additional types of data (similar to the typedef struct in C).
Let's declare a simple structure, an entry of a string table, and then see what is what:
struc strtabentry [s]
{
.length dw .pad - .string ; Length of the string
.string db s, 0 ; Bytes of the string
.pad rb 30 - (.pad - .string) ; Padding to fill 30 bytes
.size = $ - .length ; Size of the structure (valid...