6.1.9.13 Ds Directive
The DS units
directive reserves, but does not
initialize, the specified amount of space. The single argument is the number of address
units to be reserved. An address unit is determined by the flags used with the psect that
holds the directive.
This directive is typically used to reserve bytes for RAM-based objects in
the data memory (the enclosing psect's space
flag set to 1). If the psect
in which the directive resides is a bit psect (the psect's bit
flag was
set), the directive reserves the request number of bits. If used in a psect linked into the
program memory, it will move the location counter, but not place anything in the HEX file
output. Note that on Mid-range and Baseline devices, the size of an address unit in the
program memory is 2 bytes (see 6.1.9.39.4 Delta Flag), so the DS
pseudo-op will actually reserve words in that instance.
An object is typically defined by using a label and then the
DS
directive to reserve locations at the label location.
Examples:
PSECT myVars,space=1,class=BANK2
alabel:
DS 23 ;reserve 23 bytes of memory
PSECT myBits,space=1,bit,class=COMRAM
xlabel:
DS 2+3 ;reserve 5 bits of memory