beautypg.com

10 location counter symbol – Epson S5U1C62000A User Manual

Page 72

background image

60

EPSON

S5U1C62000A MANUAL

(S1C60/62 FAMILY ASSEMBLER PACKAGE)

CHAPTER 5: ASSEMBLER

Precautions

• Minus numbers -1 to -32768 are handled as 0xffff to 0x8000.

• The assembler handles expressions as 16-bit data. Pay attention to the data size when using it as 4-bit

immediate data, especially when it has a minus value.

Example:

ld a,-2+1

... NG. It will be expanded as "ld a,0xffff".

ld a,(-2+1)&0xf

... OK. It will be expanded as "ld a,0xf".

• Expressions are calculated with a sign (like a signed short in C language).

Pay attention to the calculation results of the >>, / and % operators using hexadecimal numbers.

Example:

#define NUM1 0xfffe/2

... -2/2 = -1 (0xffff)

The / and % operators can only be used within the range of +32767 to -32768.

#define NUM2 0xfffe>>1

... -2>>1 = -1 (0xffff)

Mask as (0xfffe>>1)&0x7fff.

• Do not insert a space or a tab between an operator and a term.

5.5.10 Location Counter Symbol "$"

The address of each instruction code is set in the 13-bit location counter when a statement is assembled. It
can be referred using a symbol "$" as well as labels. "$" indicates the current location, thus it can be used
for relative branch operation. The operators can be used with this symbol similar to labels.

Example:

jp $

... Jumps to this address (means endless loop).

jp $+2

... Jumps to two words after this address.

jp $-10

... Jumps to 10 words before this address.

jp $+16+(16*(BLK>16))

... Operators and defined symbols can be used.

Precaution

When the address referred to relatively with "$" is in another section, it should be noted if the in-
tended section resides at the addressed place, because if the section is relocatable, the absolute
address is not fixed until the linking is completed.