1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2<html xml:lang="en-US" lang="en-US" xmlns="http://www.w3.org/1999/xhtml">
3  <head>
4    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
5    <meta http-equiv="Content-Style-Type" content="text/css" />
6    <link rel="stylesheet" href="../css/manpage.css" type="text/css" />
7    <link rel="stylesheet" href="../css/timetable.css" type="text/css" />
8    <title>jpb - Boolean jump</title>
9  </head>
10  <body>
11    <h1>jpb - Boolean jump</h1>
12
13    <h2>Calling Format</h2>
14    <div class="section">
15      <pre class="definition">
16jpb     src, value, label
17</pre>
18    </div>
19
20    <h2>Operands</h2>
21    <div class="section">
22      <table class="arguments">
23        <thead>
24          <tr>
25            <th>Name</th>
26            <td>Description</td>
27          </tr>
28        </thead>
29        <tr>
30          <th><CODE>src</CODE></th>
31          <td>
32            A Boolean register.<br>
33          </td>
34        </tr>
35        <tr>
36          <th>value</th>
37          <td>
38            <CODE>true</CODE> or <CODE>false</CODE>.<br>
39          </td>
40        </tr>
41        <tr>
42          <th>label</th>
43          <td>
44            Label name.<br>
45          </td>
46        </tr>
47      </table>
48    </div>
49
50    <h2>Overview</h2>
51    <div class="section">
52      <p>
53        Causes control to jump to the address of the specified label name when the contents of the Boolean register specified by <SPAN class="argument">src</SPAN> match the value specified by <SPAN class="argument">value</SPAN>.<br> Unlike the <CODE>call</CODE> instruction, control does not return at a <CODE>ret</CODE> instruction. Also, you can specify labels for which <CODE>ret</CODE> instructions have not been set.<br>
54      </p>
55      <p class="notice">
56        An error will result if you jump to an external location from within an <CODE>if</CODE> or <CODE>loop</CODE> block, or jump from an external location into an <CODE>if</CODE> or <CODE>loop</CODE> block.<br> An error also will result if you call this instruction immediately prior to an <CODE>else</CODE>, <CODE>endif</CODE>, <CODE>endloop</CODE>, or <CODE>ret</CODE> instruction.<br> Behavior is undefined if you jump to an external location from between the <CODE>main</CODE> and <CODE>endmain</CODE> labels, or from within subroutines.<br> In the same way, jumping to a <CODE>ret</CODE> instruction within a subroutine also results in undefined behavior.<br> Jumping to an <CODE>else</CODE>, <CODE>endif</CODE>, or <CODE>endloop</CODE> instruction has the same effect as jumping to the instruction immediately following that instruction.<br>
57      </p>
58    </div>
59
60    <h2>Operation</h2>
61    <div class="section">
62<pre class="definition">
63if ( src == value )
64    jump to label
65</pre>
66    </div>
67
68    <h2>Code Example</h2>
69    <div class="section">
70<pre class="definition">
71jpb     b0, true,  subfunction0
72jpb     b1, false, subfunction0
73
74subfunction0:
75..
76</pre>
77    </div>
78
79
80  <h2>Revision History</h2>
81  <div class="section">
82    <dl class="history">
83      <dt>2011/12/20</dt>
84      <dd>Initial version.<br />
85      </dd>
86    </dl>
87  </div>
88
89  <hr><p>CONFIDENTIAL</p></body>
90</html>