OpenBoot 2.x コマンド・リファレンスマニュアル

条件フラグ

Forth の条件付き制御コマンドはフラグを使用して真/偽の値を示します。フラグは、テスト基準に基づいて、いくつかの方法で生成できます。生成できたら、ワード "." でスタックから表示したり、条件付き制御コマンドの入力として使用できます。条件付き制御コマンドは、フラグが真 (true) の場合と偽 (false) の場合にそれぞれ異なる応答を表示します。

表示値が 0 の場合は、フラグの値が false であることを示します。-1 またはその他のゼロ以外の任意の数値は、フラグが true であることを示します。(16 進では、値 -1ffffffff として表示されます。)

表 4-20 に、比較テストを実行し、true または false フラグの結果をスタックに残すコマンドを示します。

表 4-20 比較コマンド

コマンド  

スタックダイアグラム 

説明 

<

( n1 n2 -- flag ) 

n1 < n2 の場合 true。

<=

( n1 n2 -- flag ) 

n1 <= n2 の場合 true。

<>

( n1 n2 -- flag ) 

n1 <> n2 の場合 true。

=

( n1 n2 -- flag ) 

n1 = n2 の場合 true。

>

( n1 n2 -- flag ) 

n1 > n2 の場合 true。

>=

( n1 n2 -- flag ) 

n1 >= n2 の場合 true。

0<

( n -- flag ) 

n < 0 の場合 true。

0<=

( n -- flag ) 

n <= 0 の場合 true。

0<>

( n -- flag ) 

n <> 0 の場合 true。

0=

( n -- flag ) 

n = 0 (さらにフラグを反転します)。

0>

( n -- flag ) 

n > 0 の場合 true。

0>=

( n -- flag )  

n >= 0 の場合 true。

between

( n min max -- flag ) 

min <= n <= max の場合 true。

false

( -- 0 ) 

FALSE (偽) の値 0。

true

( -- -1 ) 

TRUE (真) の値 -1。

u<

( u1 u2 -- flag ) 

u1 < u2 の場合 true。u1、u2 とも符号なし。

u<=

( u1 u2 -- flag ) 

u1 <= u2 の場合 true。u1、u2 とも符号なし。

u>

( u1 u2 -- flag ) 

u1 > u2 の場合 true。u1、u2 とも符号なし。

u>=

( u1 u2 -- flag ) 

u1 >= u2 の場合 true。u1、u2 とも符号なし。

within

( n min max -- flag ) 

min <= n < max の場合 true。

> はスタックから 2 つの数値を取り出し、最初の数値が 2 番目の数値より大きかった場合は true (-1) をスタックに返し、そうでなかった場合は false (0) を返します。次に例を示します。


ok 3 6 > .
0                (3 は 6 より大きくない)  
ok 

0= はスタックから 1 項目を取り出し、その項目が 0 であった場合は true を返し、そうでなかった場合は false を返します。このワードはどちらのフラグもその反対の値に反転します。