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