[bootdrv]
is a specification of an absolute memory address. The code:
mov [bootdrv], dl
copies the contents of the 8-bit DL
register into a byte in memory, at the address resulting of multiplying the current value of DS
by 16
, then add the value bootdrv
. bootdrv
itself is a label, which a value that represents where in the current data segment is the memory position located.
On the other hand, the symbol bootdrv
must be defined somewhere. Otherwise, the assembler will stop with a "symbol not defined" error. Maybe it's defined past the code (assemblers do two passes through the source code in order to get all symbols so they can be used even if they are defined after the code sequence that uses them). Maybe it's in a separate .INC file.