OpenBoot 2.x の手引き

単精度演算機能

表 1-22 単精度演算機能

*

( n1 n2 -- n3 )

乗算。 n1 * n2

+

( n1 n2 -- n3 )

加算。n1 + n2

-

( n1 n2 -- n3 )

減算。n1 - n2

/

( n1 n2 -- quot )

除算。n1 / n2 。剰余は破棄されます。

<<

( n1 +n -- n2 )

n1+n ビット、左にシフトします。

>>

( n1 +n -- n2 )

n1+n ビット、右にシフトします。

>>a

( n1 +n -- n2 )

n1+n ビット、右に算術シフトします。

abs

( n -- u )

絶対値。 

and

( n1 n2 -- n3 )

ビット単位の 論理積

bounds

( startadr len -- endadr startadr )

do ループ用に、 startadr lenendadr startadrに変換します。

bljoin

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

4 バイトを結合して、32 ビットのロングワードを作ります。 

bwjoin

( b.low b.hi -- word )

2 バイトを結合して、16 ビットのワードを作ります。 

lbsplit

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

32 ビットのロングワードを分割して、4 バイトにします。 

lwsplit

( long -- w.low w.hi )

32 ビットのロングワードを分割して、16 ビットのワード 2 つにします。 

max

( n1 n2 -- n3 )

n1n2 の大きいほうの値を n3 とします。

min

( n1 n2 -- n3 )

n1n2 の大きいほうの値を n3 とします。

mod

( n1 n2 -- rem )

n1 / n2 の剰余。

negate

( n1 -- n2 )

n1 の符号を変更します。

not

( n1 -- n2 )

ビット単位の 1 の補数。 

or

( n1 n2 -- n3 )

ビット単位の 論理和

wbsplit

( word -- b.low b.hi )

16ビットのロングワードを分割して、2 バイトにします。 

wljoin

( w.low w.hi -- long )

2 ワードを結合して、ロングワードにします。 

xor

( n1 n2 -- n3 )

ビット単位の 排他的論理和