SPYCE』テンポが良くてすごく面白いです。最終話まで継続視聴予定です。エンディアン変換のアセンブラを作っていて、気がつきました。C言語とディスアセンブルしたコードを対比していけば、アセンブラの修得も早そうです。学習を始めることにします。普段使いのPCはPentiumなので、x64アセンブラを覚えていくことにします。3.30GHztakk@deb9:~/tmp$では、ベースのソースとして、空のmain.cを作成。}takk@deb9:~/tmp$アセンブルします。t.c生成されたコードです。.note.GNU-stack,"",@progbitstakk@deb9:~/tmp$変数定義を追加してみましょう。}takk@deb9:~/tmp$そして、アセンブル。"t1.c"takk@deb9:~/tmp$変数を定義しただけでは、何も変わらないということですね。次は、変数の初期化を追加。}takk@deb9:~/tmp$アセンブルして、差分を見ます。-4(%rbp)takk@deb9:~/tmp$ロカール変数の領域である-4(%rbp)に、50を格納する命令が増えています。次は、if文を使います。}takk@deb9:~/tmp$アセンブル、比較。.L2:takk@deb9:~/tmp$比較命令であるcmplが50という値と、ローカル変数-4(%rbp)の値を比較しています。equalsなので、不一致なら.L2へジャンプする命令ですね。骨が好きってどういう感覚なんでしょう。魚の骨は見慣れてますので、綺麗に魚が食べられた時は、魚の骨美しい、なんて思います。そんな感覚でもないんでしょうねえ。櫻子さんはスイーツが好きみた...9-1.ソース・ビルド・インストールC言語のプログラムにアセンブラを書くrcs学習もそろそろ飽きてきたので、気まぐれにより、Cとアセンブラやります。C言語のプログラムの中にアセンブラを書きたい時ってたまにありますが、アセンブラってプロセッサによって変わってきますよね。プロセッサはたくさんあるので、全部のアセ...9-1.ソース・ビルド・インストールAVR用ソースをlinux用にコンパイルしてprintfデバッグ「AVRマイコンでキャラクタLCDに時間を表示する(その2)」で外部クロックに変更して精度を上げたはずが、またもやずれていました。デバッグするべく、AVRのソースをlinux用に改造したいと思います。catchのアセンブラを確認します。ただのjmp命令になるのではないかと予想してます。上のプログラムをビルド、実行すると、catchでaの値が変化するので戻り値が10になりますね。アセン...9-1.ソース・ビルド・インストールC++でx64アセンブラを覚える(その1)C++のアセンブラも眺めたくなりました。今回はこのサンプルのアセンブラを見てみます。実行すると、コマンドの戻り値に100を返してくれます。アセンブラコード全文です。C言語と比べてコードが長くなりました...9-1.ソース・ビルド・インストールgcc最適化オプション学習(-fomit-frame-pointer)最適化オプションできれば、全部覚えたいのですが、アセンブラのコード差分がでないと、どうしてもどのようなオプションなのか理解が進みません。そこで、アセンブラコードに差分がでるものから先にオプションを覚えておくことにしました。email.ホーム9.ソース管理9-1.ソース・ビルド・インストールスポンサーリンク広告プロフィール管理人:takketeお仕事:システムエンジニア日々何か向上したくて、もがいています。Policyホーム検索トップサイドバースポンサーリンク広告プロフィール管理人:takketeお仕事:システムエンジニア日々何か向上したくて、もがいています。thanksタイトルとURLをコピーしました。