La directive DB (définir octet) est utilisé pour allouer des blocs de mémoire de taille octet. La section qui vient après le DB spécifie la valeur qui doit être placée dans la mémoire allouée. Par exemple, si vous voulez définir un seul octet de mémoire avec la valeur 65, vous pouvez utiliser la directive suivante.
SingleByte DB 65 ; allocate a single byte and write 65 into the byte
La directive DUP (duplicate) est utilisée pour dupliquer une série de caractères. Les séries de caractères à dupliquer sont spécifiées dans les parenthèses qui suivent le DUP. Le nombre avant DUP spécifie le nombre de fois que la série de caractères doit être dupliquée. Par exemple, si vous voulez définir un bloc de mémoire de 10 octets où chaque octet a la valeur 65, vous pouvez utiliser la directive suivante.
TenBytes DB 10 DUP(65); allocate 10 bytes and write 65 into each byte
Dans votre cas, vous ne vous inquiétez pas ce que les valeurs sont stockées dans chaque octet dans le tampon à l'origine, de sorte que vous pouvez utiliser ?
comme l'octet qui est dupliqué. Si vous souhaitez à la place initialiser chaque octet à zéro, vous pouvez remplacer ?
par 0
.
Buffer DB 80 DUP(?) ; set aside 80 bytes without assigning them any values
La longueur maximale et la longueur réelle du tampon doivent être gérées en utilisant des variables séparées. En tout, vous voulez probablement quelque chose de la nature suivante.
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