先週は、Makefileの使い方について簡単な勉強をした。Makefile は、自分のソフトウェアプロジェクトの構成を示すものなので、 必ず作成するようにしよう。
まず、PowerPCの命令について調べて見よう。 RowerPCの命令の一部
次にAIXでのCコンパイラの出力を調べて見よう。前に勉強したように、
cc -S input.cという形で、アセンブラ出力を得ることができる。(もちろん、ccがない 時には、自分でマニュアルを読んで、アセンブラの出力を考えることになる)
0+(1+(2+3))-(0+(1+(2+3))) の式の計算をsimple compiler によりRS6000の命令に変換した結果を記述せよ。0+1+2+3-0+1+2+3 の場合はどうなるか? RS6000には、
ai[.] ai r3,r1,-45 r3=r1+(-45) add immediate [set flag CR0] 16bit singed constatndという命令がある。これを使った場合はもっと短いコードになる。 この命令を出力するcompilerを作るには、どうすれば良いか考察し てみよ。
s-code-rs6k.c s-code-rs6k-r.c を使った、 s-rs6k と s-rs6k-r について、論理演算 &,| を拡張して見よう。余裕が あれば他の拡張にも挑戦して見よう。
これから、Micro-C をざっと読みながら、より詳細な技術について解説して いく。そのまえに、Micro-C の全体構成をざっと見て見よう。
Micor-C の全体構成
来週までに、 問1と問2を Compiler Construction Lecture 11/27 のSubjectを付けて kono@ie.u-ryukyu.ac.jp までメールすること。