アドレス演算
表 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 の値だけ増やします。
|