アドレス演算
表 4-9に示すコマンドはアドレス演算を行います。
表 4-9 アドレス演算機能
コマンド
|
スタックダイアグラム
|
説明
|
aligned |
( n1 -- n1 | a-addr)
|
必要な場合、 n1 大きくして可変境界アドレスを生じます。
|
/c |
( -- n )
|
バイトのアドレス単位数 : 1。
|
/c* |
( nu1 -- nu2 )
|
chars の同義語。
|
ca+ |
( addr1 index -- addr2 )
|
addr1
を/c の値の index 倍増やします。
|
ca1+ |
( addr1 -- addr2 )
|
char+ の同義語。
|
cell+ |
( addr1 -- addr2 )
|
addr1 を /n の値だけ増やします。
|
cells |
( nu1 -- nu2 )
|
nu1 に /n の値を掛けます。
|
char+ |
( addr1 -- addr2 )
|
addr1 を /c の値だけ増やします。
|
chars |
( nu1 -- nu2 )
|
nu1 に /c の値を掛けます。
|
/l |
( -- n )
|
quadlet のアドレス単位数 : 通常 4。
|
/l* |
( nu1 -- nu2 )
|
nu1 に /l の値を掛けます。
|
la+ |
( addr1 index -- addr2 )
|
addr1 を /l の値の index 倍増やします。
|
la1+ |
( addr1 -- addr2 )
|
addr1 を /l の値だけ増やします。
|
/n |
( -- n )
|
セルのアドレス単位数。
|
/n* |
( nu1 -- nu2 )
|
cells の同義語。
|
na+ |
( addr1 index -- addr2 )
|
addr1 を /n の値 index 倍増やします。
|
na1+ |
( addr1 -- addr2 )
|
cell+ の同義語。
|
/w |
( -- n )
|
doublet のアドレス単位数 : 通常 2。
|
/w* |
( nu1 -- nu2 )
|
nu1 に /w の値を掛けます。
|
wa+ |
( addr1 index -- addr2 )
|
addr1 を /w の値の index 倍増やします。
|
wa1+ |
( addr1 -- addr2 )
|
addr1 を/w の値だけ増やします。
|
表 4-10に示すアドレス演算用コマンドは 64 ビットの OpenBoot 実装専用です。
表 4-10 64 ビットアドレス演算機能
コマンド
|
スタックダイアグラム
|
説明
|
/x |
( -- n )
|
octlet のアドレス単位数 : 通常 8。
|
/x* |
( nu1 -- nu2 )
|
nu1 に /x の値を掛けます。
|
xa+ |
( addr1 index -- addr2 )
|
addr1 を /x の値のindex 倍増やします。
|
xa1+ |
( addr1 -- addr2 )
|
addr1 を /x の値だけ増やします。
|