CROSS ASSEMBLER ASM62XX

4.4.3Operator

When specifying a value for an item such as an operand, an operational expression can be written instead of a constant, and its result can be used as the value.

Labels and symbols as well as constants can be used as terms in expressions. These values are processed as 13-bit data (bit 14 and subsequent high-order bits are ignored); the operation result also consists of 13 bits. If the result exceeds the number of significant digits of the instruction operand, an error occurs.

There are three types of operator—arithmetic, logical, and relational—as listed below (a and b represent terms, and _ represents one or more blanks).

Arithmetic operators

There are 11 arithmetic operators including the ones for addition, subtraction, multiplication, division, bit shifting, and bit separation.

+a

Monadic positive (indicates the subsequent value is positive)

-a

Monadic negative (indicates the subsequent value is negative)

a+b

Addition (unsigned)

 

 

a-b

Subtraction (unsigned)

 

 

a*b

Multiplication (unsigned)

 

 

a/b

Division (unsigned)

 

 

a_MOD_b

Remainder of a/b

 

 

a_SHL_b

Shifts a b bits to the left. ← [b7<<<<<<b1]← 0

 

Example: 00000011B SHL 2 00001100B

a_SHR_b

Shifts a b bits to the right. 0→ [b7>>>>>>b0]→

 

Example: 11000011B SHR 2 00110000B

HIGH_a

Separates the high-order eight bits from a (13 bits).

 

Example: HIGH 1234H

12H

 

LOW_a

Separates the low-order eight bits from a (13 bits).

 

Example: LOW 1234H 34H

 

Logical operators

There are four logical operators as listed below. The logical operator returns the result of logical operation on the specified terms.

a_AND_b

Logical product

 

 

Example: 00001111B AND 00000011B

00000011B

a_OR_b

Logical sum

 

 

Example: 00001111B OR 11110000B 11111111B

a_XOR_b Exclusive logical sum

 

 

Example: 00001111B XOR 00000011B

00001100B

NOT_a

Logical negation

 

 

Example: NOT 00001111B 11110000B

 

S1C62 FAMILY

EPSON

III-9

DEVELOPMENT TOOL REFERENCE MANUAL