Table 2—The instruction set for the M16C core microcontrollers can be divided into eight areas. These instructions are involved in data transfer, bit manipulation, and math, including data shift and logic operations. Other instructions redirect the program flow or affect system operations.

Category Sub-category Category Sub-category
Transfer Instructions (17)

Transfer instruction
Execution address transfer instruction
4-bit Data transfer instruction
Push/pop instruction
Extended data area transfer instruction
Conditional transfer instruction

Data exchange instruction
String instruction

Branch instructions (10)

Conditional branch instruction
Unconditional branch instruction
Indirect branch instruction
Special page branch instruction
Subroutine call instruction
Indirect branch subroutine call instruction
Special page subroutine call instruction
Subroutine return instruction

Arithmetic instructions (31)

Add instruction
Subtract instruction Multiplication instruction
Division instruction
Decimal add instruction
Decimal subtraction instruction
Increment/decrement instruction
Sum of products instruction
Absolute instruction
Two's complement instruction
Logical instruction
Test instruction Shift/rotate instruction

Bit manipulations (14)

 



Other instructions (19)

Bit logical operation instruction
Bit set/clear instruction

Bit test instruction
Conditional bit transfer instruction


Special-purpose register transfer instruction
Flag register operation instruction
High-level language support instruction
OS support instruction
Software interrupt instruction
Wait instruction
No operation instruction