コンピュータシステムの理論と実装(3)

昨日はVMのStaticsTestを通すことができた。

StaticsTestはStaticセグメントへのリードライトのテストで、staticセグメントのスコープがちゃんと処理できているか?のテストだと思う。

初め、処理が全部終了しても、staticセグメントからスタックにとってきたはずのデータが0になっていて、なんでだーとなっていた。

staticセグメントは、ユニークラベルを作ってやると、アセンブラがラベルに遭遇した順にRAM上に割り付けてくれる。このラベルは「関数名.staticセグメントの番号」でつければ要件を満たしている…。

ただ実際はVMファイル内で共有アクセスできるから、関数名じゃなくてファイル名で付けないといけなかった。(でないと、ファイル内にある複数の関数から共通の領域を見れない)