Next: , Previous: , Up: Forth Tutorial   [Contents][Index]


3.25 Alignment

多くのプロセッサでは、 @! を使用してセルにアクセスする場合、 メモリ内でセ​​ルをアライメントする必要があります (プロセッサがアライメントを必要としない場合でも、 アライメントされたセルへのアクセスは高速です)。

Createhere(つまり、 次の割り当てが行われる場所、 そしてcreateされたワードが指す場所)でアライメントします。 同様に、 allocateによって生成されたメモリはアライメントしたアドレスから始まります。 アライメントしたアドレスに cells の数値 を足すと、 次のアライメントされたアドレスが生成されます。

ただし、 char+ および chars を含むアドレス演算では、セルにアライメントしていないアドレスが作成される可能性があります。 Aligned ( addr -- a-addr ) は、 その次のアライメントせされたアドレスを生成します:

v3 char+ aligned .s @ .
v3 char+ .s @ .

同様に、 alignhere を次のアライメントされたアドレスに進めます:

create v5 97 c,
here .
align here .
1000 ,

注意: プログラムを移植可能にしたい場合は、 プロセッサがそれらを必要としない場合でも、 アライメントれたアドレスを使用する必要があることに注意してください。

こちらも参照ください: Address arithmetic