Xilinx UG129 Answering Machine User Manual


 
32 www.xilinx.com PicoBlaze 8-bit Embedded Microcontroller
UG129 (v1.1.2) June 24, 2008
Chapter 3: PicoBlaze Instruction Set
R
A similar NOP technique is to simply jump to the next instruction, which is equivalent to
the default program flow. The JUMP instruction consumes an instruction cycle (two clock
cycles) without affecting register contents.
Setting and Clearing CARRY Flag
Sometimes, application programs need to specifically set or clear the CARRY flag, as
shown in the following examples.
Clear CARRY Flag
ANDing a register with itself clears the CARRY flag without affecting the register contents,
as shown in Figure 3-20.
Set CARRY Flag
There are various methods for setting the CARRY flag, one of which appears in
Figure 3-21. Generally, these methods affect a register location.
Test and Compare
The PicoBlaze microcontroller introduces two new instructions not available on previous
PicoBlaze variants. The PicoBlaze microcontroller provides the ability to test individual
bits within a register and the ability to compare a register value against another register or
an immediate constant. The TEST or COMPARE instructions only affect the ZERO and
CARRY flags; neither instruction affects register contents.
Test
The TEST instruction performs bit testing via a bitwise logical AND operation between
two operands. Unlike the AND instruction, only the ZERO and CARRY flags are affected;
no registers are modified. The ZERO flag is set if all the bitwise AND results are Low, as
shown in Figure 3-22.
Figure 3-19: Alternative NOP Method Using JUMP Instructions
JUMP next
next: <next instruction>
Figure 3-20: ANDing a Register with Itself Clears the CARRY Flag
clear_carry_bit:
AND sX, sX ; register sX unaffected, CARRY flag cleared
Figure 3-21: Example Operation that Sets the CARRY Flag
set_carry:
LOAD sX, 00
COMPARE sX, 01 ; set CARRY flag and reset ZERO flag