beautypg.com

5 using the arithmetic and logic unit, 1 selecting the active accumulator, 2 enabling autoincrement and autodecrement – Maxim Integrated MAXQ610 User Manual

Page 42: 3 .5 using the arithmetic and logic unit -7, Maxq610 user’s guide

background image

3-7

MAXQ610 User’s Guide

Register bits can be set or cleared individually using the MOVE instruction as follows:

move IGE, #1

; set IGE (Interrupt Global Enable) bit

move APC.6, #0

; clear IDS bit (APC.6)

As with other instructions, prefixing is required to select destination registers beyond index 07h . The MOVE instruction
can also be used to transfer any one of the lowest 8 bits from a register source or any active accumulator (Acc) bit to
the carry flag . There is no restriction on the source register module for the “MOVE C, src .bit” instruction .

move C, Acc.7

; copy Acc.7 to Carry

Prefixing is required to select source registers beyond index 15h .

3.5 Using the Arithmetic and Logic Unit

The MAXQ610 provides a 16-bit arithmetic and logic unit (ALU) that allows operations to be performed between the
active accumulator and any other register . The default ALU configuration provides 16 accumulator registers that are
16-bit wide, of which any one can be selected as the active accumulator .

3.5.1 Selecting the Active Accumulator

Any of the 16 accumulator registers A[0] to A[15] can be selected as the active accumulator by setting the low 4 bits
of the accumulator pointer register (AP) to the index of the accumulator register the users wants to select .

move AP, #01h

; select A[1] as the active accumulator

move AP, #0Fh

; select A[15] as the active accumulator

The current active accumulator can be accessed as the Acc register, which is also the register used as the implicit
destination for all arithmetic and logical operations .

move A[0], #55h

; set A[0] = 0055 hex

move AP, #00h

; select A[0] as active accumulator

move Acc, #55h

; set A[0] = 0055 hex

3.5.2 Enabling Autoincrement and Autodecrement

The accumulator pointer, AP, can be set to automatically increment or decrement after each arithmetic or logical
operation . This is useful for operations involving a number of accumulator registers, such as adding or subtracting two
multibyte integers .
If autoincrement/decrement is enabled, the AP register increments or decrements after any of the following operations:
• ADD src

(Add source to active accumulator)

• ADDC src

(Add source to active accumulator with carry)

• SUB src

(Subtract source from active accumulator)

• SUBB src

(Subtract source from active accumulator with borrow)

• AND src

(Logical AND active accumulator with source)

• OR src

(Logical OR active accumulator with source)

• XOR src

(Logical XOR active accumulator with source)

• CPL

(Bitwise complement active accumulator)

• NEG

(Negate active accumulator)

• SLA

(Arithmetic shift left on active accumulator)

• SLA2

(Arithmetic shift left active accumulator 2 bit positions)

• SLA4

(Arithmetic shift left active accumulator 4 bit positions)

• SRA

(Arithmetic shift right on active accumulator)

• SRA2

(Arithmetic shift right active accumulator 2 bit positions)