Like the M16C core, the R8C CPU core is a 16-bit design with a register-based architecture. However, whereas M16C MCUs have a 16-bit data bus, R8C devices have a data bus that is only 8-bits wide. The R8C core has four 16-bit registers that can also be configured to provide four 8-bit registers with two 16-bit registers, or two 32-bit registers. There are two sets of data registers, and you can select one set or the other. Besides the data registers, there are two 16-bit address registers and two 16-bit base registers. The core also has a dedicated Program Counter (PC), two Stack Pointers (SPs), and Interrupt Table Pointer register (INTB), and a Flag register (FLG). The R8C provides a powerful set of 89 instructions – two less than the M16C core – that are used in eight standard addressing modes. To speed up math computations, there is a built-in hardware multiplier. These MCUs operate at speeds of up to 20MHz – compared to 24MHz for M16C devices – and have low-power modes.

