Директива DB (определить байт) используется для выделения блоков памяти байтового размера. Раздел, который идет после БД, указывает значение, которое должно быть помещено в выделенную память. Например, если вы хотите определить один байт памяти со значением 65, вы можете использовать следующую директиву.
SingleByte DB 65 ; allocate a single byte and write 65 into the byte
Директива DUP (дубликаты) используется для дублирования серии символов. Последовательность символов, подлежащих дублированию, указана в скобках, следующих за DUP. Число перед DUP указывает, сколько раз серия символов должна дублироваться. Например, если вы хотите определить 10-байтовый блок памяти, где каждый байт имеет значение 65, вы можете использовать следующую директиву.
TenBytes DB 10 DUP(65); allocate 10 bytes and write 65 into each byte
В вашем случае вам все равно, какие значения хранятся в каждом байте в буфере изначально, поэтому вы можете использовать ?
в качестве дублируемого байта. Если вы хотите вместо этого инициализировать каждый байт нулем, вы можете заменить ?
на 0
.
Buffer DB 80 DUP(?) ; set aside 80 bytes without assigning them any values
Максимальная длина и фактическая длина буфера должны управляться с использованием отдельных переменных. В общем, вы, вероятно, хотите что-то следующего характера.
Buffer DB 80 DUP(0) ; 80-byte buffer initialized to all zeros
BufferMaxLen DB 80 ; maximum length of Buffer
BufferLen DB 0 ; actual length of Buffer