Go forward to Deprecated.
Go backward to Val.
Go up to Pseudo Ops.
`.word EXPRESSIONS'
===================
This directive expects zero or more EXPRESSIONS, of any section,
separated by commas.
The size of the number emitted, and its byte order, depends on what
kind of computer will run the program.
*Warning: Special Treatment to support Compilers*
Machines with a 32-bit address space, but that do less than 32-bit
addressing, require the following special treatment. If the machine of
interest to you does 32-bit addressing (or doesn't require it;
see Machine Dependent.), you can ignore this issue.
In order to assemble compiler output into something that will work,
`as' will occasionlly do strange things to `.word' directives.
Directives of the form `.word sym1-sym2' are often emitted by compilers
as part of jump tables. Therefore, when `as' assembles a directive of
the form `.word sym1-sym2', and the difference between `sym1' and
`sym2' does not fit in 16 bits, `as' will create a "secondary jump
table", immediately before the next label. This secondary jump table
will be preceded by a short-jump to the first byte after the secondary
table. This short-jump prevents the flow of control from accidentally
falling into the new table. Inside the table will be a long-jump to
`sym2'. The original `.word' will contain `sym1' minus the address of
the long-jump to `sym2'.
If there were several occurrences of `.word sym1-sym2' before the
secondary jump table, all of them will be adjusted. If there was a
`.word sym3-sym4', that also did not fit in sixteen bits, a long-jump
to `sym4' will be included in the secondary jump table, and the `.word'
directives will be adjusted to contain `sym3' minus the address of the
long-jump to `sym4'; and so on, for as many entries in the original
jump table as necessary.