お兄ちゃんの宿題、私が答えるよ
レス数が950を超えています。1000を超えると書き込みができなくなります。
0959あ
NGNG以下 解答してください
問2
a = 5+(6+(7+b));
をコンパイルした結果はどうなるかを、自分の頭で考えて示せ。
a = 0+(1+(2+(3+(4+(5+(6+(7+b)))))))-(0+(1+(2+(3+(4+(5+(6+(7+b))))))));
は、どうなるだろうか? 自分が、どのように考えて、その結果を出したのか、そして、それをアルゴリズムにするにはどうすれば良いのかを考えよう。
ヒント
まず式を木の形に書いて、構造を調べる
push, pop を使ってスタックを使う方法もある
実際のコンパイラの出力と比較してみよう。
--------------------------------------------------------------------------------
問2
上のプログラムをIntel CPU上で、gcc -O -S test.c を使ってコンパイルすると最適化がかかる。最適化した場合としない場合で、どのような違いが出るか? (ヒント diff を使うと簡単...)
問1で、これらの結果を実際のアセンブラで実行しテストするには、どうすれば良いか考えて実行せよ。
これらの命令が実際に生成されるCのソースコードを考えて、それをコンパイラに通し、実際に命令が生成されることを確認せよ。(ただし、データのアドレスは、変わっても良いとする)
レス数が950を超えています。1000を超えると書き込みができなくなります。