Next: P2align, Previous: Offset, Up: Pseudo Ops

### 7.85 `.org` new-lc`,` fill

Advance the location counter of the current section to new-lc. new-lc is either an absolute expression or an expression with the same section as the current subsection. That is, you can't use `.org` to cross sections: if new-lc has the wrong section, the `.org` directive is ignored. To be compatible with former assemblers, if the section of new-lc is absolute, `as` issues a warning, then pretends the section of new-lc is the same as the current subsection.

`.org` may only increase the location counter, or leave it unchanged; you cannot use `.org` to move the location counter backwards.

Because `as` tries to assemble programs in one pass, new-lc may not be undefined. If you really detest this restriction we eagerly await a chance to share your improved assembler.

Beware that the origin is relative to the start of the section, not to the start of the subsection. This is compatible with other people's assemblers.

When the location counter (of the current subsection) is advanced, the intervening bytes are filled with fill which should be an absolute expression. If the comma and fill are omitted, fill defaults to zero.