Go to the first, previous, next, last section, table of contents.

# H8/500 Dependent Features

- H8/500 Options: Options
- H8/500 Syntax: Syntax
- H8/500 Floating Point: Floating Point
- H8/500 Directives: H8/500 Machine Directives
- H8/500 Opcodes: Opcodes

## Options

`as` has no additional command-line options for the Hitachi H8/500 family.

## Syntax

- H8/500-Chars: Special Characters
- H8/500-Regs: Register Names
- H8/500-Addressing: Addressing Modes

### Special Characters

``!'` is the line comment character.

``;'` can be used instead of a newline to separate statements.

Since ``$'` has no special meaning, you may use it in symbol names.

### Register Names

You can use the predefined symbols ``r0'`, ``r1'`, ``r2'`, ``r3'`, ``r4'`, ``r5'`, ``r6'`, and ``r7'` to refer to the H8/500 registers.

The H8/500 also has these control registers:

`cp`
  code pointer
`dp`
  data pointer
`bp`
  base pointer
`tp`
  stack top pointer
`ep`
  extra pointer
`sr`
  status register
`ccr`
  condition code register

All registers are 16 bits long. To represent 32 bit numbers, use two adjacent registers; for distant memory addresses, use one of the segment pointers (`cp` for the program counter; `dp` for `r0`--`r3`; `ep` for `r4` and `r5`; and `tp` for `r6` and `r7`.

### Addressing Modes

as understands the following addressing modes for the H8/500:

`Rn`
  Register direct
`@Rn`
  Register indirect
`@(d:8, Rn)`
  Register indirect with 8 bit signed displacement
`@(d:16, Rn)`
  Register indirect with 16 bit signed displacement
`@-Rn`
  Register indirect with pre-decrement
`@Rn+`
  Register indirect with post-increment
`@aa:8`
  8 bit absolute address
`@aa:16`
  16 bit absolute address
`#xx:8`
  8 bit immediate
`#xx:16`
  16 bit immediate

## Floating Point

The H8/500 family has no hardware floating point, but the `.float` directive generates IEEE floating-point numbers for compatibility with other development tools.

## H8/500 Machine Directives

`as` has no machine-dependent directives for the H8/500. However, on this platform the ``.int'` and ``.word'` directives generate 16-bit numbers.

## Opcodes

For detailed information on the H8/500 machine instruction set, see H8/500 Series Programming Manual (Hitachi M21T001).

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

Go to the first, previous, next, last section, table of contents.