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

スタックの操作

スタック操作用のコマンド (表 4-2で説明) では、スタック上の項目の追加、削除、並べ替えができます。

表 4-2 スタック操作コマンド

コマンド  

スタックダイアグラム 

説明 

-rot

( x1 x2 x3 -- x3 x1 x2 ) 

3 つのスタック項目を逆方向に回転します。 

>r

( x -- ) (R: -- x ) 

スタック項目を復帰スタックに転送します。 (使用には注意が必要です。) 

?dup

( x -- x x | 0 ) 

一番上のスタック項目がゼロ以外の場合、複製します 

2drop

( x1 x2 -- ) 

スタックから 2 つの項目を削除します。 

2dup

( x1 x2 -- x1 x2 x1 x2 ) 

2 つのスタック項目を複製します。 

2over

( x1 x2 x3 x4 -- x1 x2 x3 x4 x1 x2 ) 

初めから 2 つのスタック項目をコピーします。 

2rot

( x1 x2 x3 x4 x5 x6 -- x3 x4 x5 x6 x1 x2 ) 

3 対のスタック項目を回転します。 

2swap

( x1 x2 x3 x4 -- x3 x4 x1 x2 ) 

2 対のスタック項目を入れ換えます。 

3drop

( x1 x2 x3 -- ) 

スタックから 3 つの項目を削除します。 

3dup

( x1 x2 x3 -- x1 x2 x3 x1 x2 x3 ) 

3 つのスタック項目を複製します。 

clear

( ??? -- ) 

スタックを空にします。 

depth

( -- u ) 

スタック上の項目数を返します。 

drop

( x -- ) 

一番上のスタック項目を削除します。 

dup

( x -- x x )  

一番上のスタック項目を複製します。 

nip

( x1 x2 -- x2 ) 

2 番目のスタック項目を削除します。 

over

( x1 x2 -- x1 x2 x1 ) 

2 番目のスタック項目をスタックの一番上にコピーします。 

pick

( xu ... x1 x0 u -- xu ... x1 x0 xu ) 

u 番目のスタック項目をコピーします (1 pick = over)。

r>

( -- x ) ( R: x -- ) 

復帰スタック項目をスタックに転送します。 (使用には注意が必要です。)  

r@

( -- x ) ( R: x -- x ) 

復帰スタックの一番上をスタックにコピーします。  

roll

( xu ... x1 x0 u -- xu-1 ... x1 x0 xu ) 

u 箇のスタック項目を回転します(2 roll = rot)。

rot

( x1 x2 x3 -- x2 x3 x1 ) 

3 つのスタック項目を回転します。 

swap

( x1 x2 -- x2 x1 ) 

一番上の 2 つのスタック項目を入れ換えます。  

tuck

( x1 x2 -- x2 x1 x2 ) 

一番上のスタック項目を 2 番目の項目の下にコピーします。 

代表的なスタック操作の用途は、次の例に示すように、すべてのスタック項目を保持しておきながら、一番上のスタック項目を表示することかも知れません。


5 77 ok dup     (一番上のスタック項目を複製) 
5 77 77 ok .     (一番上のスタック項目を削除し、表示) 
77 
5 77 ok