
Section 2 CPU
Rev. 4.00 Jan 26, 2006 page 38 of 938
REJ09B0276-0400
Table 2.4
Arithmetic Operation Instructions
Instruction Size*
Function
ADD,SUB
B/W/L
Rd ± Rs
→ Rd, Rd ± #IMM → Rd
Performs addition or subtraction on data in two general registers, or on
immediate data and data in a general register. (Immediate byte data cannot
be subtracted from data in a general register. Use the SUBX or ADD
instruction.)
ADDX,
SUBX
B
Rd ± Rs ± C
→ Rd, Rd ± #IMM ± C → Rd
Performs addition or subtraction with carry or borrow on data in two general
registers, or on immediate data and data in a general register.
INC,
DEC
B/W/L
Rd ± 1
→ Rd, Rd ± 2 → Rd
Increments or decrements a general register by 1 or 2. (Byte operands can
be incremented or decremented by 1 only.)
ADDS,
SUBS
L
Rd ± 1
→ Rd, Rd ± 2 → Rd, Rd ± 4 → Rd
Adds or subtracts the value 1, 2, or 4 to or from data in a 32-bit register.
DAA,
DAS
B
Rd decimal adjust
→ Rd
Decimal-adjusts an addition or subtraction result in a general register by
referring to CCR to produce 4-bit BCD data.
MULXU
B/W
Rd
× Rs → Rd
Performs unsigned multiplication on data in two general registers:
either 8 bits
× 8 bits → 16 bits or 16 bits × 16 bits → 32 bits.
MULXS
B/W
Rd
× Rs → Rd
Performs signed multiplication on data in two general registers:
either 8 bits
× 8 bits → 16 bits or 16 bits × 16 bits → 32 bits.
DIVXU
B/W
Rd ÷ Rs
→ Rd
Performs unsigned division on data in two general registers: either 16 bits ÷ 8
bits
→ 8-bit quotient and 8-bit remainder or 32 bits ÷ 16 bits → 16-bit quotient
and 16-bit remainder
DIVXS
B/W
Rd ÷ Rs
→ Rd
Performs signed division on data in two general registers: either 16 bits ÷ 8
bits
→ 8-bit quotient and 8-bit remainder, or 32 bits ÷ 16 bits → 16-bit
quotient and 16-bit remainder
CMP
B/W/L
Rd – Rs, Rd – #IMM
Compares data in a general register with data in another general register or
with immediate data, and sets CCR according to the result.
NEG
B/W/L
0 – Rd
→ Rd
Takes the two’s complement (arithmetic complement) of data in a general
register.