コピー2018.10.16今回は戻り値の型でアセンブラがどう変わるか確認します。戻り値がchar型の場合。}takk@deb9:~/tmp$func1の戻り値はEAXに格納されるようです。char型の戻り値であっても、32bitのレジスタが使用されるんですね。0x0(%rax)main側で、ALレジスタを使用することで、32bitのEAXレジスタから効率的に8bitを取得してるんですね。便利なレジスタですね。いうことは、16bitの戻り値になっても同じかと思います。(%rax)やはり32bitのEAXからAXで16bitの戻り値のみが使用されています。最後に戻り値longの場合。}takk@deb9:~/tmp$結局func1関数は、戻り値が8/16/32bitどの場合でも同じコードでした。(%rax)main関数の呼び出しの方は、コードは変わりますが、コードサイズが変わってません。戻り値の方は32bitや64bitにこだわる必要もなさそうです。関連記事9-1.ソース・ビルド・インストール花文字ソースビルドsysvbannerのプログラムをソースからビルドしてみます。ソースをapt-getで取得します。いうファイルが取得できました。前回の続きでfgetcの行方を追います。代わりに何が使われているかというと_IO_getcでした。_IO_getcはlibio/getc.cに定義され...9-1.ソース・ビルド・インストールbinutilsのbin2cをビルド前回見つけたbin2c.cをビルドしてみます。bin2c.cが単体でビルドできるか確認します。メイクファイル(makefileやmakefile等)の依存ファイルにbin2c.cがあるか確認。PVやHPを全く見てなくてタイトルだけの情報だけで視聴始めました。女子たちがモテたいと、ただお喋りするだけのアニメかと思いきや、1話の最後で全員異能を使い始めた時には本当にビビりました。格闘技の中で相撲が一番強いのでは、と思えてきます。倒れない足腰、カッコいいですねえ。今回もアセンブラです。gccの最適化オプションはたくさんあります。今回は、-O、-O1、-O...9-1.ソース・ビルド・インストールgccのソースはどこ(その7)gccソース続きです。gccのソースビルドをするため、configureを起動しましたが、gmpがどうのこうとエラーが出まして、gmpライブラリの壁にぶち当たり中です。email.ホーム9.ソース管理9-1.ソース・ビルド・インストールスポンサーリンク広告プロフィール管理人:takketeお仕事:システムエンジニア日々何か向上したくて、もがいています。Policyホーム検索トップサイドバースポンサーリンク広告プロフィール管理人:takketeお仕事:システムエンジニア日々何か向上したくて、もがいています。thanksタイトルとURLをコピーしました。