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

データ型変換

表 4-7 に示すコマンドはデータ型の変換を行います。

表 4-7 32 ビットデータ型変換機能

コマンド 

スタックダイアグラム 

説明 

bljoin

( b.low b2 b3 b.hi -- quad ) 

4 バイトを結合して quadlet (32 ビット) を作ります。 

bwjoin

( b.low b.hi -- word ) 

2 バイトを結合して doublet (16 ビット) を作ります。 

lbflip

( quad1 -- quad2 ) 

quadlet 内の 4 バイトを逆に並べ替えます。 

lbsplit

( quad -- b.low b2 b3 b.hi ) 

quadlet を 4 バイトに分割します。 

lwflip

( quad1 -- quad2 ) 

quadlet 内の 2 つの doublet をスワップします。 

lwsplit

( quad -- w.low w.hi ) 

quadlet を 2 つの doublet に分割します。 

wbflip

( word1 -- word2 ) 

doublet 内の 2 バイトをスワップします。 

wbsplit

( word -- b.low b.hi ) 

doublet を 2 バイトに分割します。 

wljoin

( w.low w.hi -- quad ) 

2 つの doublet を結合して quadlet を作ります。 

表 4-8 に示すデータ型変換用コマンドは 64 ビットの OpenBoot 実装専用です。

表 4-8 64 ビットデータ型変換機能

コマンド 

スタックダイアグラム 

説明 

bxjoin

( b.lo b.2 b.3 b.4 b.5 b.6 b.7 b.hi -- o ) 

8 バイトを結合して octlet を作ります。 

lxjoin

( quad.lo quad.hi -- o ) 

2 つの quadlet を結合して octlet を作ります。 

wxjoin

( w.lo w.2 w.3 w.hi -- o ) 

4 つの doublet を結合して octlet を作ります。 

xbflip

( oct1 -- oct2 ) 

octlet 内の 8 バイトを逆に並べ替えます。 

xbsplit

( o -- b.lo b.2 b.3 b.4 b.5 b.6 b.7 b.hi ) 

octlet を 8 バイトに分割します。 

xlflip

( oct1 -- oct2 ) 

octlet 内の 2 つの quadlet をスワップします。各 quadlet 内の 4 バイトは逆に並べ替えられません。 

xlsplit

( o -- quad.lo quad.hi ) 

octlet を 2 つの quadlet に分割します。 

xwflip

( oct1 -- oct2 ) 

octlet 内の 4 つの doublet を逆に並べ替えます。各 doublet 内の 2 バイトは並べ替えられません。 

xwsplit

( o -- w.lo w.2 w.3 w.hi ) 

octlet を 4 つの doublet に分割します。