.bss
Reserve Space in the .bss Section
4-30
Syntax
.bss
symbol, size in words [, [blocking flag] [, alignment flag] ]
Description
The .bss directive reserves space for variables in the .bss section. This direc-
tive is usually used to allocate variables in RAM.
-
The
symbol is a required parameter. It defines a label that points to the first
location reserved by the directive. The symbol name should correspond
to the variable that you’re reserving space for.
-
The
size is a required parameter; it must be an absolute expression. The
assembler allocates
size words in the .bss section. There is no default
size.
-
The
blocking flag is an optional parameter. If you specify a value greater
than 0 for this parameter, the assembler allocates
size words contiguous-
ly. This means that the allocated space will not cross a page boundary un-
less size is greater than a page, in which case, the object will start on a
page boundary.
-
The
alignment flag is an optional parameter. This flag causes the assem-
bler to allocate size on long word boundaries.
Note:
Specifying an Alignment Flag Only
To specify an alignment flag without a blocking flag, you must insert two
commas before the alignment flag, as shown in the syntax.
The assembler follows two rules when it allocates space in the .bss section:
Rule 1
Whenever a hole is left in memory (as shown in Figure 4–5), the
.bss directive attempts to fill it. When a .bss directive is assembled,
the assembler searches its list of holes left by previous .bss direc-
tives and tries to allocate the current block into one of the holes.
(This is the standard procedure whether the contiguous allocation
option has been specified or not.)
Rule 2
If the assembler does not find a hole large enough to contain the
requested space, it checks to see whether the blocking option is re-
quested.
-
If you do not request blocking, the memory is allocated at the
current SPC.
-
If you request blocking, the assembler checks to see whether
there is enough space between the current SPC and the page
boundary. If there is not enough space, the assembler creates
another hole and allocates the space on the next page.
Summary of Contents for TMS320C54x
Page 38: ......
Page 39: ......
Page 40: ......
Page 41: ......
Page 42: ......
Page 43: ......
Page 44: ......
Page 45: ......
Page 46: ......
Page 47: ......
Page 48: ......
Page 49: ......
Page 50: ......
Page 51: ......
Page 52: ......
Page 53: ......
Page 54: ......
Page 55: ......
Page 56: ......
Page 57: ......
Page 58: ......
Page 59: ......
Page 60: ......
Page 61: ......
Page 62: ......
Page 276: ......
Page 277: ......
Page 278: ......
Page 279: ......
Page 280: ......
Page 281: ......
Page 282: ......
Page 283: ......
Page 284: ......
Page 285: ......
Page 286: ......
Page 287: ......
Page 288: ......
Page 289: ......
Page 290: ......
Page 291: ......
Page 292: ......
Page 293: ......
Page 294: ......
Page 295: ......
Page 296: ......
Page 297: ......
Page 298: ......
Page 299: ......
Page 300: ......
Page 301: ......
Page 302: ......