beautypg.com

Sbrnz (short branch if not zero) – Echelon Neuron User Manual

Page 127

background image

SBRNZ (Short Branch If Not Zero)

The SBRNZ instruction performs a conditional branch if TOS is not zero. The

SBRNZ instruction uses the (short) relative addressing mode. The SBRNZ

instruction branches forward with an unsigned relative displacement of 1 to 16

bytes if TOS is not zero; otherwise, program operation continues with the next

instruction. TOS is consumed by this instruction. The displacement expression

must resolve at link time to a value in the range 0 to 15 (one less than the actual

displacement because the displacement calculation includes the size of the

SBRNZ operation itself).
The Neuron Assembler also supports the use of a label for the displacement

expression; manual calculation of the displacement value is not required.
See also BRNZ (Branch If Not Zero) for a longer conditional branch with the

same condition, and SBRZ (Short Branch If Zero) for a short conditional branch

with the opposite condition.
The SBRNZ instruction applies to Series 3100, 5000, and 6000 devices.

Syntax:
The SBRNZ instruction requires a single operand to specify the displacement or

label:

SBRNZ displacement

SBRNZ label

Table 50 describes the attributes of the SBRNZ instruction. In the table, the

asterisk (*) specifies the current value of the instruction pointer (IP).

Table 50. SBRNZ Instruction

Instruction

Hexadecimal

Opcode

Instruction

Size (Bytes)

CPU Cycles

Required

Affect on

Carry Flag

SBRNZ *+1

60

1

3

None

SBRNZ *+2

61

1

3

None

SBRNZ *+3

62

1

3

None

SBRNZ *+4

63

1

3

None

SBRNZ *+5

64

1

3

None

SBRNZ *+6

65

1

3

None

SBRNZ *+7

66

1

3

None

SBRNZ *+8

67

1

3

None

SBRNZ *+9

68

1

3

None

Neuron Assembly Language Reference

117