2012-04-09 3 views
0

現在、私は本を読んでいます:Lions_Commentary_on_UNIX_6th_Edition、一緒に私はUNIX v6のソースコードを理解しようとしています。UNIX V6のコードの説明をお願いします

. = 40^. 
... 
. = 60^. 

これは私が非常に良好ではないよ、いくつかのPDP-11アセンブリであるので、誰もがこれらのコードは、ここでやろうでしたものを私に説明できますか? また、PDP-11には別のシンボル「..」があります。誰もこのシンボルが何をしているのか説明できますか?

答えて

0

.は位置カウンタであるため、アセンブリ言語ステートメントは、式40^.または60^.によって位置カウンタの位置を調整しているため、アセンブラの位置カウンタを移動することを意図しています。

文が

. = 40 + . 

を読めば、それは40のロケーションカウンタ(8進数)+ロケーションカウンタの現在の値を変更を意味します。私が混乱しているのは、^が単なる演算子であり、MACRO11のマニュアルによれば、この用法では意味をなさないということです。

0

^演算子は、第1オペランドの値と第2オペランドの型を返します。

したがって、.=40^.は現在のセグメントのロケーション40に位置カウンタを設定します。これはデータまたはbssであると予想されます。 .=40は、asが絶対コードを出さなかったので、エラーであった絶対位置40に位置カウンタを設定しようとします。

シンボルは、プログラムがロードされているメモリ内のおよその位置である再配置カウンタでした。再配置ハードウェアのない初期PDP-11のプログラムのための厄介なものでした。私が思い出したように、誰もがこれまでに行ったことは、コアの特定の場所にロードされる予定のプログラムの冒頭に..=somethingを設定することだけでした。

ここでアセンブラのマニュアルを読むことができます。 http://wwwlehre.dhbw-stuttgart.de/~helbig/os/v6/doc/as.ps

関連する問題