Block storage allocation directives
Format
.BLKA [expression]
.BLKB [expression]
.BLKD [expression]
.BLKF [expression]
.BLKG [expression]
.BLKL [expression]
.BLKO [expression]
.BLKQ [expression]
.BLKS [expression]
.BLKT [expression]
.BLKW [expression]
1 – Parameter
expression
An integer expression specifying the amount of storage to be
allocated. All the symbols in the expression must be defined
at the current point in the assembly and the expression must be
an absolute expression. If the expression is omitted, a default
value of 1 is assumed.
2 – Description
MACRO-64 has the following 11 block storage directives:
DirectivReserves Storage for: Bytes Allocated
.BLKA Addresses (quadwords) 8 * value of expression
.BLKB Byte data Value of expression
.BLKD Double-precision 8 * value of expression
floating-point data
(quadwords)
.BLKF Single-precision 4 * value of expression
floating-point data
(longwords)
.BLKG G_floating data 8 * value of expression
(quadwords)
.BLKL Longword data 4 * value of expression
.BLKO Octaword data 16 * value of expression
.BLKQ Quadword data 8 * value of expression
.BLKS S_floating data 4 * value of expression
(longwords)
.BLKT T_floating data 8 * value of expression
(quadwords)
.BLKW Word data 2 * value of expression
Each directive reserves storage for a different data type. The
value of the expression determines the number of data items for
which MACRO-64 reserves storage. For example, .BLKL 4 reserves
storage for 4 longwords of data and .BLKB 2 reserves storage for
2 bytes of data. The total number of bytes reserved is equal to
the length of the data type times the value of the expression.
3 – Notes
o If automatic data alignment is enabled, the .BLKx directives
align the current location counter to one of the alignments
listed in the following table:
DirectiAlignment
.BLKA Quadword (64-bit) boundary
.BLKB None
.BLKD Quadword (64-bit) boundary
.BLKF Longword (32-bit) boundary
.BLKG Quadword (64-bit) boundary
.BLKL Longword (32-bit) boundary
.BLKO Octaword (128-bit) boundary
.BLKQ Quadword (64-bit) boundary
.BLKS Longword (32-bit) boundary
.BLKT Quadword (64-bit) boundary
.BLKW Word (16-bit) boundary
o You can only use these directives within psects having either
the NOEXE or MIX attributes.
4 – Example
.PSECT A,NOEXE
B:: .BLKW 10 ; 10 words (20 bytes) of storage
.BLKQ 5 ; 5 quadwords (40 bytes) of storage
.BLKW ; 1 word (2 bytes) of storage