Page 390 - Introduction to Microcontrollers Architecture, Programming, and Interfacing of The Motorola 68HC12
P. 390

12.5 The 500 Series                                                 367


         12.5 The 500 Series

        The 500 series of microcomputers are Reduced Instruction Set Computers (RISC) that
        differs from Complex Instruction Set Computers (CISC) discussed heretofore. Its
        registers are shown in Figure 12.11, and its instruction set is given in Table 12.7.
            A RISC computer trades off control complexity for additional general purpose
        registers. See Figure 12.11. The 500 series has 32 32-bit registers that can be used as
        address or as integer data registers are used in the 68300 series. Additionally, 32 64-bit
        floating-point registers each can hold a double-precision floating-point number. Finally,
        there is a link register that holds a subroutine return address, a count register that holds a
        loop counter, a condition register that holds codes for conditional branching, a floating-
        point status and control register, and an integer exception register.
            The RISC architecture has very simple move instructions with limited addressing
        modes. The load instruction mnemonics (Table 12.7) are parsed as illustrated by lhau
        r3,10 (r4 ): the "1" means load; the "h" means half-word, which is 16 bits; "u"
        means unsigned (fill with zero bits) to load general register r3; and the effective address is
        the sum of the instruction's offset 10 and general register 4. The last general register, r4
        in this example, may be register 0, in which case the value 0 is used in place of it. This
        permits a page-zero addressing mode but uses a sign-extended offset. If an "x" is
        appended, a second general register is used in place of the offset in the address calculation.
        The instruction lhaux r3, r4, r5  loads general register 3, as an unsigned number,
        with the half-word, at the effective address which is the sum of general register 4 and
        general register 5. In place of "1" the letters "st" cause the register to be stored, in
        place of "h" the letter "b" causes eight bits to be moved or the letter "w" causes 16
        bits to be moved; and in place of "u" the letter "a" causes the number to be sign
        extended when it is loaded. The letter "r" in Ihbrx indicates byte reversal; a 16-bit word
        is loaded, but the two bytes in it are reversed as they are loaded. The load multiple
        instruction Imw r3,10 (r5 ) loads the registers from r3 to r31 with memory data
        starting from the effective address, which is the contents of register 5 plus ten. The load
        string instruction Iswx similarly loads string data into registers, but with more
        complexity, which we skip in this introductory treatment. There are corresponding
        integer store instructions and similar load and store instructions for floating-point and for
        special-purpose registers.


















                         Figure 12.11. User Registers for the 500 Series
   385   386   387   388   389   390   391   392   393   394   395