私は本当にアセンブリを学びたいと思っています。私は c/c++ がかなり得意ですが、下位レベルで何が起こっているのかをよりよく理解したいと思っています。
以前にアセンブリ関連の質問があったことは承知していますが、私の状況に特有の方向性を探しているだけです:
Windows 7 を実行していますが、アセンブリの作業を開始する方法について混乱しています。Windows 7 を実行しているため、x64 から開始する必要がありますか? 「最初は 32 ビットから始めてください」と言う人もいますが、これを行うにはどうすればよいですか? 「32」または「64」ビットのアセンブリを作成する能力と、オペレーティング システムとの関係は何ですか。実際、「n ビット」アセンブリとはどういう意味ですか?n は数字です??
編集:
アセンブリを開始するのに役立つリンクをいくつか示します。始めたばかりの人は、役に立つかもしれません。組み立ての旅を続けながら、このリストを更新し続けます:)
注: 学んできたので、masm32 を使用したプログラミングに集中することにしました。したがって、以下のリソースのほとんどはそれに焦点を当てています。
- x86 タグ wiki (ビギナー ガイド、リファレンス マニュアル、ABI ドキュメントなど)
- www.masm32.com
- X86 アセンブリ WikiBook
- X86 Dissassembly WikiBook (いくつかの規則を理解するのに最適で、高レベルのコードをアセンブリに変換する方法の基本)
- WinAsm IDE (masm32 とうまく連携)
- はじめに: Windows 用のアセンブリ(すべてのコード例は masm32 用です)
- 割り込み一覧
- アセンブリ チュートリアル(主要な概念を理解するのに役立ちます)
- x86 組み立てガイド
Agner Fog のソフトウェア最適化リソースには、さまざまなプラットフォーム (Windows と Linux/OS X) での呼び出し規則に関するいくつかの優れた情報や、特定のことを効率的に行う方法の多くの例が含まれています。まったくの初心者向けではありませんが、中級者から上級者向けです。
(彼はまた、Intel および AMD CPU の各命令の詳細なパフォーマンス情報を提供しており、深刻なパフォーマンスのマイクロ最適化に最適です。一部の初心者は、CPU がどのように機能するか、およびなぜ何かを行うのかについて考え始めるために、その一部を調べたいと思うかもしれません。別の方法ではありません。)