
R
Chapter 3: PicoBlaze Instruction Set
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.
JUMP next
next: <next instruction>
Figure 3-19: Alternative NOP Method Using JUMP Instructions
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
clear_carry_bit:
AND sX, sX ; register sX unaffected, CARRY flag cleared
Figure 3-20: ANDing a Register with Itself Clears the CARRY Flag
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.
set_carry: LOAD sX, 00
COMPARE sX, 01 ; set CARRY flag and reset ZERO flag
Figure 3-21: Example Operation that Sets the CARRY Flag
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
32 | www.xilinx.com | PicoBlaze |
|
| UG129 (v1.1.2) June 24, 2008 |