Epson S1C62 Family ユーザーズマニュアル

ページ / 219
CROSS ASSEMBLER ASM62XX
S1C62 FAMILY
EPSON
III-9
DEVELOPMENT TOOL REFERENCE MANUAL
4.4.3
 Operator
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