18.2. Syntax

18.2.1. 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.

18.2.2. 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:


code pointer


data pointer


base pointer


stack top pointer


extra pointer


status register


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.

18.2.3. Addressing Modes

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


Register direct


Register indirect

@(d:8, Rn)

Register indirect with 8 bit signed displacement

@(d:16, Rn)

Register indirect with 16 bit signed displacement


Register indirect with pre-decrement


Register indirect with post-increment


8 bit absolute address


16 bit absolute address


8 bit immediate


16 bit immediate