コピー2018.10.17Cソースの一部アセンブラ化に慣れてきました。今回はビットシフトをアセンブラに置き換えてみます。0xffを左に1ビットシフトするプログラムです。}takk@deb9:~/tmp$実行すると、最下位bitには0が入って0x1feになります。-dでmain関数のアセンブラを見てみます。(%rax)ビットシフトっぽい、shlq命令が使われていますが、シフト量を指定している箇所が見つかりません。2ビットシフトでビルドして、再度アセンブラを見てみることにします。%ax,%axシフト量1bitと2bit見比べてみます。$0x2,-0x8(%rbp)1bitの場合は、シフト量のパラメータが不要なんですね。Cソースを、アセンブラに置き換えて実行してみましょう。./a.out000001fetakk@deb9:~/tmp$うまくいきました。次は、右シフトをやってみます。左シフトがshlqだったので、右ソフトはおそらく、shrqってところでしょう。./a.out0000011ftakk@deb9:~/tmp$当てずっぽうでしたが、うまくいきました。前回の続きでfgetcの行方を追います。代わりに何が使われているかというと_IO_getcでした。少年少女がキャンディを集めます。魔法少女というのは街に何人もいて、良い行いをすると、キャンディが増えるみたいです。魔法少女といいつつ、変身前は男の子だったりします。1話で設定に引き込まれます。怪しいキャラデザとかも設定によく合ってます。2話目でいきなりバトルになって、戸惑いましたが、もう少し見てみようと思います。MP)のソースを入手して、インストールすることにします。実行すると、ダウンロードされます。lz形式のファイル、...9-1.ソース・ビルド・インストールgccのソースはどこ(その6)続きです。前回gccをビルドするのにlibgmpってのが必要なことが分かりました。codeってのがありますので、どんなものか見てみることにします。email.ホーム9.ソース管理9-1.ソース・ビルド・インストールスポンサーリンク広告プロフィール管理人:takketeお仕事:システムエンジニア日々何か向上したくて、もがいています。Policyホーム検索トップサイドバースポンサーリンク広告プロフィール管理人:takketeお仕事:システムエンジニア日々何か向上したくて、もがいています。thanksタイトルとURLをコピーしました。