5 overflow flag -37, 7 controlling program flow -37, 1 obtaining the next execution address -37 – Maxim Integrated MAXQ7666 User Manual
Page 39: 2 unconditional jumps -37

• MOVE Acc., C (Set selected active accumulator bit to Carry)
• AND Acc. (Carry = Carry AND selected active accumulator bit)
• OR Acc. (Carry = Carry OR selected active accumulator bit)
• XOR Acc. (Carry = Carry XOR selected active accumulator bit)
• JUMP C, src (Jump if Carry flag is set)
• JUMP NC, src (Jump if Carry flag is cleared)
1.3.6.5 Overflow Flag
The Overflow flag (PSF.2) is a static flag indicating that the carry or borrow bit (Carry status Flag) resulting from the last ADD/ADDC or
SUB/SUBB operation did not match the carry or borrow of the high order bit of the active accumulator. The overflow flag is useful when
performing signed arithmetic operations.
The following instructions can alter the Overflow flag:
• ADD src (Add source to active accumulator)
• ADDC src (Add source and Carry to active accumulator)
• SUB src (Subtract source from active accumulator)
• SUBB src (Subtract source and Carry from active accumulator)
1.3.7 Controlling Program Flow
The MAXQ7665/MAXQ7666 provide several options to control program flow and branching. Jumps may be unconditional, condition-
al, relative, or absolute. Subroutine calls store the return address on the hardware stack for later return. Built-in counters and address
registers are provided to control looping operations.
1.3.7.1 Obtaining the Next Execution Address
The address of the next instruction to be executed can be read at any time by reading the Instruction Pointer (IP) register. This can be
particularly useful for initializing loops. Note that the value returned is actually the address of the current instruction plus 1, so this will
be the address of the next instruction executed as long as the current instruction does not cause a jump.
1.3.7.2 Unconditional Jumps
An unconditional jump can be relative (IP +127/-128 words) or absolute (to anywhere in program space). Relative jumps must use an
8-bit immediate operand, such as
Label1:
; must be within +127/-128 words of the JUMP
...
jump Label1
Absolute jumps can use a 16-bit immediate operand, a 16-bit register, or an 8-bit register.
jump LongJump
; assembles to: move PFX[0], #high(LongJump)
; jump #low(LongJump)
jump DP[0]
; absolute jump to the address in DP[0]
If an 8-bit register is used as the jump destination, the prefix value is used as the high byte of the address and the register is used as
the low byte.
MAXQ7665/MAXQ7666 User’s Guide
1-37
Maxim Integrated