H8/300 Opcodes - Using as
Description: Using as

Previous: H8/300 Directives, Up: H8/300-Dependent

#### 9.12.5 Opcodes

For detailed information on the H8/300 machine instruction set, see H8/300 Series Programming Manual. For information specific to the H8/300H, see H8/300H Series Programming Manual (Renesas).

`as` implements all the standard H8/300 opcodes. No additional pseudo-instructions are needed on this family.

Four H8/300 instructions (`add`, `cmp`, `mov`, `sub`) are defined with variants using the suffixes ‘`.b`’, ‘`.w`’, and ‘`.l`’ to specify the size of a memory operand. `as` supports these suffixes, but does not require them; since one of the operands is always a register, `as` can deduce the correct size.

For example, since `r0` refers to a 16-bit register,

         mov    r0,@foo

    is equivalent to

         mov.w  r0,@foo

If you use the size suffixes, `as` issues a warning when the suffix and the register size do not match.