Maxim Integrated MAXQ7666 User Manual
Page 2
For the modulo increment or decrement operation, the selected range of bits in AP are incremented or decremented. However, if these
bits roll over or under, they simply wrap around without affecting the remaining bits in the accumulator pointer. So, the operations can
be defined as follows:
• Increment modulo 2: AP = AP[3:1] + ((AP[0] + 1) mod 2)
• Decrement modulo 2: AP = AP[3:1] + ((AP[0] - 1) mod 2)
• Increment modulo 4: AP = AP[3:2] + ((AP[1:0] + 1) mod 4)
• Decrement modulo 4: AP = AP[3:2] + ((AP[1:0] - 1) mod 4)
• Increment modulo 8: AP = AP[3] + ((AP[2:0] + 1) mod 8)
• Decrement modulo 8: AP = AP[3] + ((AP[2:0] - 1) mod 8)
• Increment modulo 16: AP = (AP + 1) mod 16
For this example, assume that all 16 accumulator registers are initially set to zero.
; select A[2] as active accumulator
; auto-increment AP[1:0] modulo 4
add #01h
; 03 0000 0000 0001 0000
add #04h
; 02 0003 0004 0001 0002
1.3.5.3 ALU Operations Using the Active Accumulator and a Source
The following arithmetic and logical operations can use any register or immediate value as a source. The active accumulator Acc is
always used as the second operand and the implicit destination. Also, Acc may not be used as the source for any of these operations.
sub A[15]
; Acc = Acc – A[15]
; If (Acc == 0000h), set Equals flag
xor A[1]
; Acc = Acc XOR A[1]
MAXQ7665/MAXQ7666 User’s Guide
1-34
Maxim Integrated