低レイヤーの真髄:64bitアセンブリ言語を極める技術
The Art of 64-bit Assembly
The Art of 64-bit Assembly
64bit環境におけるアセンブリ言語の習得は、コンピュータの内部動作を理解するための究極の近道です。この領域は単なるプログラミングではなく、CPUとメモリの関係性を直接操作する芸術とも言えるでしょう。
Windowsが実際にvtableに期待する構造
Windowsの内部事情には詳しくないんだけど、vtableのレイアウトってユーザーとカーネル間のABIの一部なの?
ごめんけど、「AIに頼めば……(でも不完全でひどい出来になるけどね)」から始めて、そのままAI生成テキストを100語も並べるのって、全然魅力的じゃないよ。
これが編集側の落ち度であって、著者が自分の言葉でちゃんとした内容に書き直してくれることを願う。ここを含め、いろんなところで聞く意見とは裏腹に、アセンブリを学ぶことは今でも有意義だし、自分ももっと上手くなりたいから、仕事が少し落ち着いたらこの本か似たような本を買うことを検討するよ。
いやいや、MASM?今どきのイケてるエンジニアはみんなNASMかYASMを使ってるでしょ。
アセンブリの本にしては変なタイトルだな。
64bit OSもCPUも他にもあるし、それら用のアセンブラを使ってる人だってちゃんといるんだから。
関連情報として:
Daniel Kusswurmによるアセンブリ/C++関連書籍全般
Igor Zhirkov著『Low-level Programming: C, Assembly, and Program Execution on Intel 64 Architecture』
うわっ、著者がまだこの本を更新し続けてるなんて信じられない!何十年も前に、この本の古い版でプロテクトモードのアセンブリを学んだんだ。記憶が正しければ、当時はもっと古い16bit版もあったはず。
メタコメントは控えようってのは知ってるけど、このスレッド一体どうなってるの?プログラミングの芸術についての800ページ近い本なんだよ。僕らの心に響くはずのテーマに膨大な労力が注がれてるんだ。ここって「ハッカーのためのニュース」だよね?
なのに議論の内容が3つに集約されてる。「マーケティング文の最初の行が気に入らない」「著者が使ってるツールが気に入らない」「この本でLLMを学習させたらどうなるか」。サンプル章を読んだ人はいないの?良かった?誰か第1巻を持っていて、それについて意見を聞かせてくれない?
今でもアセンブリ言語に多くの時間を費やしてる人がいるのは面白いね :)
自分もここ数年、かなり楽しんでるよ。(宣伝になっちゃうけど、LLVM統合アセンブラについて、フラグメントの改善や式・リロケーションの向上に関する記事をいくつか書いたんだ)。
GNU AssemblerとMASMを比較すると、GASにはwhileループや文字列処理(strlenとか)のような機能が欠けてるよね。
3ページ: 「MASMはマクロ展開の前に、マクロ呼び出しの引数をテキスト値に変換するということを理解しておくのが重要」
MASMと同様に、GASもデフォルトでは名前呼び出し(call-by-name)評価を使ってる。GASのaltmacroモードでは %(1+2) のような構文で式の評価もできるけど、絶対式のみに対応してたり、引数の位置に制限があったりと制約が厳しい。
その点、MASMの%演算子(8ページ)は遥かに汎用性が高そうに見えるね。
MASM経由で16bit x86にコンパイルするコンパイラを作ったことがあるんだ。この本は次のステップとして自然な感じがするんだけど、代わりに選べるLinux版のような本はあるかな?